Phil Mayers wrote: > Correct. Virtual modules (e.g. "redundant") do not implement the "xlat" > function. ... > Unfortunately the "xlat" functions in FR don't return error/success codes. > They return "length of result string", and 0 for any failure condition, > which means it's impossible to distinguish a failure from an empty result, > and also that you can't use "if (ok)" constructs.
OK, thanks for that. I wonder if it would be worth coding for this, e.g. return -1 for fail? (although that would break everything which blindly uses it as length of string :-) It does seem that some string expansions fail silently at the moment, which could perhaps do with being a bit more strict. e.g. I once wrote "%{Reply:AttrName}" instead of "%{reply:AttrName}" and it produced nothing more than a 'Warning' at freeradius -X. > You will probably need something like this: > > update request { > Attrib := "%{sql1:select ...}" > } > if (!Attrib) { > update request { > Attrib := "%{sql2:select ...}" > } > } Thank you. I'll see what I can do. Regards, Brian. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html