On Wed, Apr 10, 2013 at 10:00:07AM -0400, Alan DeKok wrote:
It's just that %{exec:...} and %{redis:...} expect to get a single un-xlat'd string, which they split on space, and then xlat the parts individually.
Yes. That can be fixed with simple changes.
a) the module supplies an "escape" function which escapes spaces
b) the "split on spaces" code converts escaped characters to the non-escaped version... but doesn't split on escaped spaces
Like this suggestion? :-) http://lists.freeradius.org/pipermail/freeradius-devel/2012-October/007207.h...
i.e. the "files" module should parse the xlat expansion once, and save the parsed result. It can then be interpreted dynamically multiple times.
Makes sense - like regcomp. (And of course, "files" could also precompile the RHS of regexp match operators)
The other benefit is good errors:
That's a *big* benefit. Regards, Brian.