summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdynsrv.sh1
-rw-r--r--radsecproxy.c9
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;