]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: h1-htx: Add HTX EOM block when the message is in H1_MSG_DONE state
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 10 Dec 2019 10:47:22 +0000 (11:47 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 11 Dec 2019 15:46:16 +0000 (16:46 +0100)
commit76014fd11850901ca4bbde640f8806ccf9f53def
treee4ec044df67d9dcff1b173af0664905e1e368213
parent719e07c989be48a69fcfcaa404d12d7478de8a1b
MEDIUM: h1-htx: Add HTX EOM block when the message is in H1_MSG_DONE state

During H1 parsing, the HTX EOM block is added before switching the message state
to H1_MSG_DONE. It is an exception in the way to convert an H1 message to
HTX. Except for this block, the message is first switched to the right state
before starting to add the corresponding HTX blocks. For instance, the message
is switched in H1_MSG_DATA state and then the HTX DATA blocks are added.

With this patch, the message is switched to the H1_MSG_DONE state when all data
blocks or trailers were processed. It is the caller responsibility to call
h1_parse_msg_eom() when the H1_MSG_DONE state is reached. This way, it is far
easier to catch failures when the HTX buffer is full.

The H1 and FCGI muxes have been updated accordingly.

This patch may eventually be backported to 2.1 if it helps other backports.
include/proto/h1_htx.h
src/h1_htx.c
src/mux_fcgi.c
src/mux_h1.c