When a write error is encountered during a data phase, we must
absolutely abort the pending data transfer, otherwise it will
never complete.
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;
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;