BUG/MINOR: proto_htx: Fix request/response synchronisation on error
The HTTP transaction must be aborted if an error is detected on any one
side.
diff --git a/src/proto_htx.c b/src/proto_htx.c
index c16fc1e..2068972 100644
--- a/src/proto_htx.c
+++ b/src/proto_htx.c
@@ -4946,7 +4946,8 @@
h1_msg_state_str(txn->req.msg_state), h1_msg_state_str(txn->rsp.msg_state),
s->req.analysers, s->res.analysers);
- if (unlikely(txn->req.msg_state == HTTP_MSG_ERROR)) {
+ if (unlikely(txn->req.msg_state == HTTP_MSG_ERROR ||
+ txn->rsp.msg_state == HTTP_MSG_ERROR)) {
channel_abort(chn);
channel_truncate(chn);
goto end;
@@ -5080,7 +5081,8 @@
h1_msg_state_str(txn->req.msg_state), h1_msg_state_str(txn->rsp.msg_state),
s->req.analysers, s->res.analysers);
- if (unlikely(txn->rsp.msg_state == HTTP_MSG_ERROR)) {
+ if (unlikely(txn->req.msg_state == HTTP_MSG_ERROR ||
+ txn->rsp.msg_state == HTTP_MSG_ERROR)) {
channel_truncate(chn);
channel_abort(&s->req);
goto end;