Hi Alan, with cvs head from May 10: I had following accounting section: accounting { detail sql attr_filter.accounting_response } where all modules were invoked to process the request. then I've changed it to: accounting { detail Acct-Type RELAY { radrelay-detail } sql attr_filter.accounting_response } where radrelay-detail is defined in modules correctly and Acct-Type is set in acct_users file: DEFAULT Client-IP-Address != <SOME_IP>, Acct-Type := RELAY The goal is to log all accounting packets except of those sent from certain IP(another radius). The log file is then to be processed by "radrelay personality" of freeradius. My "problem" is that if the Acct-Type is set to RELAY then no other module from accounting{} gets called except of radrelay-detail. I thought that correct behaviour is that all modules from accounting{} should be called and if Acct-Type is set to RELAY then radrelay-detail should be called as well. In order to achieve desired behaviour my accounting{} looks now: accounting { Acct-Type RELAY { radrelay-detail detail sql attr_filter.accounting_response } detail sql attr_filter.accounting_response } Is this a bug or a feature? Please advise. Milan Holub holub (at) thenet (dot) ch -------------------------------------- TheNet-Internet Services AG, im Bernertechnopark, Morgenstr. 129 CH-3018, Bern, Switzerland 031 998 4333, Fax 031 998 4330 http://www.thenet.ch http://wlan.thenet.ch --------------------------------------
Milan Holub wrote:
My "problem" is that if the Acct-Type is set to RELAY then no other module from accounting{} gets called except of radrelay-detail. I thought that correct behaviour is that all modules from accounting{} should be called and if Acct-Type is set to RELAY then radrelay-detail should be called as well.
That is how Acct-Type works. Only Autz-Type works differently.
In order to achieve desired behaviour my accounting{} looks now: accounting { Acct-Type RELAY { radrelay-detail detail sql attr_filter.accounting_response } detail sql attr_filter.accounting_response }
You can fix this with configurable failover, I think. 2.0 allows simple "if/then/else", which lets you do: foo # sets return code if RELAY { radrelay-detail } else { detail } ... The "if" works only for module return codes, so it will be awkward to get it to work. But it should work after a bit of poking. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
participants (2)
-
Alan Dekok -
Milan Holub