On Wed, Apr 10, 2013 at 12:41:43PM -0400, Arran Cudbard-Bell wrote:
Makes sense - like regcomp. (And of course, "files" could also precompile the RHS of regexp match operators)
No. Not unless the regexp library supports compiled, parameterised expressions.
I was thinking of something like foo NAS-IP-Address =~ "^192\.0\.2\." It never occurred to me that the RHS of a condition like that might include xlats. Does the files module actually allow stuff like this?? e.g. foo NAS-IP-Address == "%{Client-IP-Address}" Reply-Message += "Hello %{Client-IP-Address}" Now, a quick test with a master build from a month ago suggests that Reply-Message += "Hello %{Client-IP-Address}", works (which is new to me). However steve Cleartext-Password := "testing", NAS-IP-Address =~ "%{Client-IP-Address}" fails to start with the following error: reading pairlist file /Users/brian/Build/freeradius-master/etc/raddb/users /Users/brian/Build/freeradius-master/etc/raddb/users[76]: Parse error (check) for entry steve: dict_init: /Users/brian/Build/freeradius-master/etc/raddb/dictionary[65]: Couldn't open dictionary "/Users/brian/Build/freeradius-master/etc/raddb/dictionary.local": No such file or directory Errors reading /Users/brian/Build/freeradius-master/etc/raddb/users Very strange, the section in etc/raddb/dictionary says: # Include dictionary.local, IF it exists. Otherwise, ignore it. # # This file WILL NOT EVER be created, edited, or modified # by FreeRADIUS. # $INCLUDE- dictionary.local so it shouldn't matter that the file doesn't exist. When if I comment out this $INCLUDE- line, I get "unknown error" instead: reading pairlist file /Users/brian/Build/freeradius-master/etc/raddb/users /Users/brian/Build/freeradius-master/etc/raddb/users[76]: Parse error (check) for entry steve: (unknown error) Errors reading /Users/brian/Build/freeradius-master/etc/raddb/users But it works if I change the condition to a fixed string literal: steve Cleartext-Password := "testing", NAS-IP-Address =~ "^192\." Odd. I have to say I can't really see a need for expansions in check items, and if they don't work today, maybe it's still reasonable to say that regexp values could be precompiled. Regards, Brian.