Remove paircompare_unregister() from modules
authorAlan T. DeKok <aland@freeradius.org>
Wed, 3 Apr 2013 19:34:27 +0000 (15:34 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 3 Apr 2013 19:51:02 +0000 (15:51 -0400)
They register using instance data, so the server core now
unregisters the paircompare's

src/modules/rlm_counter/rlm_counter.c
src/modules/rlm_expiration/rlm_expiration.c
src/modules/rlm_expr/paircmp.c
src/modules/rlm_expr/rlm_expr.c
src/modules/rlm_expr/rlm_expr.h
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sqlcounter/rlm_sqlcounter.c
src/modules/rlm_unix/rlm_unix.c

index 8708f0d..a31a712 100644 (file)
@@ -847,7 +847,6 @@ static int mod_detach(void *instance)
 {
        rlm_counter_t *inst = instance;
 
-       paircompare_unregister(inst->dict_attr, counter_cmp);
        if (inst->gdbm) {
                gdbm_close(inst->gdbm);
        }
index b0a3c3c..606b962 100644 (file)
@@ -124,12 +124,6 @@ static int expirecmp(UNUSED void *instance, REQUEST *req, UNUSED VALUE_PAIR *req
 }
 
 
-static int mod_detach(UNUSED void *instance)
-{
-       paircompare_unregister(PW_EXPIRATION, expirecmp);
-       return 0;
-}
-
 /*
  *     Do any per-module initialization that is separate to each
  *     configured instance of the module.  e.g. set up connections
@@ -167,7 +161,7 @@ module_t rlm_expiration = {
        sizeof(rlm_expiration_t),
        module_config,
        mod_instantiate,                /* instantiation */
-       mod_detach,             /* detach */
+       NULL,                           /* detach */
        {
                NULL,                   /* authentication */
                mod_authorize,  /* authorization */
index 4363d59..5e4614b 100644 (file)
@@ -271,35 +271,18 @@ static int generic_attrs[] = {
 /*
  *     Register server-builtin special attributes.
  */
-void pair_builtincompare_add(void)
+void pair_builtincompare_add(void *instance)
 {
        int i;
 
-       paircompare_register(PW_NAS_PORT, PW_NAS_PORT, portcmp, NULL);
-       paircompare_register(PW_PREFIX, PW_USER_NAME, presufcmp, NULL);
-       paircompare_register(PW_SUFFIX, PW_USER_NAME, presufcmp, NULL);
-       paircompare_register(PW_CONNECT_RATE, PW_CONNECT_INFO, connectcmp, NULL);
-       paircompare_register(PW_PACKET_TYPE, 0, packetcmp, NULL);
-       paircompare_register(PW_RESPONSE_PACKET_TYPE, 0, responsecmp, NULL);
+       paircompare_register(PW_NAS_PORT, PW_NAS_PORT, portcmp, instance);
+       paircompare_register(PW_PREFIX, PW_USER_NAME, presufcmp, instance);
+       paircompare_register(PW_SUFFIX, PW_USER_NAME, presufcmp, instance);
+       paircompare_register(PW_CONNECT_RATE, PW_CONNECT_INFO, connectcmp, instance);
+       paircompare_register(PW_PACKET_TYPE, 0, packetcmp, instance);
+       paircompare_register(PW_RESPONSE_PACKET_TYPE, 0, responsecmp, instance);
 
        for (i = 0; generic_attrs[i] != 0; i++) {
-               paircompare_register(generic_attrs[i], -1, genericcmp, NULL);
+               paircompare_register(generic_attrs[i], -1, genericcmp, instance);
        }
 }
-
-void pair_builtincompare_del(void)
-{
-       int i;
-
-       paircompare_unregister(PW_NAS_PORT, portcmp);
-       paircompare_unregister(PW_PREFIX, presufcmp);
-       paircompare_unregister(PW_SUFFIX, presufcmp);
-       paircompare_unregister(PW_CONNECT_RATE, connectcmp);
-       paircompare_unregister(PW_PACKET_TYPE, packetcmp);
-       paircompare_unregister(PW_RESPONSE_PACKET_TYPE, responsecmp);
-
-       for (i = 0; generic_attrs[i] != 0; i++) {
-               paircompare_unregister(generic_attrs[i], genericcmp);
-       }
-
-}
index c01f37c..8bc8b78 100644 (file)
@@ -703,7 +703,6 @@ static int mod_detach(void *instance)
        rlm_expr_t      *inst = instance;
 
        xlat_unregister(inst->xlat_name, expr_xlat, instance);
-       pair_builtincompare_del();
        return 0;
 }
 
@@ -740,7 +739,7 @@ static int mod_instantiate(CONF_SECTION *conf, void *instance)
        /*
         *      Initialize various paircompare functions
         */
-       pair_builtincompare_add();
+       pair_builtincompare_add(instance);
        return 0;
 }
 
index b2ebcc5..7c0fa8a 100644 (file)
@@ -20,7 +20,6 @@
  */
 RCSIDH(rlm_expr_h, "$Id$")
 
-void pair_builtincompare_add(void);
-void pair_builtincompare_del(void);
+void pair_builtincompare_add(void *instance);
 
 #endif
index bdb8f41..b289be0 100644 (file)
@@ -738,8 +738,6 @@ static int mod_detach(void *instance)
 {
        rlm_sql_t *inst = instance;
 
-       paircompare_unregister(PW_SQL_GROUP, sql_groupcmp);
-       
        if (inst->config) {
                if (inst->pool) sql_poolfree(inst);
 
index ea8b08d..f21487f 100644 (file)
@@ -334,15 +334,6 @@ static int sqlcounter_cmp(void *instance, REQUEST *req,
 }
 
 
-static int mod_detach(void *instance)
-{
-       rlm_sqlcounter_t *inst = (rlm_sqlcounter_t *)instance;
-
-       paircompare_unregister(inst->dict_attr->attr, sqlcounter_cmp);
-
-       return 0;
-}
-
 /*
  *     Do any per-module initialization that is separate to each
  *     configured instance of the module.  e.g. set up connections
@@ -595,7 +586,7 @@ module_t rlm_sqlcounter = {
        sizeof(rlm_sqlcounter_t),
        module_config,
        mod_instantiate,                /* instantiation */
-       mod_detach,             /* detach */
+       NULL,                           /* detach */
        {
                NULL,                   /* authentication */
                mod_authorize,  /* authorization */
index 558563c..38f1b32 100644 (file)
@@ -108,21 +108,6 @@ static int groupcmp(UNUSED void *instance, REQUEST *req, UNUSED VALUE_PAIR *requ
 
 
 /*
- *     Detach.
- */
-static int mod_detach(UNUSED void *instance)
-{
-#define inst ((struct unix_instance *)instance)
-
-       paircompare_unregister(PW_GROUP, groupcmp);
-#ifdef PW_GROUP_NAME
-       paircompare_unregister(PW_GROUP_NAME, groupcmp);
-#endif
-#undef inst
-       return 0;
-}
-
-/*
  *     Read the config
  */
 static int mod_instantiate(UNUSED CONF_SECTION *conf, void *instance)
@@ -500,7 +485,7 @@ module_t rlm_unix = {
        sizeof(struct unix_instance),
        module_config,
        mod_instantiate,                /* instantiation */
-       mod_detach,                     /* detach */
+       NULL,                           /* detach */
        {
                NULL,               /* authentication */
                mod_authorize,       /* authorization */