For the step 4, I have to : 1) Retrieve the huntgroup 2) Compare it with what the user sends 3) If it matches, give him his specific statement.
So, if I understand correctly in the authorize section, I have to maintain a radipusers table for my IP/users and do something like :
1) update request { Huntgroup-Name := "%{sql:SELECT groupname FROM radhuntgroup WHERE nasipaddress='%{NAS-IP-Address}'}" }
2) if Huntgroup-Name == 'one_huntgroup_name' { 3) Framed-IP-Address = "%{sql:SELECT ip FROM radipusers WHERE user='%{username}'}" }
Is there something wrong in what I just said ?
I'm really not sure.
All I can say is try it, and see if it works.
I tried it and it worked. However, it worked only because the specific statement was : "Framed-IP-Address = IP.ADD.RE.SS" (Remind : the wanted behaviour is I want the following behaviour : 1) Set the password for the user 2) Authentication of the user 3) X is always added to the reply if the user is authenticated 4) Moreover, Y is added to the reply for NAS, still if the user is authenticated.) What I would like instead of my dumb radipusers table (id | username | ip), is a table which looks like radreply (id | username | attribute | op | value) I could use with unlang. The thing I want to be added by radius in the reply : if (Huntgroup-Name == 'one_huntgroup_name') { Attribute1 op1 value1 Attribute2 op2 value2 ... Attributei opi valuei } Given that Attribute,op,value 1...i are in the MySQL table. Is it possible to get that by unlang / SQL ? I've read the unlang manpage, and I don't see any information which would enable me to do that. I've tried something without so much hope, and without success : "%{sql:SELECT attribute from radreply where username='%{request:User-Name}'}" = "%{sql:SELECT value from radreply where username='%{User-Name}'}" Thank you for your help, Regards, Grégoire Leroy