diff --git a/src/http_ana.c b/src/http_ana.c index d132e5de2..cc7fc7000 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -956,7 +956,8 @@ int http_request_forward_body(struct stream *s, struct channel *req, int an_bit) } else { c_adv(req, htx->data - co_data(req)); - if ((global.tune.options & GTUNE_USE_FAST_FWD) && (msg->flags & HTTP_MSGF_XFER_LEN)) + if ((global.tune.options & GTUNE_USE_FAST_FWD) && (msg->flags & HTTP_MSGF_XFER_LEN) && + (!(msg->flags & HTTP_MSGF_CONN_UPG) || (htx->flags & HTX_FL_EOM))) channel_htx_forward_forever(req, htx); }