diff options
-rwxr-xr-x | dynsrv.sh | 1 | ||||
-rw-r--r-- | radsecproxy.c | 9 |
2 files changed, 8 insertions, 2 deletions
@@ -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; |