diff --git a/src/proxy.c b/src/proxy.c index bd639fa41..17063a65f 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -518,8 +518,6 @@ void maintain_proxies(int *next) } if (stopping) { - struct peers *prs; - p = proxy; while (p) { if (p->state != PR_STSTOPPED) { @@ -540,13 +538,6 @@ void maintain_proxies(int *next) } p = p->next; } - - prs = peers; - while (prs) { - stop_proxy((struct proxy *)prs->peers_fe); - prs = prs->next; - } - } return; } @@ -560,6 +551,7 @@ void maintain_proxies(int *next) void soft_stop(void) { struct proxy *p; + struct peers *prs; stopping = 1; p = proxy; @@ -575,6 +567,12 @@ void soft_stop(void) p = p->next; } + + prs = peers; + while (prs) { + stop_proxy((struct proxy *)prs->peers_fe); + prs = prs->next; + } /* signal zero is used to broadcast the "stopping" event */ signal_handler(0); }