On 20/11/13 16:57, Jonathan Gazeley wrote:
It's getting a bit unwieldy to manage this block, so I'm looking for a better way of writing it. However it must be fast, as every eduroam user hits this, i.e. database lookups are unsatisfactory. Flat files might be
Shrug. We do a database lookup on source MAC, cached in an rlm_cache instance. It works fine. Get a faster database!
ok depending on how they cached.
A "files" module is loaded into RAM and keyed into a hash table. It'll be lightning fast. Something like this: modules { files uobmac { key = "%{UOB-Stripped-MAC}" filename = "..." } } ...and in the file: 20:10:7a:1a:89:1d Fall-Through := Non ...the in unlang: authorize { ... uobmac if (ok) { update control { UOB-Debug = "%{debug:9}" } } ... } However a "files" module is only reloaded on hup. If you want proper dynamism, use an SQL lookup and wrap it in rlm_cache e.g. modules { cache uobdebug { ... key = "%{UOB-Stripped-MAC}" update { request { Tmp-String-0 := "%{sql:select 'y' from debugmacs where mac='%{UOB-Stripped-Mac}'}" } } } authorize { ... uobdebug if (Tmp-String-0 == "y") { update control { UOB-Debug = "%{debug:9}" } } ... }