haproxy/src
Willy Tarreau 115e83b071 MEDIUM: mux-h2: implement emission of H2 headers frames from HTX blocks
When using HTX, we need a separate function to emit a headers frame.
The code is significantly different from the H1 to H2 conversion, though
it borrows some parts there. It looks like the part building the H2 frame
from the headers list could be factored out, however some of the logic
around dealing with end of stream or block sizes remains different.

With this patch it becomes possible to retrieve bodyless HTTP responses
using H2 over HTX.
2018-12-01 23:27:08 +01:00
..
51d.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
action.c MINOR: action: Add function to check rules using an action ACT_ACTION_TRK_* 2017-10-31 11:36:12 +01:00
activity.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
applet.c MINOR: stream-int: replace si_{want,stop}_put() with si_rx_endp_{more,done}() 2018-11-18 21:41:47 +01:00
arg.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
auth.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
backend.c BUG/MEDIUM: Special-case http_proxy when dealing with outgoing connections. 2018-12-01 17:20:03 +01:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cache.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
cfgparse-global.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
cfgparse-listen.c REORG: config: extract the proxy parser into cfgparse-listen.c 2018-11-19 06:47:09 +01:00
cfgparse.c BUG/MINOR: cfgparse: Fix transition between 2 sections with the same name 2018-12-01 17:20:36 +01:00
channel.c BUG/MEDIUM: buffers: Make sure we don't wrap in ci_insert_line2/b_rep_blk. 2018-10-08 16:11:54 +02:00
checks.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
chunk.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cli.c REORG: mworker: declare master variable in global.h 2018-11-27 19:34:00 +01:00
compression.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
connection.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
da.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
dns.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
ev_epoll.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_kqueue.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_poll.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
ev_select.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
fd.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
filters.c MAJOR: filters: Adapt filters API to be compatible with the HTX represenation 2018-12-01 17:37:27 +01:00
flt_http_comp.c MEDIUM: compression: Adapt to be compatible with the HTX representation 2018-12-01 17:37:27 +01:00
flt_spoe.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
flt_trace.c MINOR: flt_trace: Adapt to be compatible with the HTX representation 2018-12-01 17:37:27 +01:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
h1.c MINOR: h1: Add the flag H1_MF_NO_PHDR to not add pseudo-headers during parsing 2018-10-12 16:15:18 +02:00
h2.c MINOR: h2: implement H2->HTX request header frame transcoding 2018-12-01 17:38:32 +01:00
haproxy.c MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
hash.c MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
hdr_idx.c CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
hlua_fcn.c CLEANUP: fix typos in the hlua_fcn subsystem 2018-11-18 22:23:15 +01:00
hpack-dec.c BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
hpack-enc.c BUG/MEDIUM: hpack: fix encoding of "accept-ranges" field 2018-11-20 04:47:38 +01:00
hpack-huff.c BUG/MINOR: hpack: must reject huffman literals padded with more than 7 bits 2017-12-03 21:08:39 +01:00
hpack-tbl.c BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
http.c MEDIUM: proto_htx: Convert all HTTP error messages into HTX 2018-12-01 17:37:27 +01:00
http_acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_act.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_conv.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_fetch.c MEDIUM: htx: Don't rely on h1_sl anymore except during H1 header parsing 2018-12-01 17:37:27 +01:00
http_htx.c MEDIUM: proto_htx: Convert all HTTP error messages into HTX 2018-12-01 17:37:27 +01:00
http_rules.c MINOR: http: Make new "early-hint" http-request action really be parsed. 2018-11-12 21:08:55 +01:00
htx.c MEDIUM: htx: Don't rely on h1_sl anymore except during H1 header parsing 2018-12-01 17:37:27 +01:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fas.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fwlc.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fwrr.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_map.c REORG: http: move the HTTP semantics definitions to http.h/http.c 2018-09-11 10:30:25 +02:00
listener.c BUG/MEDIUM: listeners: CLOEXEC flag is not correctly set 2018-11-27 19:34:00 +01:00
log.c MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
memory.c MEDIUM: memory: make the pool cache an array and not a thread_local 2018-11-26 19:50:32 +01:00
mux_h1.c MINOR: mux-h1: Capture bad H1 messages 2018-12-01 17:37:27 +01:00
mux_h2.c MEDIUM: mux-h2: implement emission of H2 headers frames from HTX blocks 2018-12-01 23:27:08 +01:00
mux_pt.c BUG/MEDIUM: mux_pt: Don't try to send if handshake is not done. 2018-12-01 10:47:17 +01:00
namespace.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
pattern.c MEDIUM: init: use self-initializing spinlocks and rwlocks 2018-11-26 19:50:32 +01:00
payload.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
peers.c CLEANUP: Fix typos in the peers subsystem 2018-11-18 22:26:42 +01:00
pipe.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
proto_http.c MEDIUM: proto_htx: Convert all HTTP error messages into HTX 2018-12-01 17:37:27 +01:00
proto_htx.c MEDIUM: proto_htx/filters: Add data filtering during the forwarding 2018-12-01 17:37:27 +01:00
proto_sockpair.c BUG/MEDIUM: mworker: avoid leak of client socket 2018-11-27 19:34:00 +01:00
proto_tcp.c BUG/MEDIUM: mworker: avoid leak of client socket 2018-11-27 19:34:00 +01:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c BUG/MEDIUM: mworker: avoid leak of client socket 2018-11-27 19:34:00 +01:00
protocol.c MEDIUM: protocol: use a custom AF_MAX to help protocol parser 2018-09-12 07:12:27 +02:00
proxy.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
queue.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
raw_sock.c MINOR: connections: Introduce an unsubscribe method. 2018-10-11 15:34:21 +02:00
regex.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
sample.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
server.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
session.c MAJOR: sessions: Store multiple outgoing connections in the session. 2018-12-01 10:47:18 +01:00
sha1.c IMPORT: sha1: import SHA1 functions 2017-10-25 04:45:48 +02:00
shctx.c MINOR: shctx: Change max. object size type to unsigned int. 2018-10-26 04:54:40 +02:00
signal.c MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
ssl_sock.c BUG/MINOR: ssl: ssl_sock_parse_clienthello ignores session id 2018-11-29 16:55:29 +01:00
standard.c MINOR: Fix typo in error message in the standard subsystem 2018-11-18 22:26:42 +01:00
stats.c MEDIUM: htx: Don't rely on h1_sl anymore except during H1 header parsing 2018-12-01 17:37:27 +01:00
stick_table.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
stream.c MINOR: stream: Rely on CS's info if it exists and fallback on session's ones 2018-12-01 17:37:27 +01:00
stream_interface.c BUG/MEDIUM: stream_interface: Make sure we read all the data available. 2018-11-29 17:39:04 +01:00
task.c MEDIUM: initcall: use initcalls for a few initialization functions 2018-11-26 19:50:32 +01:00
tcp_rules.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
time.c REORG: time/activity: move activity measurements to activity.{c,h} 2018-11-22 11:48:41 +01:00
trace.c CONTRIB: trace: try to display the function's return value on exit 2017-10-24 19:54:25 +02:00
uri_auth.c CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning 2017-11-24 17:19:12 +01:00
vars.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
wurfl.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
xxhash.c CLEANUP: fix 2 typos in the xxhash subsystem 2018-11-18 22:23:15 +01:00