Hi,

in radiusd.conf there is the parameter checkrad with the location of this 
program that isn't read at startup time by the server. I need it because I 
have many servers that run on the same machine (on different port) and each 
one use a different checkrad (in the checkrad there are the directory 
locations, and any process had a different location).

I wrote a little patch (apply to 0.7 and to the latest CVS) that read this 
parameter and use it in session.c when checkrad is call.

I'm not a professional programmer but I hope this is usefull.

Andrea



--- src/main/radiusd.c.orig     2002-08-14 14:28:53.040002000 +0200
+++ src/main/radiusd.c  2002-08-14 14:54:49.490002000 +0200
@@ -203,6 +203,7 @@
        { "lower_pass", PW_TYPE_STRING_PTR, 0, &mainconfig.do_lower_pass, "no" },
        { "nospace_user", PW_TYPE_STRING_PTR, 0, &mainconfig.do_nospace_user, "no" },
        { "nospace_pass", PW_TYPE_STRING_PTR, 0, &mainconfig.do_nospace_pass, "no" },
+       { "checkrad", PW_TYPE_STRING_PTR, 0, &mainconfig.checkrad, 
"${sbindir}/checkrad" },
        { "proxy_requests", PW_TYPE_BOOLEAN, 0, &proxy_requests, "yes" },
        { "proxy", PW_TYPE_SUBSECTION, 0, proxy_config, NULL },
        { "security", PW_TYPE_SUBSECTION, 0, security_config, NULL },

--- src/main/session.c.orig     2002-08-14 14:58:15.400056000 +0200
+++ src/main/session.c  2002-08-14 15:01:43.320003000 +0200
@@ -254,10 +254,10 @@
        execl(getenv("COMSPEC"), "", "/C","checkrad",nas->nastype, address, port,
                user, session_id, NULL);
  #else
-       execl(CHECKRAD, "checkrad",nas->nastype, address, port,
+       execl(mainconfig.checkrad, "checkrad",nas->nastype, address, port,
                user, session_id, NULL);
  #endif
-       radlog(L_ERR, "Check-TS: exec %s: %s", CHECKRAD, strerror(errno));
+       radlog(L_ERR, "Check-TS: exec %s: %s", mainconfig.checkrad, strerror(errno));

        /*
         *      Exit - 2 means "some error occured".

--- src/include/radiusd.h.orig  2002-08-14 14:33:41.090063000 +0200
+++ src/include/radiusd.h       2002-08-14 14:56:44.400004000 +0200
@@ -132,6 +132,7 @@
        char    *do_nospace_user;
        char    *do_nospace_pass;
        char            *nospace_time;
+       char    *checkrad;
  } MAIN_CONFIG_T;

  #define DEBUG if(debug_flag)log_debug


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to