removed the check_items && reply_items from the authorize and
authoraland <aland>
Mon, 2 Oct 2000 19:52:48 +0000 (19:52 +0000)
committeraland <aland>
Mon, 2 Oct 2000 19:52:48 +0000 (19:52 +0000)
authenticate functions.  This makes the code look a little cleaner.

src/include/modules.h
src/main/modules.c
src/modules/rlm_example/rlm_example.c
src/modules/rlm_files/rlm_files.c
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_preprocess/rlm_preprocess.c
src/modules/rlm_realm/rlm_realm.c
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_unix/rlm_unix.c

index 473701d..f2a4ed7 100644 (file)
  *     edit each and every module when we decide to add another type
  *     of request handler.
  */
-typedef int (*RLM_AUTHORIZE_FUNCP)(REQUEST *request, 
-                                  VALUE_PAIR **check_items,
-                                  VALUE_PAIR **reply_items);
-typedef int (*RLM_AUTHENTICATE_FUNCP)(REQUEST *request,
-                                  VALUE_PAIR **check_items,
-                                  VALUE_PAIR **reply_items);
+typedef int (*RLM_AUTHORIZE_FUNCP)(REQUEST *request);
+typedef int (*RLM_AUTHENTICATE_FUNCP)(REQUEST *request);
 typedef int (*RLM_POST_AUTHENTICATE_FUNCP)(REQUEST *request);
 typedef int (*RLM_PRE_ACCOUNTING_FUNCP)(REQUEST *request);
 typedef int (*RLM_ACCOUNTING_FUNCP)(REQUEST *request);
@@ -35,10 +31,8 @@ typedef struct module_t {
        int     type;                   /* reserved */
        int     (*init)(void);
        int     (*instantiate)(CONF_SECTION *mod_cs, void **instance);
-       int     (*authorize)(void *instance, REQUEST *request, 
-                       VALUE_PAIR **check_items, VALUE_PAIR **reply_items);
-       int     (*authenticate)(void *instance, REQUEST *request, 
-                       VALUE_PAIR **check_items, VALUE_PAIR **reply_items);
+       int     (*authorize)(void *instance, REQUEST *request);
+       int     (*authenticate)(void *instance, REQUEST *request);
        int     (*preaccounting)(void *instance, REQUEST *request);
        int     (*accounting)(void *instance, REQUEST *request);
        int     (*detach)(void *instance);
index be61b2b..23503af 100644 (file)
@@ -550,9 +550,7 @@ int module_authorize(REQUEST *request)
        while (this && rcode == RLM_MODULE_OK) {
                DEBUG2("  authorize: %s", this->instance->entry->module->name);
                rcode = (this->instance->entry->module->authorize)(
-                        this->instance->insthandle, request,
-                        &request->config_items,
-                        &request->reply->vps);
+                        this->instance->insthandle, request);
                this = this->next;
        }
 
@@ -634,8 +632,7 @@ int module_authenticate(int auth_type, REQUEST *request)
 
        DEBUG2("  authenticate: %s", this->instance->entry->module->name);
        return (this->instance->entry->module->authenticate)(
-               this->instance->insthandle, request,
-               &request->config_items, &request->reply->vps);
+               this->instance->insthandle, request);
 }
 
 
index 442030d..e29ac45 100644 (file)
@@ -112,14 +112,11 @@ static int radius_instantiate(CONF_SECTION *conf, void **instance)
  *     from the database. The authentication code only needs to check
  *     the password, the rest is done here.
  */
-static int radius_authorize(void *instance, REQUEST *request,
-                           VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int radius_authorize(void *instance, REQUEST *request)
 {
        /* quiet the compiler */
        instance = instance;
        request = request;
-       check_pairs = check_pairs;
-       reply_pairs = reply_pairs;
        
        return RLM_MODULE_OK;
 }
@@ -127,8 +124,7 @@ static int radius_authorize(void *instance, REQUEST *request,
 /*
  *     Authenticate the user with the given password.
  */
-static int radius_authenticate(void *instance, REQUEST *request,
-       VALUE_PAIR **check_items, VALUE_PAIR **reply_items)
+static int radius_authenticate(void *instance, REQUEST *request)
 {
        /* quiet the compiler */
        instance = instance;
index ccf4410..7d18ef3 100644 (file)
@@ -466,8 +466,7 @@ static int file_instantiate(CONF_SECTION *conf, void **instance)
  *     for this user from the database. The main code only
  *     needs to check the password, the rest is done here.
  */
-static int file_authorize(void *instance, REQUEST *request,
-               VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int file_authorize(void *instance, REQUEST *request)
 {
        int             nas_port = 0;
        VALUE_PAIR      *namepair;
@@ -490,9 +489,12 @@ static int file_authorize(void *instance, REQUEST *request,
        int   auth_type = -1;
        int   result = 1;
 #endif
+       VALUE_PAIR **check_pairs, **reply_pairs;
 
 
        request_pairs = request->packet->vps;
+       check_pairs = &request->config_items;
+       reply_pairs = &request->reply->vps;
 
        /*
         *      Grab the canonical user name.
@@ -697,8 +699,7 @@ static int file_authorize(void *instance, REQUEST *request,
 /*
  *     Authentication - unused.
  */
-static int file_authenticate(void *instance, REQUEST *request,
-       VALUE_PAIR **check_items, VALUE_PAIR **reply_items)
+static int file_authenticate(void *instance, REQUEST *request)
 {
        instance = instance;
        request = request;
index 62bfce9..83f3c26 100644 (file)
@@ -363,8 +363,7 @@ fail:
  *      Purpose: Check if user is authorized for remote access 
  *
  *****************************************************************************/
-static int rlm_ldap_authorize(void *instance, REQUEST *request,
-                             VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int rlm_ldap_authorize(void *instance, REQUEST *request)
 {
     LDAPMessage *result, *msg, *gr_result, *gr_msg;
     char *filter, *name, *user_dn,
@@ -375,6 +374,10 @@ static int rlm_ldap_authorize(void *instance, REQUEST *request,
     VALUE_PAIR      *reply_tmp;
     int  i;
     int         res;
+    VALUE_PAIR **check_pairs, **reply_pairs;
+
+    check_pairs = &request->config_items;
+    reply_pairs = &request->reply->vps;
 
     DEBUG("rlm_ldap: thread #%p - authorize", pthread_self());
     name = request->username->strvalue;
@@ -514,8 +517,7 @@ static int rlm_ldap_authorize(void *instance, REQUEST *request,
  *     Purpose: Check the user's password against ldap database 
  *
  *****************************************************************************/
-static int rlm_ldap_authenticate(void *instance, REQUEST *request,
-       VALUE_PAIR **check_items, VALUE_PAIR **reply_items);
+static int rlm_ldap_authenticate(void *instance, REQUEST *request);
 {
     LDAP *ld_user;
     LDAPMessage *result, *msg;
index eed76c6..1f8be4b 100644 (file)
@@ -508,16 +508,12 @@ static int preprocess_init(void)
 /*
  *     Preprocess a request.
  */
-static int preprocess_authorize(void *instance, REQUEST *request,
-       VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int preprocess_authorize(void *instance, REQUEST *request)
 {
        char buf[1024];
 
        instance = instance;
 
-       check_pairs = check_pairs; /* shut the compiler up */
-       reply_pairs = reply_pairs;
-
        /*
         *      Mangle the username, to get rid of stupid implementation
         *      bugs.
index 818b45e..c7c1aaa 100644 (file)
@@ -150,13 +150,11 @@ static void add_proxy_to_realm(VALUE_PAIR **vps, REALM *realm)
  *
  *  This should very nearly duplicate the old proxy_send() code
  */
-static int realm_authorize(void *instance, REQUEST *request,
-                          VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int realm_authorize(void *instance, REQUEST *request)
 {
        REALM *realm;
 
        instance = instance;
-       reply_pairs = reply_pairs; /* -Wunused */
        
        /*
         *      Check if we've got to proxy the request.
@@ -171,7 +169,7 @@ static int realm_authorize(void *instance, REQUEST *request,
        /*
         *      Maybe add a Proxy-To-Realm attribute to the request.
         */
-       add_proxy_to_realm(check_pairs, realm);
+       add_proxy_to_realm(&request->config_items, realm);
 
        return RLM_MODULE_OK; /* try the next module */
 }
index 5c02383..88a122a 100644 (file)
@@ -125,7 +125,7 @@ static int rlm_sql_destroy(void) {
 }
 
 
-static int rlm_sql_authorize(REQUEST *request, VALUE_PAIR **check_pairs, VALUE_PAIR **reply_pairs)
+static int rlm_sql_authorize(REQUEST *request)
 {
        int             nas_port = 0;
        VALUE_PAIR      *check_tmp = NULL;
@@ -180,8 +180,8 @@ static int rlm_sql_authorize(REQUEST *request, VALUE_PAIR **check_pairs, VALUE_P
               return RLM_MODULE_OK;
        }
        
-       pairmove(reply_pairs, &reply_tmp);
-       pairmove(check_pairs, &check_tmp);
+       pairmove(&request->reply->vps, &reply_tmp);
+       pairmove(&request->config_items, &check_tmp);
        pairfree(reply_tmp);
        pairfree(check_tmp);
        
@@ -189,9 +189,9 @@ static int rlm_sql_authorize(REQUEST *request, VALUE_PAIR **check_pairs, VALUE_P
        /*
         *      Fix dynamic IP address if needed.
         */
-       if ((tmp = pairfind(*reply_pairs, PW_ADD_PORT_TO_IP_ADDRESS)) != NULL){
+       if ((tmp = pairfind(request->reply->vps, PW_ADD_PORT_TO_IP_ADDRESS)) != NULL){
                if (tmp->lvalue != 0) {
-                       tmp = pairfind(*reply_pairs, PW_FRAMED_IP_ADDRESS);
+                       tmp = pairfind(request->reply->vps, PW_FRAMED_IP_ADDRESS);
                        if (tmp) {
                                /*
                                 *      FIXME: This only works because IP
@@ -201,14 +201,13 @@ static int rlm_sql_authorize(REQUEST *request, VALUE_PAIR **check_pairs, VALUE_P
                                tmp->lvalue += nas_port;
                        }
                }
-               pairdelete(reply_pairs, PW_ADD_PORT_TO_IP_ADDRESS);
+               pairdelete(request->reply->vps, PW_ADD_PORT_TO_IP_ADDRESS);
        }
 
        return RLM_MODULE_OK;
 }
 
-static int rlm_sql_authenticate(REQUEST *request,
-       VALUE_PAIR **check_items, VALUE_PAIR **reply_items)
+static int rlm_sql_authenticate(REQUEST *request)
 {
        
        SQL_ROW         row;
index 0b7934d..5d35ecb 100644 (file)
@@ -167,8 +167,7 @@ static int unix_destroy(void)
  *     Check the users password against the standard UNIX
  *     password table.
  */
-static int unix_authenticate(void *instance, REQUEST *request, 
-       VALUE_PAIR **check_items, VALUE_PAIR **reply_items)
+static int unix_authenticate(void *instance, REQUEST *request)
 {
        char *name, *passwd;
        struct passwd   *pwd;
@@ -220,7 +219,7 @@ static int unix_authenticate(void *instance, REQUEST *request,
        name = (char *)request->username->strvalue;
        passwd = (char *)request->password->strvalue;
 
-       if (cache_passwd && (ret = H_unix_pass(name, passwd, reply_items)) != -2)
+       if (cache_passwd && (ret = H_unix_pass(name, passwd, &request->reply->vps)) != -2)
                return (ret == 0) ? RLM_MODULE_OK : RLM_MODULE_REJECT;
 
 #ifdef OSFC2