haproxy/include/haproxy
Willy Tarreau 4e65fc66f6 MAJOR: import: update mt_list to support exponential back-off (try #2)
This is the second attempt at importing the updated mt_list code (commit
59459ea3). The previous one was attempted with commit c618ed5ff4 ("MAJOR:
import: update mt_list to support exponential back-off") but revealed
problems with QUIC connections and was reverted.

The problem that was faced was that elements deleted inside an iterator
were no longer reset, and that if they were to be recycled in this form,
they could appear as busy to the next user. This was trivially reproduced
with this:

  $ cat quic-repro.cfg
  global
          stats socket /tmp/sock1 level admin
          stats timeout 1h
          limited-quic

  frontend stats
          mode http
          bind quic4@:8443 ssl crt rsa+dh2048.pem alpn h3
          timeout client 5s
          stats uri /

  $ ./haproxy -db -f quic-repro.cfg  &

  $ h2load -c 10 -n 100000 --npn h3 https://127.0.0.1:8443/
  => hang

This was purely an API issue caused by the simplified usage of the macros
for the iterator. The original version had two backups (one full element
and one pointer) that the user had to take care of, while the new one only
uses one that is transparent for the user. But during removal, the element
still has to be unlocked if it's going to be reused.

All of this sparked discussions with Fred and Aurélien regarding the still
unclear state of locking. It was found that the lock API does too much at
once and is lacking granularity. The new version offers a much more fine-
grained control allowing to selectively lock/unlock an element, a link,
the rest of the list etc.

It was also found that plenty of places just want to free the current
element, or delete it to do anything with it, hence don't need to reset
its pointers (e.g. event_hdl). Finally it appeared obvious that the
root cause of the problem was the unclear usage of the list iterators
themselves because one does not necessarily expect the element to be
presented locked when not needed, which makes the unlock easy to overlook
during reviews.

The updated version of the list presents explicit lock status in the
macro name (_LOCKED or _UNLOCKED suffixes). When using the _LOCKED
suffix, the caller is expected to unlock the element if it intends to
reuse it. At least the status is advertised. The _UNLOCKED variant,
instead, always unlocks it before starting the loop block. This means
it's not necessary to think about unlocking it, though it's obviously
not usable with everything. A few _UNLOCKED were used at obvious places
(i.e. where the element is deleted and freed without any prior check).

Interestingly, the tests performed last year on QUIC forwarding, that
resulted in limited traffic for the original version and higher bit
rate for the new one couldn't be reproduced because since then the QUIC
stack has gaind in efficiency, and the 100 Gbps barrier is now reached
with or without the mt_list update. However the unit tests definitely
show a huge difference, particularly on EPYC platforms where the EBO
provides tremendous CPU savings.

Overall, the following changes are visible from the application code:

  - mt_list_for_each_entry_safe() + 1 back elem + 1 back ptr
    => MT_LIST_FOR_EACH_ENTRY_LOCKED() or MT_LIST_FOR_EACH_ENTRY_UNLOCKED()
       + 1 back elem

  - MT_LIST_DELETE_SAFE() no longer needed in MT_LIST_FOR_EACH_ENTRY_UNLOCKED()
      => just manually set iterator to NULL however.
    For MT_LIST_FOR_EACH_ENTRY_LOCKED()
      => mt_list_unlock_self() (if element going to be reused) + NULL

  - MT_LIST_LOCK_ELT => mt_list_lock_full()
  - MT_LIST_UNLOCK_ELT => mt_list_unlock_full()

  - l = MT_LIST_APPEND_LOCKED(h, e);  MT_LIST_UNLOCK_ELT();
    => l=mt_list_lock_prev(h); mt_list_lock_elem(e); mt_list_unlock_full(e, l)
2024-07-09 16:46:38 +02:00
..
acl-t.h MINOR: acl: add acl() sample fetch 2023-08-01 10:49:06 +02:00
acl.h CLEANUP: acl: discard prune_acl_cond() function 2023-05-11 15:37:04 +02:00
action-t.h MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
action.h BUG/MEDIUM: actions: always apply a longest match on prefix lookup 2023-10-06 17:06:44 +02:00
activity-t.h MINOR: activity: make the memory profiling hash size configurable at build time 2024-06-27 18:01:27 +02:00
activity.h MEDIUM: tasks/activity: combine the called function with the caller 2022-09-08 16:21:22 +02:00
api-t.h
api.h
applet-t.h MINOR: applet: report about buffer allocation success 2024-05-10 17:18:13 +02:00
applet.h MINOR: applet: report about buffer allocation success 2024-05-10 17:18:13 +02:00
arg-t.h MINOR: sample: add ARGC_OPT 2023-01-27 15:18:59 +01:00
arg.h
atomic.h BUILD: atomic: fix peers build regression on gcc < 4.7 after recent changes 2024-04-11 16:41:08 +02:00
auth-t.h
auth.h
backend-t.h MEDIUM: log/balance: leverage lbprm api for log load-balancing 2024-03-29 17:08:37 +01:00
backend.h MINOR: stats: convert age as generic column for proxy stat 2024-05-02 10:55:25 +02:00
base64.h
buf-t.h
buf.h MEDIUM: buf: Add b_getline() and b_getdelim() functions 2024-03-28 17:28:20 +01:00
bug.h BUILD: Missing inclusion header for ssize_t type 2024-06-26 10:17:09 +02:00
capture-t.h
capture.h
cbuf-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
cbuf.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
cfgcond-t.h MINOR: cfgcond: Implement enabled condition expression 2023-02-21 11:44:55 +01:00
cfgcond.h
cfgdiag.h
cfgparse.h REORG: mailers: move free_email_alert() to mailers.c 2024-06-17 19:37:29 +02:00
channel-t.h MINOR: stconn: Temporarily remove kernel splicing support 2023-10-17 18:51:13 +02:00
channel.h MEDIUM: channel: allocate without queuing when retrying 2024-05-10 17:18:13 +02:00
check-t.h MEDIUM: checks: implement a queue in order to limit concurrent checks 2023-09-01 14:00:04 +02:00
check.h MINOR: server: srv_append_status refacto 2023-04-21 14:36:45 +02:00
chunk.h MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli-t.h CLEANUP: assorted typo fixes in the code and comments 2024-04-17 11:14:44 +02:00
cli.h CLEANUP: assorted typo fixes in the code and comments 2022-11-30 14:02:36 +01:00
clock.h MINOR: clock: provide a function to automatically adjust now_offset 2023-05-17 09:33:54 +02:00
compat.h CLEANUP: compat: make the MIN/MAX macros more reliable 2024-05-17 15:57:18 +02:00
compiler.h MINOR: compiler: add a new DO_NOT_FOLD() macro to prevent code folding 2024-02-02 17:12:06 +01:00
compression-t.h MEDIUM: compression: Make it so we can compress requests as well. 2023-04-07 00:49:17 +02:00
compression.h MINOR: compression: Store algo and type for both request and response 2023-04-07 00:46:59 +02:00
connection-t.h MEDIUM: connection: use pool-conn-name instead of sni on reuse 2024-05-24 14:47:21 +02:00
connection.h MEDIUM: connection: use pool-conn-name instead of sni on reuse 2024-05-24 14:47:21 +02:00
counters-t.h MINOR: counters: move last_change into counters struct 2024-05-02 10:55:25 +02:00
cpuset-t.h CLEANUP: cpuset: remove the unused proc_t1 field in cpu_map 2023-07-20 11:01:09 +02:00
cpuset.h REORG: cpuset: move parse_cpu_set() and parse_cpumap() to cpuset.c 2023-09-08 16:25:19 +02:00
debug.h MINOR: debug: add the ability to enter components in the post_mortem struct 2023-11-23 15:39:21 +01:00
defaults.h MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD 2024-07-04 07:52:42 +02:00
dgram-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
dgram.h
dict-t.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
dict.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
dns_ring-t.h MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dns_ring.h REORG: dns/ring: split the ring between the generic one and the DNS one 2024-03-25 17:34:19 +00:00
dns-t.h REORG: dns/ring: split the ring between the generic one and the DNS one 2024-03-25 17:34:19 +00:00
dns.h
dynbuf-t.h MEDIUM: dynbuf: refrain from offering a buffer if more critical ones are waiting 2024-05-10 17:18:13 +02:00
dynbuf.h MINOR: dynbuf: provide a b_dequeue() variant for multi-thread 2024-05-15 19:37:12 +02:00
errors.h MINOR: stats: report the total number of warnings issued 2023-05-11 12:02:21 +02:00
event_hdl-t.h MINOR: event_hdl: add global tunables 2023-11-29 08:59:27 +01:00
event_hdl.h MINOR: event_hdl: add global tunables 2023-11-29 08:59:27 +01:00
extcheck.h
fcgi-app-t.h MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
fcgi-app.h
fcgi.h
fd-t.h MINOR: fd: add a lock bit with the tgid 2023-04-13 16:57:51 +02:00
fd.h MINOR: fd: implement fd_migrate_on() to migrate on a non-local thread 2023-04-13 16:57:51 +02:00
filters-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
filters.h
fix-t.h
fix.h
flt_http_comp.h
freq_ctr-t.h
freq_ctr.h MINOR: stats: support rate in stats-file 2024-05-02 10:55:25 +02:00
frontend.h MINOR: frontend: implement a dedicated actconn increment function 2023-10-26 15:18:48 +02:00
global-t.h MINOR: cli/debug: show dev: add cmdline and version 2024-06-26 07:38:21 +02:00
global.h MINOR: cfgparse: Add a global option to expose deprecated directives 2024-03-15 11:31:48 +01:00
guid-t.h MINOR: guid: restrict guid format 2024-04-05 15:40:42 +02:00
guid.h MINOR: guid: define guid_is_valid_fmt() 2024-04-26 11:29:25 +02:00
h1_htx.h
h1.h CLEANUP: h1: remove unused function h1_measure_trailers() 2024-01-31 15:22:12 +01:00
h2.h MINOR: h2: pass accept-invalid-http-request down the request parser 2023-08-08 19:10:54 +02:00
h3_stats-t.h MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
h3_stats.h MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
h3.h MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
hash.h
hlua_fcn.h MINOR: hlua_fcn: add Server.get_proxy() 2023-05-05 16:28:32 +02:00
hlua-t.h DEBUG: hlua: distinguish burst timeout errors from exec timeout errors 2024-06-14 18:25:58 +02:00
hlua.h DEBUG: lua: precisely identify if stream is stuck inside lua or not 2024-03-13 09:24:46 +01:00
hpack-dec.h
hpack-enc.h
hpack-huff.h
hpack-tbl-t.h
hpack-tbl.h
hq_interop.h MINOR: quic: support hq-interop 2021-11-18 10:50:58 +01:00
http_ana-t.h BUG/MINOR: http-ana: Fix TX_L7_RETRY and TX_D_L7_RETRY values 2024-04-10 15:50:00 +02:00
http_ana.h CLEANUP: http-ana: Remove HTTP_MSG_ERROR state 2023-01-13 11:22:13 +01:00
http_client-t.h MINOR: httpclient: allow to use absolute URI with new flag HC_F_HTTPROXY 2024-04-29 17:10:47 +02:00
http_client.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
http_ext-t.h MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
http_ext.h MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
http_fetch.h
http_htx-t.h MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
http_htx.h MINOR: http_htx: add http_prepend_header() to prepend value to header 2023-01-27 15:18:59 +01:00
http_rules.h MINOR: proxy: add http_free_redirect_rule() function 2023-05-11 15:37:04 +02:00
http-hdr-t.h
http-hdr.h
http-t.h MINOR: http: Add http_auth_bearer sample fetch 2021-10-14 16:38:07 +02:00
http.h BUG/MEDIUM: h3: ensure the ":method" pseudo header is totally valid 2024-06-28 14:36:30 +02:00
htx-t.h BUG/MEDIUM: htx: mark htx_sl as packed since it may be realigned 2024-05-15 19:03:17 +02:00
htx.h MINOR: htx: Use a macro for overhead induced by HTX 2023-11-17 12:13:00 +01:00
init-t.h MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
init.h MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
initcall.h BUILD: compiler: use a more portable set of asm(".weak") statements 2022-04-14 16:57:12 +02:00
intops.h MINOR: intops: add a pair of functions to check multi-byte ranges 2024-04-24 15:54:55 +02:00
istbuf.h
jwt-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
jwt.h MEDIUM: jwt: Add jwt_verify converter to verify JWT integrity 2021-10-14 16:38:14 +02:00
lb_chash-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_chash.h
lb_fas-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_fas.h
lb_fwlc-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_fwlc.h
lb_fwrr-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_fwrr.h
lb_map-t.h
lb_map.h
lb_ss-t.h MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
lb_ss.h MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
linuxcap.h MINOR: cli/debug: show dev: show capabilities 2024-06-26 07:38:21 +02:00
list-t.h
list.h MAJOR: import: update mt_list to support exponential back-off (try #2) 2024-07-09 16:46:38 +02:00
listener-t.h CLEANUP: ssl/ocsp: remove the deprecated parsing code for "ocsp-update" 2024-05-17 17:35:51 +02:00
listener.h MINOR: listener: implement GUID support 2024-04-05 15:40:42 +02:00
log-t.h MINOR: log: add log-profile parsing logic 2024-06-13 15:43:09 +02:00
log.h MINOR: log: add log-profile parsing logic 2024-06-13 15:43:09 +02:00
mailers-t.h BUG/MINOR: proxy: fix email-alert leak on deinit() (2nd try) 2024-06-17 19:37:29 +02:00
mailers.h REORG: mailers: move free_email_alert() to mailers.c 2024-06-17 19:37:29 +02:00
map-t.h
map.h
mqtt-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
mqtt.h
mux_fcgi-t.h CLEANUP: assorted typo fixes in the code and comments 2022-11-30 14:02:36 +01:00
mux_h1-t.h CLEANUP: mux-h1: Remove unused H1S_F_ERROR_MASK mask value 2024-05-17 16:33:53 +02:00
mux_h2-t.h DEBUG: mux-h2/flags: fix list of h2c flags used by the flags decoder 2023-10-25 11:44:54 +02:00
mux_quic-t.h MINOR: mux-quic: support glitches 2024-05-16 10:58:20 +02:00
mux_quic.h MINOR: mux-quic: support glitches 2024-05-16 10:58:20 +02:00
mworker-t.h MINOR: mworker: implement a reload failure counter 2021-11-10 15:53:01 +01:00
mworker.h REORG: init: encapsulate 'reload' sockpair and master CLI listeners creation 2024-06-27 16:08:42 +02:00
namespace-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
namespace.h
ncbuf-t.h CLEANUP: assorted typo fixes in the code and comments 2022-08-06 17:12:51 +02:00
ncbuf.h CLEANUP: ncbuf: inline small functions 2022-11-29 15:14:39 +01:00
net_helper.h MINOR: net_helper: Add support for floats/doubles. 2024-04-16 07:37:28 +02:00
obj_type-t.h CLEANUP: obj_type: rename OBJ_TYPE_CS to OBJ_TYPE_SC 2022-05-27 19:33:35 +02:00
obj_type.h CLEANUP: obj_type: rename OBJ_TYPE_CS to OBJ_TYPE_SC 2022-05-27 19:33:35 +02:00
openssl-compat.h MINOR: ssl: activate sigalgs feature for AWS-LC 2024-06-17 17:40:49 +02:00
pattern-t.h MEDIUM: pattern: Add support for virtual and optional files for patterns 2023-12-06 10:24:41 +01:00
pattern.h MINOR: pattern: fix pat_{parse,match}_ip() function comments 2023-09-21 09:50:55 +02:00
payload.h
peers-t.h CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
peers.h CLEANUP: peers: remove unused "proto" and "xprt" struct members 2023-12-21 14:22:27 +01:00
pipe-t.h
pipe.h
pool-os.h REORG: pool: move all the OS specific code to pool-os.h 2022-12-08 17:32:57 +01:00
pool-t.h MAJOR: pools: move the shared pool's free_list over multiple buckets 2023-08-12 19:04:34 +02:00
pool.h DEBUG: pools: report the data around the offending area in case of mismatch 2024-04-12 18:01:55 +02:00
port_range-t.h
port_range.h
proto_quic.h REORG: quic: remove quic_cid_trees reference from proto_quic 2024-07-03 15:02:40 +02:00
proto_rhttp-t.h MINOR: rhttp: rename proto_reverse_connect 2023-11-23 17:38:58 +01:00
proto_rhttp.h BUG/MINOR: rhttp: prevent listener suspend 2024-05-22 10:01:57 +02:00
proto_sockpair.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
proto_tcp.h BUILD: proto_tcp: export the correct names for proto_tcpv[46] 2023-04-23 09:46:15 +02:00
proto_udp.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
proto_uxst.h
protobuf-t.h
protobuf.h BUG/MEDIUM: grpc: Fix several unaligned 32/64 bits accesses 2024-04-16 07:37:28 +02:00
protocol-t.h MINOR: proto: extend connection thread rebind API 2024-07-04 16:33:21 +02:00
protocol.h MINOR: protocol: add a function to check if some features are supported 2023-04-23 09:46:15 +02:00
proxy-t.h BUG/MINOR: proxy: fix email-alert leak on deinit() (2nd try) 2024-06-17 19:37:29 +02:00
proxy.h MINOR: counters: move freq-ctr from proxy/server into counters struct 2024-05-02 10:55:25 +02:00
qmux_http.h MEDIUM: mux-quic: add BUG_ON if sending on locally closed QCS 2023-12-21 15:42:08 +01:00
qmux_trace.h MINOR: mux-quic: add traces for stream wake 2023-05-11 14:04:51 +02:00
qpack-dec.h MINOR: qpack: prepare error renaming 2024-05-16 10:31:17 +02:00
qpack-enc.h
qpack-t.h MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-tbl-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
qpack-tbl.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
queue-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
queue.h CLEANUP: assorted typo fixes in the code and comments 2022-10-30 17:17:56 +01:00
quic_ack-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
quic_ack.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
quic_cc_hystart.h MINOR: quic: HyStart++ implementation (RFC 9406) 2024-04-02 18:47:19 +02:00
quic_cc-t.h MINOR: quic: HyStart++ implementation (RFC 9406) 2024-04-02 18:47:19 +02:00
quic_cc.h REORG: quic: Move QUIC path definitions/declarations to quic_cc module 2023-11-28 15:37:50 +01:00
quic_cid-t.h REORG: quic: remove quic_cid_trees reference from proto_quic 2024-07-03 15:02:40 +02:00
quic_cid.h REORG: quic: remove quic_cid_trees reference from proto_quic 2024-07-03 15:02:40 +02:00
quic_cli-t.h MINOR: quic: Export QUIC CLI code from quic_conn.c 2023-07-27 10:51:03 +02:00
quic_conn-t.h DEV: flags/quic: decode quic_conn flags 2024-07-08 09:38:35 +02:00
quic_conn.h BUG/MEDIUM: quic: prevent crash on accept queue full 2024-07-04 17:28:56 +02:00
quic_enc.h MINOR: h3: extend function for QUIC varint encoding 2023-01-19 15:09:01 +01:00
quic_fctl-t.h MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_fctl.h MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_frame-t.h MEDIUM: quic: Heavy task mode during handshake 2023-11-09 10:32:31 +01:00
quic_frame.h BUILD: quic: Missing RX header inclusions 2023-11-28 15:37:22 +01:00
quic_loss-t.h MINOR: quic: Add a counter for reordered packets 2024-02-14 11:32:29 +01:00
quic_loss.h MINOR: quic: Add a counter for reordered packets 2024-02-14 11:32:29 +01:00
quic_openssl_compat-t.h CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
quic_openssl_compat.h BUG/MINOR: quic: Missing call to TLS message callbacks 2023-12-21 16:33:06 +01:00
quic_retransmit.h REORG: quic: Add a new module for retransmissions 2023-11-28 15:47:18 +01:00
quic_retry.h REORG: quic: Add a new module for QUIC retry 2023-11-28 15:47:18 +01:00
quic_rx-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
quic_rx.h MINOR: quic: remove qc_treat_rx_crypto_frms() 2024-03-11 14:27:51 +01:00
quic_sock-t.h CLEANUP: fix spelling of "elemt" 2024-01-26 17:29:27 +01:00
quic_sock.h MINOR: quic: only use sendmsg() syscall variant 2024-02-20 16:42:05 +01:00
quic_ssl-t.h MINOR: quic: Add new "QUIC over SSL" C module. 2023-07-27 10:51:03 +02:00
quic_ssl.h MINOR: quic: remove qc_treat_rx_crypto_frms() 2024-03-11 14:27:51 +01:00
quic_stats-t.h MINOR: quic: reduce half open counters scope 2023-11-09 16:23:52 +01:00
quic_stats.h MINOIR: quic_stats: add QUIC connection errors counters 2022-05-30 09:59:26 +02:00
quic_stream-t.h MEDIUM: quic: implement multi-buffered Tx streams 2022-04-21 12:03:20 +02:00
quic_stream.h BUG/MEDIUM: quic: remove unsent data from qc_stream_desc buf 2024-01-26 16:02:05 +01:00
quic_tls-t.h MINOR: quic: uniformize sending methods for handshake 2024-04-10 11:06:41 +02:00
quic_tls.h BUG/MEDIUM: quic_tls: prevent LibreSSL < 4.0 from negotiating CHACHA20_POLY1305 2024-05-22 16:22:22 +02:00
quic_tp-t.h BUILD: quic: missing include for quic_tp 2024-01-12 16:08:36 +01:00
quic_tp.h MINOR: quic_tp: use in_addr/in6_addr for preferred_address 2023-11-30 15:59:45 +01:00
quic_trace-t.h REORG: quic: QUIC connection types header cleaning 2023-11-28 15:37:22 +01:00
quic_trace.h REORG: quic: cleanup traces definition 2023-10-11 14:15:31 +02:00
quic_tx-t.h MINOR: quic: refactor qc_build_pkt() error handling 2024-06-12 18:05:40 +02:00
quic_tx.h OPTIM: quic: do not call qc_send() if nothing to emit 2024-04-10 11:17:21 +02:00
receiver-t.h MEDIUM: udp: allow to retrieve the frontend destination address 2024-01-02 11:44:42 +01:00
regex-t.h
regex.h
resolvers-t.h CLEANUP: resolvers: remove some more unused RSLV_UDP flags 2024-01-02 10:29:41 +01:00
resolvers.h MINOR: resolvers: add unique numeric id to nameservers 2023-12-21 14:22:27 +01:00
ring-t.h MINOR: ring: make the number of queues configurable 2024-03-25 17:34:19 +00:00
ring.h BUG/MINOR: ring: free ring's allocated area not ring's usable area when using maps 2024-05-21 11:42:35 +02:00
sample_data-t.h
sample-t.h MEDIUM: sample: introduce 'same' output type 2023-07-03 16:32:01 +02:00
sample.h MINOR: sample: add type_to_smp() helper function 2024-02-20 15:18:39 +01:00
sc_strm.h MINOR: stconn: report that a buffer allocation succeeded 2024-05-10 17:18:13 +02:00
server-t.h MINOR: server: define pool-conn-name keyword 2024-05-24 14:36:31 +02:00
server.h MINOR: server: generalize sni expr parsing 2024-05-24 14:36:31 +02:00
session-t.h MINOR: session: define flag to explicitely release listener on free 2024-05-22 10:01:57 +02:00
session.h MINOR: stick-table: Always decrement ref count before killing a session 2024-06-26 15:05:06 +02:00
shctx-t.h CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
shctx.h MEDIUM: shctx: Naming shared memory context 2024-04-24 10:25:38 +02:00
show_flags-t.h BUILD: flags: really restrict the cases where flags are exposed 2022-11-24 08:32:27 +01:00
signal-t.h
signal.h
sink-t.h OPTIM: sink: drop the sink lock used to count drops 2024-03-09 11:23:52 +01:00
sink.h OPTIM: sink: drop the sink lock used to count drops 2024-03-09 11:23:52 +01:00
sock_inet.h CLEANUP: fix a few reported typos in code comments 2023-05-07 07:07:44 +02:00
sock_unix.h
sock-t.h MINOR: sock: move the unused socket cleaning code into its own function 2022-01-28 19:04:02 +01:00
sock.h BUG/MEDIUM: proto: fix fd leak in <proto>_connect_server 2024-05-21 20:14:05 +02:00
spoe-t.h CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
spoe.h CLEANUP: assorted typo fixes in the code and comments 2023-04-01 18:33:40 +02:00
ssl_ckch-t.h MINOR: ssl: ckch_conf_cmp() compare multiple ckch_conf structures 2024-05-17 17:35:51 +02:00
ssl_ckch.h MEDIUM: ssl: don't load file by discovering them in crt-store 2024-05-21 18:30:45 +02:00
ssl_crtlist-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
ssl_crtlist.h MEDIUM: ssl/crtlist: loading crt-store keywords from a crt-list 2024-05-17 17:35:51 +02:00
ssl_gencert.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
ssl_ocsp-t.h BUG/MEDIUM: ssl: Fix crash when calling "update ssl ocsp-response" when an update is ongoing 2024-03-20 16:12:10 +01:00
ssl_ocsp.h MEDIUM: ssl/cli: handle crt-store keywords in crt-list over the CLI 2024-05-17 17:35:51 +02:00
ssl_sock-t.h REORG: ssl: move the SNI selection code in ssl_clienthello.c 2024-06-13 16:48:17 +02:00
ssl_sock.h MEDIUM: ssl: support for ECDA+RSA certificate selection with AWS-LC 2024-06-13 19:36:40 +02:00
ssl_utils.h MINOR: ssl: add new sample ssl_c_r_dn 2023-05-15 10:48:05 +02:00
stats-file-t.h MINOR: stats: parse header lines from stats-file 2024-04-26 11:34:02 +02:00
stats-file.h CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
stats-html-t.h REORG: stats: extract HTML related functions 2024-04-18 17:04:08 +02:00
stats-html.h MINOR: stats: Get the right prototype for stats_dump_html_end(). 2024-04-19 01:54:00 +02:00
stats-json.h REORG: stats: extract JSON related functions 2024-04-18 17:04:08 +02:00
stats-proxy.h MINOR: stats: extract proxy clear-counter in a dedicated function 2024-05-02 16:43:26 +02:00
stats-t.h CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
stats.h REORG: stats: define stats-proxy source module 2024-05-02 16:42:36 +02:00
stconn-t.h BUG/MEDIUM: mux-quic: Don't unblock zero-copy fwding if blocked during nego 2024-06-05 07:28:10 +02:00
stconn.h BUG/MEDIUM: mux-quic: Don't unblock zero-copy fwding if blocked during nego 2024-06-05 07:28:10 +02:00
stick_table-t.h BUILD: stick-tables: better mark the stktable_data as 32-bit aligned 2024-05-17 11:00:45 +02:00
stick_table.h MINOR: stick-table: Always decrement ref count before killing a session 2024-06-26 15:05:06 +02:00
stream-t.h MINOR: log: provide sending log context to process_send_log() when available 2024-06-13 15:43:09 +02:00
stream.h MINOR: stick-table: Always decrement ref count before killing a session 2024-06-26 15:05:06 +02:00
systemd.h MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
task-t.h MINOR: task: Move wait_event in the task header file 2024-02-07 15:02:13 +01:00
task.h MINOR: task/profiling: do not record task_drop_running() as a caller 2023-11-27 11:24:52 +01:00
tcp_rules.h
tcpcheck-t.h MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
tcpcheck.h MINOR: tcpcheck: export proxy_parse_tcpcheck() 2024-01-02 11:44:42 +01:00
thread-t.h BUILD: thread: move lock label definitions to thread-t.h 2024-03-05 11:50:34 +01:00
thread.h BUILD: thread: move lock label definitions to thread-t.h 2024-03-05 11:50:34 +01:00
ticks.h REORG: time/ticks: move now_ms and global_now_ms definitions to ticks.h 2021-10-07 01:41:14 +02:00
time.h BUG/MINOR: time: fix NS_TO_TV macro 2023-05-04 18:09:50 +02:00
timeshift.h REORG: cfgparse: extract curproxy as a global variable 2023-08-01 10:48:28 +02:00
tinfo-t.h MEDIUM: dynbuf: implement emergency buffers 2024-05-10 17:18:13 +02:00
tinfo.h MINOR: thread: keep a bitmask of enabled groups in thread_set 2023-04-13 16:57:51 +02:00
tools-t.h CLEANUP: tools/cbor: rename cbor_encode_ctx struct members 2024-04-29 14:47:37 +02:00
tools.h MEDIUM: config: prevent communication with privileged ports 2024-05-24 14:36:31 +02:00
trace-t.h MEDIUM: applet/trace: Register a new trace source with its events 2023-04-05 08:46:06 +02:00
trace.h MINOR: trace: support -dt optional format 2023-11-27 17:15:14 +01:00
uri_auth-t.h
uri_auth.h
uri_normalizer-t.h
uri_normalizer.h
vars-t.h CLEANUP: assorted typo fixes in the code and comments This is 29th iteration of typo fixes 2022-01-03 14:40:58 +01:00
vars.h MINOR: vars: export var_set and var_unset functions 2024-03-08 17:20:43 +01:00
vecpair.h CLEANUP: assorted typo fixes in the code and comments 2024-04-17 11:14:44 +02:00
version.h [RELEASE] Released version 3.1-dev0 2024-05-29 15:00:02 +02:00
xref-t.h
xref.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
xxhash.h