[BUG] http: ensure we abort data transfer on write error
When a write error is encountered during a data phase, we must
absolutely abort the pending data transfer, otherwise it will
never complete.
diff --git a/src/proto_http.c b/src/proto_http.c
index fd26673..33a45e8 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3244,6 +3244,11 @@
struct http_txn *txn = &s->txn;
struct http_msg *msg = &s->txn.req;
+ if (req->flags & (BF_SHUTW|BF_WRITE_ERROR|BF_WRITE_TIMEOUT)) {
+ req->analysers &= ~an_bit;
+ return 1;
+ }
+
if (unlikely(msg->msg_state < HTTP_MSG_BODY))
return 0;
@@ -4347,6 +4352,11 @@
struct http_txn *txn = &s->txn;
struct http_msg *msg = &s->txn.rsp;
+ if (res->flags & (BF_SHUTW|BF_WRITE_ERROR|BF_WRITE_TIMEOUT)) {
+ res->analysers &= ~an_bit;
+ return 1;
+ }
+
if (unlikely(msg->msg_state < HTTP_MSG_BODY))
return 0;