On Thu, Jun 14, 2018 at 07:22:34PM +0200, Janusz Dziemidowicz wrote:
> 2018-06-14 18:56 GMT+02:00 Willy Tarreau <[email protected]>:
>
> > If you'd like to run a test, I'm attaching the patch.
>
> Sure, but you forgot to attach it :)
Ah, that's because I'm stupid :-)
Here it comes this time.
Willy
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 5f1da0d..4c3e2dd 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -3106,6 +3109,7 @@ static int h2s_frt_make_resp_headers(struct h2s *h2s,
struct buffer *buf)
*/
if (es_now) {
// trim any possibly pending data (eg: inconsistent
content-length)
+ ret += buf->o;
bo_del(buf, buf->o);
h1m->state = HTTP_MSG_DONE;
@@ -3359,6 +3363,7 @@ static int h2s_frt_make_resp_data(struct h2s *h2s, struct
buffer *buf)
if (!(h1m->flags & H1_MF_CHNK)) {
// trim any possibly pending data (eg: inconsistent
content-length)
+ total += buf->o;
bo_del(buf, buf->o);
h1m->state = HTTP_MSG_DONE;
@@ -3413,6 +3418,7 @@ static int h2_snd_buf(struct conn_stream *cs, struct
buffer *buf, int flags)
bo_del(buf, count);
// trim any possibly pending data (eg: extra CR-LF, ...)
+ total += buf->o;
bo_del(buf, buf->o);
h2s->res.state = HTTP_MSG_DONE;