diff --git a/src/proto_http.c b/src/proto_http.c index 345e889ba..3adb54f23 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -4878,7 +4878,8 @@ int http_request_forward_body(struct stream *s, struct channel *req, int an_bit) if (!(s->res.flags & CF_READ_ATTACHED)) { channel_auto_connect(req); req->flags |= CF_WAKE_CONNECT; - goto missing_data_or_waiting; + channel_dont_close(req); /* don't fail on early shutr */ + goto waiting; } msg->flags &= ~HTTP_MSGF_WAIT_CONN; } @@ -4962,6 +4963,7 @@ int http_request_forward_body(struct stream *s, struct channel *req, int an_bit) goto return_bad_req_stats_ok; } + waiting: /* waiting for the last bits to leave the buffer */ if (req->flags & CF_SHUTW) goto aborted_xfer;