I need to add script execution in authorize section of freeradius config.
This script uses command-line arguments with mysql server credentials.
I'm using %{config:section.subsection.item} to get this from sql.conf file, to this parameters configured just in one place.
It appears that there's 2 instances of modules.sql in freeradius configuration, one is in sql.conf and another one in modules/cui.
How can I refer to exact module instance's variables?
I use it like this:
exec radsqlkill {
wait = yes
program = "/usr/local/bin/myradsqlkill.pl %{config:modules.sql.server} %{config:modules.sql.login} %{config:modules.sql.password} %{config:modules.sql.radius_db} %{User-Name}"
shell_escape = yes
output = none
packet_type = Access-Request
}
But once I check with radiusd -X I found this:
[radsqlkill] expand: modules.sql.server -> modules.sql.server
[radsqlkill] expand: %{config:modules.sql.server} -> localhost
[radsqlkill] expand: modules.sql.login -> modules.sql.login
[radsqlkill] expand: %{config:modules.sql.login} -> db_login_name
[radsqlkill] expand: modules.sql.password -> modules.sql.password
[radsqlkill] expand: %{config:modules.sql.password} -> db_password
[radsqlkill] expand: modules.sql.radius_db -> modules.sql.radius_db
[radsqlkill] expand: %{config:modules.sql.radius_db} -> db_name
[radsqlkill] expand: %{User-Name} -> user
sql.conf:
sql {
database = "mysql"
driver = "rlm_sql_${database}"
server = "192.168.X.X"
login = "radius"
...
}
modules/cui:
sql cui {
database = "mysql"
driver = "rlm_sql_${database}"
server = "localhost"
login = "db_login_name"
password = "db_password"
radius_db = "db_name"
num_sql_socks = 5
connect_failure_retry_delay = 60
cui_table = "cui"
sql_user_name = "%{User-Name}"
}
$INCLUDE sql.confabove$INCLUDE ${confdir}/modules/. But I'm still curios if solid solution exists – DukeLion Sep 19 '12 at 7:25