mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
MINOR: listener: move the INHERITED flag down to the receiver
It's the receiver's FD that's inherited from the parent process, not the listener's so the flag must move to the receiver so that appropriate actions can be taken.
This commit is contained in:
parent
0b9150155e
commit
43046fa4f4
@ -97,7 +97,7 @@ enum li_state {
|
||||
#define LI_O_V6ONLY 0x0400 /* bind to IPv6 only on Linux >= 2.4.21 */
|
||||
#define LI_O_V4V6 0x0800 /* bind to IPv4/IPv6 on Linux >= 2.4.21 */
|
||||
#define LI_O_ACC_CIP 0x1000 /* find the proxied address in the NetScaler Client IP header */
|
||||
#define LI_O_INHERITED 0x2000 /* inherited FD from the parent process (fd@) */
|
||||
/* unused 0x2000 */
|
||||
#define LI_O_MWORKER 0x4000 /* keep the FD open in the master but close it in the children */
|
||||
#define LI_O_NOSTOP 0x8000 /* keep the listener active even after a soft stop */
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
|
||||
/* Bit values for receiver->options */
|
||||
#define RX_F_BOUND 0x00000001 /* receiver already bound */
|
||||
#define RX_F_INHERITED 0x00000002 /* inherited FD from the parent process (fd@) */
|
||||
|
||||
/* All the settings that are used to configure a receiver */
|
||||
struct rx_settings {
|
||||
|
@ -2671,7 +2671,7 @@ int mworker_cli_sockpair_new(struct mworker_proc *mworker_proc, int proc)
|
||||
l->default_target = global.stats_fe->default_target;
|
||||
l->options |= (LI_O_UNLIMITED | LI_O_NOSTOP);
|
||||
/* it's a sockpair but we don't want to keep the fd in the master */
|
||||
l->options &= ~LI_O_INHERITED;
|
||||
l->rx.flags &= ~RX_F_INHERITED;
|
||||
l->nice = -64; /* we want to boost priority for local stats */
|
||||
global.maxsock++; /* for the listening socket */
|
||||
}
|
||||
|
@ -574,7 +574,7 @@ int create_listeners(struct bind_conf *bc, const struct sockaddr_storage *ss,
|
||||
proto->add(l, port);
|
||||
|
||||
if (inherited)
|
||||
l->options |= LI_O_INHERITED;
|
||||
l->rx.flags |= RX_F_INHERITED;
|
||||
|
||||
HA_SPIN_INIT(&l->lock);
|
||||
_HA_ATOMIC_ADD(&jobs, 1);
|
||||
|
@ -426,7 +426,7 @@ void mworker_cleanlisteners()
|
||||
/* unbind the listener but does not close if
|
||||
the FD is inherited with fd@ from the parent
|
||||
process */
|
||||
if (l->options & LI_O_INHERITED)
|
||||
if (l->rx.flags & RX_F_INHERITED)
|
||||
unbind_listener_no_close(l);
|
||||
else
|
||||
unbind_listener(l);
|
||||
|
@ -777,7 +777,7 @@ int tcp_bind_listener(struct listener *listener, char *errmsg, int errlen)
|
||||
thread_mask(listener->rx.settings->bind_thread) & all_threads_mask);
|
||||
|
||||
/* for now, all regularly bound TCP listeners are exportable */
|
||||
if (!(listener->options & LI_O_INHERITED))
|
||||
if (!(listener->rx.flags & RX_F_INHERITED))
|
||||
fdtab[fd].exported = 1;
|
||||
|
||||
tcp_return:
|
||||
|
@ -270,7 +270,7 @@ static int uxst_bind_listener(struct listener *listener, char *errmsg, int errle
|
||||
thread_mask(listener->rx.settings->bind_thread) & all_threads_mask);
|
||||
|
||||
/* for now, all regularly bound UNIX listeners are exportable */
|
||||
if (!(listener->options & LI_O_INHERITED))
|
||||
if (!(listener->rx.flags & RX_F_INHERITED))
|
||||
fdtab[fd].exported = 1;
|
||||
|
||||
return err;
|
||||
|
@ -1370,7 +1370,7 @@ void stop_proxy(struct proxy *p)
|
||||
continue;
|
||||
}
|
||||
/* The master should not close an inherited FD */
|
||||
if (master && (l->options & LI_O_INHERITED))
|
||||
if (master && (l->rx.flags & RX_F_INHERITED))
|
||||
unbind_listener_no_close(l);
|
||||
else
|
||||
unbind_listener(l);
|
||||
|
Loading…
Reference in New Issue
Block a user