summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvenaas <venaas>2008-06-02 13:28:19 +0000
committervenaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf>2008-06-02 13:28:19 +0000
commite38e6c92bf7be07aa571670a33d4e2ff3dd5fd2c (patch)
tree24ed3bb272760240039d57ec8879dea10ce33627
parent42da8c69631787acd53e60e9f1a16f304fb47b7d (diff)
cleaned up the initial dynamic server discovery code a bit
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@270 e88ac4ed-0b26-0410-9574-a7f39faa03bf
-rw-r--r--radsecproxy.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/radsecproxy.c b/radsecproxy.c
index e430054..07811ec 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -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 */