[RADIATOR] Getting attributes in hooks

Hugh Irvine hugh at open.com.au
Fri Aug 16 22:18:40 UTC 2019


Hi David -

Have a look at “Radius/Radius.pm”.

	$p->getUserName

calls getUserName in Radius.pm

	$p->get_attr('User-Name’)

calls get_attr() with the attribute name ‘User-Name’ from the dictionary (see “Radius/AttrVal.pm”)

	$p->getAttrByNum($Radius::Radius::USER_NAME)

calls getAttrByNum() with USER_NAME (both are defined in Radius.pm)

This last one is the most efficient (and doesn’t use the dictionary).

regards

Hugh


> On 17 Aug 2019, at 06:10, David Rose <rosed at iit.edu> wrote:
> 
> Looking at cleaning up some of our hook processing and was looking through some of the example hooks provided with Radiator. While doing so I noticed there are a number of ways to get attributes and was wondering why certain methods were used in different example hooks.
> 
> For example I found these for getting user names:
> 
> - $p->getUserName
> - $p->get_attr('User-Name')
> - $p->getAttrByNum($Radius::Radius::USER_NAME)
> 
> All seem to be capable of doing the same thing. Even in our hooks there are differences in which is used and I would prefer to change this so that our hooks are at least consistent (unless there is reason not to do so). 
> 
> Are there reasons to use one over the other? For example, do some have better performance or take up fewer resources? Perhaps there are specific use cases when one should be used over another? Or maybe some are decprecated and should be avoided?
> 
> I just want to make sure that I make the best choices while cleaning up our own code and couldn't find anything documenting the differences. Thank you in advance for any information you provide.
> 
> --
> David Rose
> Sr. Network Engineer
> Office of Technology Services
> Illinois Institute of Technology
> (O) 312.567.3249
> (F) 312.567.5968
> rosed at iit.edu
> _______________________________________________
> radiator mailing list
> radiator at lists.open.com.au
> https://lists.open.com.au/mailman/listinfo/radiator


--

Hugh Irvine
hugh at open.com.au

Radiator: the most portable, flexible and configurable RADIUS server 
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald, 
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS, 
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER, SIM, etc. 
Full source on Unix, Linux, Windows, macOS, Solaris, VMS, NetWare etc.



More information about the radiator mailing list