From 322b9b94e968fea4214e0e6be8af3bdbe24e2a29 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 7 Oct 2020 16:20:34 +0200 Subject: [PATCH] MEDIUM: proxy: make stop_proxy() now use stop_listener() The function will stop the listeners using this method, which in turn will ping back once it finishes disabling the proxy. --- src/proxy.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/src/proxy.c b/src/proxy.c index 058e33131b..247ee6366c 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1300,26 +1300,8 @@ void stop_proxy(struct proxy *p) HA_SPIN_LOCK(PROXY_LOCK, &p->lock); - list_for_each_entry(l, &p->conf.listeners, by_fe) { - if (l->options & LI_O_NOSTOP) - continue; - - /* There are several cases where we must not close an FD: - * - we're starting up and we have socket transfers enabled; - * - we're the master and this FD was inherited; - */ - if ((global.tune.options & GTUNE_SOCKET_TRANSFER && global.mode & MODE_STARTING) || - (master && (l->rx.flags & RX_F_INHERITED))) - unbind_listener_no_close(l); - else - unbind_listener(l); - - if (l->state >= LI_ASSIGNED) - delete_listener(l); - } - - if (p->li_ready + p->li_bound + p->li_paused == 0) - p->disabled = 1; + list_for_each_entry(l, &p->conf.listeners, by_fe) + stop_listener(l, 1, 0, 0); HA_SPIN_UNLOCK(PROXY_LOCK, &p->lock); } -- 2.39.5