mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-30 01:52:53 +00:00
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.
This commit is contained in:
parent
caa7df1296
commit
322b9b94e9
22
src/proxy.c
22
src/proxy.c
@ -1300,26 +1300,8 @@ void stop_proxy(struct proxy *p)
|
|||||||
|
|
||||||
HA_SPIN_LOCK(PROXY_LOCK, &p->lock);
|
HA_SPIN_LOCK(PROXY_LOCK, &p->lock);
|
||||||
|
|
||||||
list_for_each_entry(l, &p->conf.listeners, by_fe) {
|
list_for_each_entry(l, &p->conf.listeners, by_fe)
|
||||||
if (l->options & LI_O_NOSTOP)
|
stop_listener(l, 1, 0, 0);
|
||||||
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;
|
|
||||||
|
|
||||||
HA_SPIN_UNLOCK(PROXY_LOCK, &p->lock);
|
HA_SPIN_UNLOCK(PROXY_LOCK, &p->lock);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user