From 316934d3c905907e8dc8aadec3d1be237177bf7f Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 15 May 2019 14:22:48 +0200 Subject: [PATCH] BUG/MINOR: mux-h2: Count EOM in bytes sent when a HEADERS frame is formatted In HTX, when a HEADERS frame is formatted before sending it to the client or the server, If an EOM is found because there is no body, we must count it in the number bytes sent. This patch must be backported to 1.9. --- src/mux_h2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 90c6a440c..108d8eeba 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -4481,8 +4481,10 @@ static size_t h2s_htx_frt_make_resp_headers(struct h2s *h2s, struct htx *htx) blk = htx_remove_blk(htx, blk); } - if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM) + if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM) { + ret += htx_get_blksz(blk_end); htx_remove_blk(htx, blk_end); + } end: return ret; full: @@ -4721,8 +4723,10 @@ static size_t h2s_htx_bck_make_req_headers(struct h2s *h2s, struct htx *htx) blk = htx_remove_blk(htx, blk); } - if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM) + if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM) { + ret += htx_get_blksz(blk_end); htx_remove_blk(htx, blk_end); + } end: return ret;