haproxy/src
Frédéric Lécaille 3dd79d378c MINOR: h3: Send the h3 settings with others streams (requests)
This is the ->finalize application callback which prepares the unidirectional STREAM
frames for h3 settings and wakeup the mux I/O handler to send them. As haproxy is
at the same time always waiting for the client request, this makes haproxy
call sendto() to send only about 20 bytes of stream data. Furthermore in case
of heavy loss, this give less chances to short h3 requests to succeed.

Drawback: as at this time the mux sends its streams by their IDs ascending order
the stream 0 is always embedded before the unidirectional stream 3 for h3 settings.
Nevertheless, as these settings may be lost and received after other h3 request
streams, this is permitted by the RFC.

Perhaps there is a better way to do. This will have to be checked with Amaury.

Must be backported to 2.6.
2022-09-08 18:04:58 +02:00
..
acl.c MINOR: acl: alphanumerically sort the ACL dump 2022-03-30 11:49:59 +02: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: activity/cli: support sorting task profiling by total CPU time 2022-09-08 16:38:10 +02:00
applet.c BUG/MINOR: applet: make the call_rate only count the no-progress calls 2022-08-23 20:19:11 +02:00
arg.c MINOR: arg: Be able to forbid unresolved args when building an argument list 2021-09-30 16:37:05 +02:00
auth.c BUILD: auth: include missing list.h 2021-05-08 12:29:51 +02:00
backend.c MINOR: backend: always satisfy the first req reuse rule with l7 retries 2022-09-01 20:52:29 +02:00
base64.c BUG/MINOR: base64: base64urldec() ignores padding in output size check 2021-08-25 16:14:14 +02:00
cache.c CLEANUP: applet: rename appctx_cs() to appctx_sc() 2022-05-27 19:33:35 +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: ssl: Add ssllib_name_startswith precondition 2021-10-13 11:28:08 +02:00
cfgdiag.c CLEANUP: assorted typo fixes in the code and comments 2021-04-26 10:42:58 +02:00
cfgparse-global.c MINOR: cpu-map: remove obsolete diag warning about combined ranges 2022-08-22 10:46:13 +02:00
cfgparse-listen.c MEDIUM: config: remove deprecated "bind-process" directives from frontends 2022-07-15 19:41:26 +02:00
cfgparse-quic.c MINOR: quic: New "quic-cc-algo" bind keyword 2022-07-29 17:32:05 +02:00
cfgparse-ssl.c MINOR: listener/ssl: set the SSL xprt layer only once the whole config is known 2022-05-20 18:41:55 +02:00
cfgparse-tcp.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse-unix.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse.c BUG/MAJOR: mworker: fix infinite loop on master with no proxies. 2022-08-22 13:09:29 +02:00
channel.c CLEANUP: conn_stream: tree-wide rename to stconn (stream connector) 2022-05-27 19:33:34 +02:00
check.c BUG/MINOR: tcpcheck: Disable QUICKACK only if data should be sent after connect 2022-08-24 11:59:04 +02:00
chunk.c MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli.c BUG/MEDIUM: cli: always reset the service context between commands 2022-08-18 18:16:36 +02:00
clock.c MINOR: clock: use ltid_bit in clock_report_idle() 2022-07-01 19:15:15 +02:00
compression.c CLEANUP: compression: move the default setting of maxzlibmem to defaults 2022-04-25 19:42:43 +02:00
connection.c MINOR: connection: support HTTP/3.0 for smp_*_http_major fetch 2022-06-07 12:04:12 +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 CLEANUP: debug: use struct ha_caller for memstat 2022-09-08 14:19:15 +02:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c BUG/MEDIUM: dns: Properly initialize new DNS session 2022-08-03 10:30:07 +02:00
dynbuf.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
eb32sctree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb32tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb64tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebimtree.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ebistree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebmbtree.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
ebpttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebsttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebtree.c BUG/MEDIUM: ebtree: use a byte-per-byte memcmp() to compare memory blocks 2020-06-16 11:30:33 +02:00
errors.c CLEANUP: ring: pass the ring watch flags to ring_attach_cli(), not in ctx.cli 2022-05-06 18:13:36 +02:00
ev_epoll.c BUG/MINOR: signals/poller: set the poller timeout to 0 when there are signals 2022-09-08 17:46:31 +02:00
ev_evports.c BUG/MINOR: signals/poller: set the poller timeout to 0 when there are signals 2022-09-08 17:46:31 +02:00
ev_kqueue.c BUG/MINOR: signals/poller: set the poller timeout to 0 when there are signals 2022-09-08 17:46:31 +02:00
ev_poll.c BUG/MINOR: signals/poller: set the poller timeout to 0 when there are signals 2022-09-08 17:46:31 +02:00
ev_select.c MEDIUM: fd/poller: turn update_mask to group-local IDs 2022-07-15 20:16:30 +02:00
extcheck.c MINOR: task: replace task_set_affinity() with task_set_thread() 2022-07-01 19:15:14 +02:00
fcgi-app.c MEDIUM: http-ana: Add a proxy option to restrict chars in request header names 2022-05-16 16:00:26 +02:00
fcgi.c CLEANUP: Reapply ist.cocci with --include-headers-for-types --recursive-includes 2022-03-21 08:30:47 +01:00
fd.c BUG/MEDIUM: poller: use fd_delete() to release the poller pipes 2022-08-10 17:25:23 +02:00
filters.c CLEANUP: tree-wide: Remove any ref to stream-interfaces 2022-04-13 15:10:16 +02:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
flt_bwlim.c CLEANUP: assorted typo fixes in the code and comments 2022-08-06 17:12:51 +02:00
flt_http_comp.c BUG/MEDIUM: compression: Don't forget to update htx_sl and http_msg flags 2022-04-15 16:22:33 +02:00
flt_spoe.c BUG/MEDIUM: spoe: Properly update streams waiting for a ACK in async mode 2022-08-29 09:57:33 +02:00
flt_trace.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
freq_ctr.c MINOR: freq_ctr: Add a function to get events excess over the current period 2022-06-22 18:33:27 +02:00
frontend.c REORG: rename cs_utils.h to sc_strm.h 2022-05-27 19:33:35 +02:00
h1.c BUG/MEDIUM: h1: Improve authority validation for CONNCET request 2022-07-07 09:35:58 +02:00
h1_htx.c BUG/MEDIUM: http: Properly reject non-HTTP/1.x protocols 2022-05-24 15:38:05 +02:00
h2.c BUG/MINOR: h2: properly set the direction flag on HTX response 2022-09-02 11:19:07 +02:00
h3.c MINOR: h3: Send the h3 settings with others streams (requests) 2022-09-08 18:04:58 +02:00
h3_stats.c MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
haproxy.c BUG/MEDIUM: master: force the thread count earlier 2022-07-22 17:51:53 +02:00
hash.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
hlua.c BUG/MINOR: hlua: Rely on CF_EOI to detect end of message in HTTP applets 2022-08-29 15:37:17 +02:00
hlua_fcn.c CLEANUP: Add missing header to hlua_fcn.c 2022-05-17 11:40:33 +02:00
hpack-dec.c BUILD/DEBUG: hpack: use unsigned int in printf format in debug code 2022-04-12 08:40:38 +02:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c OPTIM: hpack: read 32 bits at once when possible. 2022-04-01 17:29:06 +02: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 MEDIUM: mux-quic: implement http-request timeout 2022-08-03 15:04:18 +02:00
http.c MINOR: http: Add function to detect default port 2022-07-06 17:54:03 +02:00
http_acl.c CLEANUP: acl: don't reference the generic pattern deletion function anymore 2020-11-05 19:27:09 +01:00
http_act.c BUG/MINOR: http-act: initialize http fmt head earlier 2022-09-02 19:24:12 +02:00
http_ana.c BUG/MEDIUM: http-ana: fix crash or wrong header deletion by http-restrict-req-hdr-names 2022-08-17 15:52:17 +02:00
http_client.c MEDIUM: httpclient: enable ALPN support on outgoing https connections 2022-09-02 13:54:30 +02:00
http_conv.c BUG/MEDIUM: http-conv: Fix url_enc() to not crush const samples 2022-04-08 10:12:59 +02:00
http_fetch.c BUILD: http: silence an uninitialized warning affecting gcc-5 2022-07-10 14:13:48 +02:00
http_htx.c REORG: h2: extract cookies concat function in http_htx 2022-08-18 16:13:33 +02:00
http_rules.c BUILD: http: remove the two unused constructors in rules and ana 2022-04-25 19:26:26 +02:00
htx.c BUG/MEDIUM: htx: Fix a possible null derefs in htx_xfer_blks() 2022-02-28 17:16:55 +01:00
init.c MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
jwt.c BUG/MINOR: jwt: Memory leak if same key is used in multiple jwt_verify calls 2022-02-15 20:08:20 +01:00
lb_chash.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fas.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwlc.c BUG/MEDIUM: leastconn: fix rare possibility of divide by zero 2021-09-22 07:24:02 +02:00
lb_fwrr.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
lb_map.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
listener.c MEDIUM: listener: switch bind_thread from global to group-local 2022-07-15 20:16:30 +02:00
log.c BUG/MAJOR: log-forward: Fix ssl layer not initialized on bind even if configured 2022-08-19 16:09:06 +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 CLEANUP: applet: rename appctx_cs() to appctx_sc() 2022-05-27 19:33:35 +02:00
mjson.c MINOR: sample: converter: Add mjson library. 2021-04-15 17:05:38 +02:00
mqtt.c MEDIUM: mqtt: support mqtt_is_valid and mqtt_field_value converters for MQTTv3.1 2022-03-22 09:25:52 +01:00
mux_fcgi.c BUG/MINOR: mux-fcgi: fix the "show fd" dest buffer for the subscriber 2022-09-02 14:23:56 +02:00
mux_h1.c MINOR: mux-h1: provide a "show_sd" helper to output stream debugging info 2022-09-02 16:43:25 +02:00
mux_h2.c MINOR: mux-h2: insert line breaks in "show sess all" output for legibility 2022-09-02 16:43:03 +02:00
mux_pt.c CLEANUP: mux-pt: rename the "endp" field to "sd" 2022-05-27 19:33:35 +02:00
mux_quic.c MINOR: h3: Send the h3 settings with others streams (requests) 2022-09-08 18:04:58 +02:00
mworker-prog.c BUILD: mworker: include tools.h for platforms without unsetenv() 2022-01-28 19:04:02 +01:00
mworker.c BUG/MINOR: mworker: PROC_O_LEAVING used but not updated 2022-07-27 12:13:56 +02:00
namespace.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
ncbuf.c CLEANUP: assorted typo fixes in the code and comments 2022-08-06 17:12:51 +02:00
pattern.c BUG/MEDIUM: pattern: only visit equivalent nodes when skipping versions 2022-08-01 11:59:46 +02:00
payload.c CLEANUP: check: rename all occurrences of stconn "cs" to "sc" 2022-05-27 19:33:35 +02:00
peers.c BUG/MEDIUM: peers: Don't start resync on reload if local peer is not up-to-date 2022-08-29 11:38:02 +02:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c MINOR: pools/memprof: store and report the pool's name in each bin 2022-08-17 10:34:00 +02:00
proto_quic.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
proto_sockpair.c MINOR: sockpair: move send_fd_uxst() error message in caller 2022-07-25 16:11:11 +02:00
proto_tcp.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
proto_udp.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
proto_uxdg.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
proto_uxst.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
protocol.c MINOR: protocol: replace ctrl_type with xprt_type and clarify it 2022-05-20 18:39:43 +02:00
proxy.c BUG/MINOR: h1: Support headers case adjustment for TCP proxies 2022-09-06 18:23:14 +02:00
qpack-dec.c MINOR: qpack: report error on enc/dec stream close 2022-08-17 11:04:53 +02:00
qpack-enc.c BUG/MINOR: qpack: support bigger prefix-integer encoding 2022-05-30 14:30:05 +02:00
qpack-tbl.c CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +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.c MEDIUM: quic: Cubic congestion control algorithm implementation 2022-07-29 17:32:05 +02:00
quic_cc_cubic.c BUG/MEDIUM: quic: Floating point exception in cubic_root() 2022-08-03 14:27:20 +02:00
quic_cc_newreno.c MINOR: quic: Congestion control architecture refactoring 2022-07-29 17:32:05 +02:00
quic_frame.c BUG/MINOR: quic: Safer QUIC frame builders 2022-08-23 17:40:09 +02:00
quic_loss.c MEDIUM: quic: xprt traces rework 2022-08-11 11:11:20 +02:00
quic_sock.c DEBUG: quic: export the few task handlers that often appear in task dumps 2022-09-08 16:13:38 +02:00
quic_stats.c MINOR: quic: Add two new stats counters for sendto() errors 2022-08-05 15:27:14 +02:00
quic_stream.c BUG/MINOR: mux-quic: Fix memleak on QUIC stream buffer for unacknowledged data 2022-08-20 19:08:31 +02:00
quic_tls.c MINOR: quic: Add reusable cipher contexts for header protection 2022-08-19 18:31:59 +02:00
quic_tp.c BUG/MEDIUM: quic: Wrong use of <token_odcid> in qc_lsntr_pkt_rcv() 2022-08-11 19:12:12 +02:00
raw_sock.c MINOR: raw-sock: don't try to send if an error was already reported 2022-08-29 18:45:27 +02:00
regex.c BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c DEBUG: resolvers: unstatify process_resolvers() to make it appear in profiling 2022-09-08 16:13:38 +02:00
ring.c MINOR: ring: support creating a ring from a linear area 2022-08-12 11:18:46 +02:00
sample.c MINOR: tasks: do not keep cpu and latency times in struct task 2022-09-08 14:19:15 +02:00
server.c REORG: server: Export srv_settings_cpy() function 2022-08-03 11:28:52 +02:00
server_state.c BUILD: server-state: avoid using not-so-portable isblank() 2022-01-28 19:04:02 +01:00
session.c BUG/MINOR: session: fix theoretical risk of memleak in session_accept_fd() 2022-03-11 07:25:11 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c MINOR: shctx: add a few BUG_ON() for consistency checks 2021-11-19 19:25:13 +01:00
signal.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sink.c MINOR: sink/ring: rotate non-empty file-backed contents only 2022-09-01 08:25:34 +02:00
slz.c IMPORT: slz: use the correct CRC32 instruction when running in 32-bit mode 2021-12-06 09:14:20 +01:00
sock.c MINOR: sockpair: move send_fd_uxst() error message in caller 2022-07-25 16:11:11 +02:00
sock_inet.c MEDIUM: fd: add the tgid to the fd and pass it to fd_insert() 2022-07-15 19:58:06 +02:00
sock_unix.c MEDIUM: fd: add the tgid to the fd and pass it to fd_insert() 2022-07-15 19:58:06 +02:00
ssl_ckch.c BUG/MINOR: ssl: leak of ckch_inst_link in ckch_inst_free() v2 2022-08-31 15:24:01 +02:00
ssl_crtlist.c BUG/MEDIUM: ssl/cli: crash when crt inserted into a crt-list 2022-06-20 17:27:49 +02:00
ssl_sample.c CLEANUP: check: rename all occurrences of stconn "cs" to "sc" 2022-05-27 19:33:35 +02:00
ssl_sock.c MINOR: quic: add QUIC support when no client_hello_cb 2022-09-07 11:33:28 +02:00
ssl_utils.c CLEANUP: Add missing header to ssl_utils.c 2022-05-17 11:40:33 +02:00
stats.c BUG/MINOR: cli/stats: add missing trailing LF after "show info json" 2022-06-10 15:12:21 +02:00
stconn.c BUILD: stconn: fix build warning at -O3 about possible null sc 2022-08-11 13:59:13 +02:00
stick_table.c MINOR: stick-table: Add table_expire() and table_idle() new converters 2022-08-17 10:52:15 +02:00
stream.c MINOR: tasks: do not keep cpu and latency times in struct task 2022-09-08 14:19:15 +02:00
task.c MEDIUM: tasks/activity: combine the called function with the caller 2022-09-08 16:21:22 +02:00
tcp_act.c REORG: rename cs_utils.h to sc_strm.h 2022-05-27 19:33:35 +02:00
tcp_rules.c BUG/MINOR: tcp-rules: Make action call final on read error and delay expiration 2022-06-13 08:04:10 +02:00
tcp_sample.c MINOR: Revert part of clarifying samples support per os commit 2022-09-03 06:11:08 +02:00
tcpcheck.c MINOR: http-check: Remove support for headers/body in "option httpchk" version 2022-09-06 18:23:14 +02:00
thread.c MINOR: threads: report the number of thread groups in build options 2022-08-06 16:45:26 +02:00
time.c REORG: time: move time-keeping code and variables to clock.c 2021-10-08 17:22:26 +02:00
tools.c DEBUG: tools: provide a tree dump function for ebmbtrees as well 2022-08-01 11:59:15 +02:00
trace.c BUG/MINOR: trace: Test server existence for health-checks to get proxy 2022-06-08 15:28:38 +02:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
uri_normalizer.c MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars.c CLEANUP: vars: move the per-process variables initialization to vars.c 2022-02-23 17:11:33 +01:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c MINOR: wdt: do not rely on threads_to_dump anymore 2022-07-01 19:26:35 +02: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 BUG/MINOR: quic: Trace fix about packet number space information. 2022-09-08 18:04:58 +02:00