summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mauchle <fabian.mauchle@switch.ch>2017-08-04 18:18:12 +0200
committerFabian Mauchle <fabian.mauchle@switch.ch>2017-08-04 18:18:12 +0200
commitc531ef23bc6b07cb1fabe31b53f0f262fddcbc82 (patch)
treedb1e62058be0f07c7fa3c5ab6418db1b1a1a9b9c
parent5a1c3476ab7d57a0e64de1e919c641c36575bc6c (diff)
fail dynamic servers earlymauchle-dup-dyndisc2
-rw-r--r--radsecproxy.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/radsecproxy.c b/radsecproxy.c
index 0bccce8..b6edc07 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -1862,9 +1862,9 @@ void *clientwr(void *arg) {
if (conf->pdef->connecter) {
if (!conf->pdef->connecter(server, NULL, server->dynamiclookuparg ? 5 : 0, "clientwr")) {
+ server->dynfailing = 1;
if (server->dynamiclookuparg) {
server->dynstartup = 0;
- server->dynfailing = 1;
debug(DBG_WARN, "%s: connect failed, sleeping %ds",
__func__, ZZZ);
sleep(ZZZ);
@@ -1876,6 +1876,7 @@ void *clientwr(void *arg) {
server->in_use = 1;
#endif
if (pthread_create(&clientrdth, &pthread_attr, conf->pdef->clientconnreader, (void *)server)) {
+ server->dynfailing = 1;
debugerrno(errno, DBG_ERR, "clientwr: pthread_create failed");
goto errexit;
}
@@ -1919,6 +1920,7 @@ void *clientwr(void *arg) {
for (i = 0; i < MAX_REQUESTS; i++) {
if (server->clientrdgone) {
+ server->dynfailing = 1;
if (conf->pdef->connecter)
pthread_join(clientrdth, NULL);
goto errexit;