haproxy/src
Willy Tarreau 785b89f551 MINOR: protocol: move the global reuseport flag to the protocols
Some protocol support SO_REUSEPORT and others not. Some have such a
limitation in the kernel, and others in haproxy itself (e.g. sock_unix
cannot support multiple bindings since each one will unbind the previous
one). Also it's really protocol-dependent and not just family-dependent
because on Linux for some time it was supported for TCP and not UDP.

Let's move the definition to the protocols instead. Now it's preset in
tcp/udp/quic when SO_REUSEPORT is defined, and is otherwise left unset.
The enabled() config condition test validates IPv4 (generally sufficient),
and -dR / noreuseport all protocols at once.
2023-04-23 09:46:15 +02:00
..
acl.c BUILD: acl: use __fallthrough in parse_acl_expr() 2022-11-14 11:14:02 +01:00
action.c BUG/MINOR: rules: Fix check_capture() function to use the right rule arguments 2022-04-25 15:28:21 +02:00
activity.c MINOR: listener: make accept_queue index atomic 2023-04-21 17:41:26 +02:00
applet.c MINOR: stconn: Rename SC_FL_SHUTW_NOW in SC_FL_SHUT_WANTED 2023-04-14 14:46:07 +02:00
arg.c CLEANUP: arg: remove extra check in make_arg_list arg escaping 2022-11-22 16:27:52 +01:00
auth.c MINOR: auth: silence null dereference warning in check_user() 2022-11-24 15:24:02 +01:00
backend.c CLEANUP: backend: Remove useless debug message in assign_server() 2023-04-18 18:57:04 +02:00
base64.c
cache.c CLEANUP: use "offsetof" where appropriate 2023-04-16 09:58:49 +02:00
calltrace.c BUILD: calltrace: fix wrong include when building with TRACE=1 2022-04-19 08:23:30 +02:00
cbuf.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
cfgcond.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
cfgdiag.c
cfgparse-global.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
cfgparse-listen.c MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
cfgparse-quic.c MINOR: quic: Add a fake congestion control algorithm named "nocc" 2023-03-31 17:09:03 +02:00
cfgparse-ssl.c MINOR: config: add "no-alpn" support for bind lines 2023-04-19 08:38:06 +02:00
cfgparse-tcp.c MINOR: listener: move TCP_FO to bind_conf 2023-02-03 18:00:20 +01:00
cfgparse-unix.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse.c MEDIUM: peers: call bind_complete_thread_setup() to finish the config 2023-04-23 09:46:15 +02:00
channel.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
check.c MINOR: server: change srv_op_st_chg_cause storage type 2023-04-21 14:36:45 +02:00
chunk.c MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli.c BUG/MINOR: cli: clarify error message about stats bind-process 2023-04-23 09:40:56 +02:00
clock.c MINOR: clock: add now_cpu_time_fast() function 2023-04-19 11:03:31 +02:00
compression.c MINOR: compression: Store algo and type for both request and response 2023-04-07 00:46:59 +02:00
connection.c CLEANUP: Stop checking the pointer before calling task_free() 2023-04-23 00:28:25 +02:00
cpuset.c MEDIUM: cpu-map: replace the process number with the thread group number 2022-07-15 19:43:10 +02:00
debug.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
dgram.c
dict.c
dns.c CLEANUP: Stop checking the pointer before calling ring_free() 2023-04-23 00:28:25 +02:00
dynbuf.c
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c CLEANUP: errors: fix obsolete function comments 2023-04-21 14:36:45 +02:00
ev_epoll.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_evports.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_kqueue.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_poll.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
ev_select.c MEDIUM: fd/poller: turn update_mask to group-local IDs 2022-07-15 20:16:30 +02:00
event_hdl.c CLEANUP: Stop checking the pointer before calling pool_free() 2023-04-23 00:28:25 +02:00
extcheck.c MINOR: checks: use the lighter PRNG for spread checks 2022-10-12 21:49:30 +02:00
fcgi-app.c BUG/MINOR: fcgi-app: prevent 'use-fcgi-app' in default section 2023-01-27 15:18:59 +01:00
fcgi.c BUG/MAJOR: fcgi: Fix uninitialized reserved bytes 2022-12-09 12:23:14 +01:00
fd.c BUG/MEDIUM: fd: don't wait for tmask to stabilize if we're not in it. 2023-04-13 18:04:46 +02:00
filters.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
fix.c
flt_bwlim.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
flt_http_comp.c MEDIUM: compression: Make it so we can compress requests as well. 2023-04-07 00:49:17 +02:00
flt_spoe.c MEDIUM: spoe: Use the sedesc to report and detect end of processing 2023-04-05 08:57:05 +02:00
flt_trace.c
freq_ctr.c BUG/MEDIUM: freq-ctr: Don't compute overshoot value for empty counters 2022-12-14 10:44:17 +01:00
frontend.c CLEANUP: tree-wide: remove strpcy() from constant strings 2023-04-07 18:14:28 +02:00
h1_htx.c BUG/MEDIUM: h1-htx: Never copy more than the max data allowed during parsing 2023-02-27 17:45:45 +01:00
h1.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
h2.c MINOR: http: extract content-length parsing from H2 2022-12-14 11:34:18 +01:00
h3_stats.c MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
h3.c BUG/MINOR: h3: fix crash on h3s alloc failure 2023-04-20 14:49:32 +02:00
haproxy.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
hash.c BUILD: hash: use __fallthrough in hash_djb2() 2022-11-14 11:14:02 +01:00
hlua_fcn.c CLEANUP: assorted typo fixes in the code and comments 2023-04-23 09:44:53 +02:00
hlua.c CLEANUP: assorted typo fixes in the code and comments 2023-04-23 09:44:53 +02:00
hpack-dec.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
hpack-enc.c
hpack-huff.c BUG/MEDIUM: hpack: fix incorrect huffman decoding of some control chars 2023-01-26 11:36:39 +01:00
hpack-tbl.c BUILD/DEBUG: hpack-tbl: fix format string in standalone debug code 2022-04-12 08:30:08 +02:00
hq_interop.c MINOR: h3/hq-interop: handle no data in decode_qcs() with FIN set 2023-02-17 16:25:00 +01:00
http_acl.c
http_act.c MINOR: tree-wide: Replace several chn_prod() by the corresponding SC 2023-04-14 15:06:04 +02:00
http_ana.c BUG/MINOR: http-ana: Update analyzers on both sides when switching in TUNNEL mode 2023-04-18 18:57:04 +02:00
http_client.c BUG/MEDIUM: http-client: Eat output data when waiting for appctx shutdown 2023-04-11 07:43:26 +02:00
http_conv.c CLEANUP: assorted typo fixes in the code and comments 2023-04-01 18:33:40 +02:00
http_ext.c CLEANUP: assorted typo fixes in the code and comments 2023-04-01 18:33:40 +02:00
http_fetch.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
http_htx.c MINOR: http_htx: add http_prepend_header() to prepend value to header 2023-01-27 15:18:59 +01:00
http_rules.c BUILD: http: remove the two unused constructors in rules and ana 2022-04-25 19:26:26 +02:00
http.c MINOR: http_fetch: add case insensitive support for smp_fetch_url_param 2023-03-30 14:11:10 +02:00
htx.c OPTIM: htx: inline the most common memcpy(8) 2023-02-03 13:39:18 +01:00
init.c MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
jwt.c MINOR: jwt: Add support for RSA-PSS signatures (PS256 algorithm) 2023-03-08 10:43:04 +01:00
lb_chash.c
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
listener.c MEDIUM: peers: call bind_complete_thread_setup() to finish the config 2023-04-23 09:46:15 +02:00
log.c BUG/MEDIUM: log: Properly handle client aborts in syslog applet 2023-04-17 16:50:30 +02:00
lru.c BUILD/DEBUG: lru: fix printf format in debug code 2022-04-12 08:19:33 +02:00
mailers.c BUG/MEDIUM: mailers: Set the object type for check attached to an email alert 2022-06-08 15:28:38 +02:00
map.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
mjson.c
mqtt.c
mux_fcgi.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
mux_h1.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
mux_h2.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
mux_pt.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
mux_quic.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
mworker-prog.c BUG/MINOR: mworker: unset more internal variables from program section 2023-04-05 16:02:36 +02:00
mworker.c CLEANUP: Stop checking the pointer before calling task_free() 2023-04-23 00:28:25 +02:00
namespace.c
ncbuf.c CLEANUP: ncbuf: use standard BUG_ON with DEBUG_STRICT 2022-11-29 15:15:27 +01:00
pattern.c MINOR: pattern: use trim_all_pools() instead of a conditional malloc_trim() 2023-03-22 17:30:28 +01:00
payload.c CLEANUP: check: rename all occurrences of stconn "cs" to "sc" 2022-05-27 19:33:35 +02:00
peers.c MEDIUM: peers: Use the sedesc to report and detect end of processing 2023-04-05 08:57:05 +02:00
pipe.c
pool.c MINOR: pools: report a replaced memory allocator instead of just malloc_trim() 2023-03-22 18:05:02 +01:00
proto_quic.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
proto_sockpair.c MEDIUM: proto: duplicate receivers marked RX_F_MUST_DUP 2023-04-21 17:41:26 +02:00
proto_tcp.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
proto_udp.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
proto_uxdg.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
proto_uxst.c MINOR: proto: skip socket setup for duped FDs 2023-04-21 17:41:26 +02:00
protocol.c MINOR: protocol: add a flags field to store info about protocols 2023-04-23 09:46:15 +02:00
proxy.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
qmux_http.c MINOR: h3/hq-interop: handle no data in decode_qcs() with FIN set 2023-02-17 16:25:00 +01:00
qmux_trace.c MINOR: mux-quic: add flow-control info to minimal trace level 2023-03-22 16:08:54 +01:00
qpack-dec.c BUG/MAJOR: qpack: fix possible read out of bounds in static table 2023-03-17 16:43:51 +01:00
qpack-enc.c BUG/MINOR: qpack: support bigger prefix-integer encoding 2022-05-30 14:30:05 +02:00
qpack-tbl.c CLEANUP: qpack: properly use the QPACK macros not HPACK ones in debug code 2022-11-24 15:38:26 +01:00
queue.c BUG/MEDIUM: queue/threads: limit the number of entries dequeued at once 2022-07-30 10:00:59 +02:00
quic_cc_cubic.c BUG/MINOR: quic: SIGFPE in quic_cubic_update() 2023-04-13 19:20:08 +02:00
quic_cc_newreno.c BUG/MINOR: quic: SIGFPE in quic_cubic_update() 2023-04-13 19:20:08 +02:00
quic_cc_nocc.c BUG/MAJOR: quic: Congestion algorithms states shared between the connection 2023-04-02 13:10:13 +02:00
quic_cc.c CLEANUP: quic: fix headers 2022-10-03 16:25:17 +02:00
quic_conn.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
quic_frame.c MINOR: quic: Traces adjustments at proto level. 2023-03-31 09:54:59 +02:00
quic_loss.c BUG/MINOR: quic: transform qc_set_timer() as a reentrant function 2023-04-18 17:09:02 +02:00
quic_sock.c CLEANUP: Stop checking the pointer before calling pool_free() 2023-04-23 00:28:25 +02:00
quic_stats.c MINOR: quic: detect connection migration 2022-12-02 14:45:43 +01:00
quic_stream.c MINOR: quic: New quic_cstream object implementation 2022-10-13 10:12:03 +02:00
quic_tls.c MINOR: quic: Add traces about QUIC TLS key update 2023-03-03 19:12:26 +01:00
quic_tp.c MINOR: quic: Do not accept wrong active_connection_id_limit values 2023-03-08 08:50:54 +01:00
raw_sock.c OPTIM: global: move byte counts out of global and per-thread 2023-01-12 16:37:45 +01:00
regex.c BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c CLEANUP: Stop checking the pointer before calling ring_free() 2023-04-23 00:28:25 +02:00
ring.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
sample.c MINOR: jwt: Add support for RSA-PSS signatures (PS256 algorithm) 2023-03-08 10:43:04 +01:00
server_state.c MINOR: server: change srv_op_st_chg_cause storage type 2023-04-21 14:36:45 +02:00
server.c MINOR: server/event_hdl: prepare for server event data wrapper 2023-04-21 14:36:45 +02:00
session.c BUG/MEDIUM: quic: fix crash when "option nolinger" is set in the frontend 2023-02-09 18:04:10 +01:00
sha1.c
shctx.c
signal.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
sink.c CLEANUP: Stop checking the pointer before calling ring_free() 2023-04-23 00:28:25 +02:00
slz.c IMPORT: slz: declare len to fix debug build when optimal match is enabled 2022-11-14 11:14:02 +01:00
sock_inet.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
sock_unix.c MEDIUM: proto: duplicate receivers marked RX_F_MUST_DUP 2023-04-21 17:41:26 +02:00
sock.c CLEANUP: sock: always perform last connection updates before wakeup 2023-03-08 16:07:32 +01:00
ssl_ckch.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
ssl_crtlist.c MINOR: ssl_crtlist: dump "no-alpn" on "show crtlist" when "no-alpn" was set 2023-04-19 09:12:43 +02:00
ssl_ocsp.c BUG/MINOR: ssl: Fix potential leak in cli_parse_update_ocsp_response 2023-03-31 09:10:36 +02:00
ssl_sample.c BUG/MINOR: ssl: don't initialize the keylog callback when not required 2022-11-18 15:24:23 +01:00
ssl_sock.c MINOR: ssl: do not set ALPN callback with the empty string 2023-04-19 09:12:43 +02:00
ssl_utils.c MINOR: ssl: Move OCSP code to a dedicated source file 2022-12-21 11:21:07 +01:00
stats.c MINOR: server: change srv_op_st_chg_cause storage type 2023-04-21 14:36:45 +02:00
stconn.c CLEANUP: Stop checking the pointer before calling tasklet_free() 2023-04-23 00:28:25 +02:00
stick_table.c MINOR: stconn: Rename SC_FL_SHUTW in SC_FL_SHUT_DONE 2023-04-14 15:01:21 +02:00
stream.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
task.c BUG/MINOR: task: allow to use tasklet_wakeup_after with tid -1 2023-04-18 16:20:47 +02:00
tcp_act.c MINOR: stream: Introduce stream_abort() to abort on both sides in same time 2023-04-14 14:04:59 +02:00
tcp_rules.c MINOR: stconn: Add a flag to report EOS at the stream-connector level 2023-04-17 17:41:28 +02:00
tcp_sample.c BUG/MINOR: tcp_sample: fix a bug in fc_dst_port and fc_dst_is_local sample fetches 2023-03-16 11:26:53 +01:00
tcpcheck.c CLEANUP: tcpcheck: remove the only occurrence of sprintf() in the code 2023-04-07 16:04:54 +02:00
thread.c MEDIUM: quic: use a global CID trees list 2023-04-18 16:54:17 +02:00
time.c
tools.c BUG/MINOR: tools: check libssl and libcrypto separately 2023-04-23 09:46:15 +02:00
trace.c MEDIUM: applet/trace: Register a new trace source with its events 2023-04-05 08:46:06 +02:00
uri_auth.c
uri_normalizer.c
vars.c BUILD: vars: use __fallthrough in var_accounting_{diff,add}() 2022-11-14 11:14:02 +01:00
version.c
wdt.c BUG/MEDIUM: wdt: fix wrong thread being checked for sleeping 2023-02-17 16:01:34 +01:00
xprt_handshake.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
xprt_quic.c MAJOR: quic: support thread balancing on accept 2023-04-18 17:09:34 +02:00