From: Willy Tarreau Date: Fri, 11 Oct 2019 14:58:37 +0000 (+0200) Subject: MINOR: mux-h2: also support emitting CONTINUATION on trailers X-Git-Tag: v2.1-dev3~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=572d9f58474735e048cc6108c164ebf94e99739a;p=thirdparty%2Fhaproxy.git MINOR: mux-h2: also support emitting CONTINUATION on trailers Trailers were forgotten by commit cb985a4da6 ("MEDIUM: mux-h2: support emitting CONTINUATION frames after HEADERS"), this one just fixes this miss. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index 14b6ba8f49..e3e797f75c 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -5525,6 +5525,15 @@ static size_t h2s_make_trailers(struct h2s *h2s, struct htx *htx) /* update the frame's size */ h2_set_frame_size(outbuf.area, outbuf.data - 9); + if (outbuf.data > h2c->mfs + 9) { + if (!h2_fragment_headers(&outbuf, h2c->mfs)) { + /* output full */ + if (b_space_wraps(mbuf)) + goto realign_again; + goto full; + } + } + /* commit the H2 response */ TRACE_PROTO("sent H2 trailers HEADERS frame", H2_EV_TX_FRAME|H2_EV_TX_HDR|H2_EV_TX_EOI, h2c->conn, h2s); b_add(mbuf, outbuf.data);