diff --git a/src/http_ana.c b/src/http_ana.c index 7c1a1a164..ae7d822a1 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -1246,6 +1246,8 @@ int http_request_forward_body(struct stream *s, struct channel *req, int an_bit) msg->msg_state = HTTP_MSG_ENDING; ending: + req->flags &= ~CF_EXPECT_MORE; /* no more data are expected */ + /* other states, ENDING...TUNNEL */ if (msg->msg_state >= HTTP_MSG_DONE) goto done; @@ -1336,7 +1338,7 @@ int http_request_forward_body(struct stream *s, struct channel *req, int an_bit) * flag with the last block of forwarded data, which would cause an * additional delay to be observed by the receiver. */ - if (msg->flags & HTTP_MSGF_TE_CHNK) + if (HAS_REQ_DATA_FILTERS(s)) req->flags |= CF_EXPECT_MORE; DBG_TRACE_DEVEL("waiting for more data to forward", @@ -2335,6 +2337,8 @@ int http_response_forward_body(struct stream *s, struct channel *res, int an_bit msg->msg_state = HTTP_MSG_ENDING; ending: + res->flags &= ~CF_EXPECT_MORE; /* no more data are expected */ + /* other states, ENDING...TUNNEL */ if (msg->msg_state >= HTTP_MSG_DONE) goto done; @@ -2414,7 +2418,7 @@ int http_response_forward_body(struct stream *s, struct channel *res, int an_bit * flag with the last block of forwarded data, which would cause an * additional delay to be observed by the receiver. */ - if ((msg->flags & HTTP_MSGF_TE_CHNK) || (msg->flags & HTTP_MSGF_COMPRESSING)) + if (HAS_RSP_DATA_FILTERS(s)) res->flags |= CF_EXPECT_MORE; /* the stream handler will take care of timeouts and errors */