cleaned up the initial dynamic server discovery code a bit
authorvenaas <venaas>
Mon, 2 Jun 2008 13:28:19 +0000 (13:28 +0000)
committervenaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf>
Mon, 2 Jun 2008 13:28:19 +0000 (13:28 +0000)
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@270 e88ac4ed-0b26-0410-9574-a7f39faa03bf

radsecproxy.c

index e430054..07811ec 100644 (file)
@@ -40,6 +40,7 @@
 #endif
 #include <sys/time.h>
 #include <sys/types.h>
+#include <ctype.h>
 #include <sys/wait.h>
 #include <arpa/inet.h>
 #include <regex.h>
@@ -2827,7 +2828,8 @@ struct realm *addrealm(struct list *realmlist, char *value, char **servers, char
 void adddynamicrealmserver(struct realm *realm, struct clsrvconf *conf, char *id) {
     struct clsrvconf *srvconf;
     struct realm *newrealm = NULL;
-    char *realmname;
+    char *realmname, *s;
+
     
     if (!conf->dynamiclookupcommand)
        return;
@@ -2839,6 +2841,9 @@ void adddynamicrealmserver(struct realm *realm, struct clsrvconf *conf, char *id
     realmname++;
     if (!*realmname)
        return;
+    for (s = realmname; *s; s++)
+       if (*s != '-' && !isalnum(*s))
+           return;
     
     pthread_mutex_lock(&realm->subrealms_mutex);
     /* exit if we now already got a matching subrealm */