Register SQL-Group only if the query is defined
authorAlan T. DeKok <aland@freeradius.org>
Mon, 28 Jun 2010 13:54:28 +0000 (15:54 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 28 Jun 2010 13:54:28 +0000 (15:54 +0200)
src/modules/rlm_sql/rlm_sql.c

index de85bf9..df221f2 100644 (file)
@@ -904,8 +904,13 @@ static int rlm_sql_instantiate(CONF_SECTION * conf, void **instance)
                        free(inst);     /* FIXME: detach */
                        return -1;
                }
-               DEBUG("rlm_sql: Registering sql_groupcmp for %s",group_name);
-               paircompare_register(dattr->attr, PW_USER_NAME, sql_groupcmp, inst);
+
+               if (inst->config->groupmemb_query && 
+                   inst->config->groupmemb_query[0]) {
+                       DEBUG("rlm_sql: Registering sql_groupcmp for %s",group_name);
+                       paircompare_register(dattr->attr, PW_USER_NAME, sql_groupcmp, inst);
+               }
+
                free(group_name);
        }
        if (xlat_name){
@@ -962,7 +967,10 @@ static int rlm_sql_instantiate(CONF_SECTION * conf, void **instance)
                return -1;
        }
 
-       paircompare_register(PW_SQL_GROUP, PW_USER_NAME, sql_groupcmp, inst);
+       if (inst->config->groupmemb_query && 
+           inst->config->groupmemb_query[0]) {
+               paircompare_register(PW_SQL_GROUP, PW_USER_NAME, sql_groupcmp, inst);
+       }
 
        if (inst->config->do_clients){
                if (generate_sql_clients(inst) == -1){