From 82b55cc05184e96d968788fbbcfc6e9326099ba5 Mon Sep 17 00:00:00 2001 From: venaas Date: Mon, 2 Jun 2008 13:56:29 +0000 Subject: checking exit code from dynsrvlookup git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@272 e88ac4ed-0b26-0410-9574-a7f39faa03bf --- dynsrv.sh | 1 + radsecproxy.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dynsrv.sh b/dynsrv.sh index 7adcbe0..d0810d6 100755 --- a/dynsrv.sh +++ b/dynsrv.sh @@ -1,5 +1,6 @@ #! /bin/sh srv=`host -t srv _radsec._tcp.$1` +# should do exit 1 or something if host command fails host=`echo $srv|cut -d\ -f8` port=`echo $srv|cut -d\ -f7` echo "server $1-$host {" diff --git a/radsecproxy.c b/radsecproxy.c index 5802b1f..a503439 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -2901,7 +2901,7 @@ void adddynamicrealmserver(struct realm *realm, struct clsrvconf *conf, char *id } void dynamicconfig(struct server *server) { - int ok, fd[2]; + int ok, fd[2], status; pid_t pid; struct clsrvconf *conf = server->conf; struct gconffile *cf = NULL; @@ -2937,10 +2937,15 @@ void dynamicconfig(struct server *server) { ); freegconf(&cf); - if (waitpid(pid, NULL, 0) < 0) { + if (waitpid(pid, &status, 0) < 0) { debug(DBG_ERR, "dynamicconfig: wait error"); goto errexit; } + + if (status) { + debug(DBG_INFO, "dynamicconfig: command exited with status %d", WEXITSTATUS(status)); + goto errexit; + } if (ok) return; -- cgit v1.2.3