]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux-h2: also support emitting CONTINUATION on trailers
authorWilly Tarreau <w@1wt.eu>
Fri, 11 Oct 2019 14:58:37 +0000 (16:58 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 11 Oct 2019 15:00:04 +0000 (17:00 +0200)
Trailers were forgotten by commit cb985a4da6 ("MEDIUM: mux-h2: support
emitting CONTINUATION frames after HEADERS"), this one just fixes this
miss.

src/mux_h2.c

index 14b6ba8f495dd7df83fbe944acf417846c69767f..e3e797f75c1c8064d765368dad7706f075dada08 100644 (file)
@@ -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);