Tell me more ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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}"
}
share|improve this question
I've got workaround by placing $INCLUDE sql.conf above $INCLUDE ${confdir}/modules/. But I'm still curios if solid solution exists – DukeLion Sep 19 '12 at 7:25

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.