MINOR: h1-htx/http-ana: Set BODYLESS flag on message in TUNNEL state
When a H1 message is parsed, if the parser state is switched to TUNNEL mode
just after the header parsing, the BODYLESS flag is set on the HTX
start-line. By transitivity, the corresponding flag is set on the message in
HTTP analysers. Thus it is possible to rely on it to not wait for the
request body.
diff --git a/src/h1_htx.c b/src/h1_htx.c
index a2ee510..734f9cb 100644
--- a/src/h1_htx.c
+++ b/src/h1_htx.c
@@ -146,6 +146,8 @@
else
flags |= HTX_SL_F_BODYLESS;
}
+ if (h1m->state == H1_MSG_TUNNEL)
+ flags |= HTX_SL_F_BODYLESS;
return flags;
}
diff --git a/src/http_ana.c b/src/http_ana.c
index 741ec56..5dfd41b 100644
--- a/src/http_ana.c
+++ b/src/http_ana.c
@@ -875,8 +875,8 @@
if (htx->flags & HTX_FL_PROCESSING_ERROR)
goto return_int_err;
- /* CONNECT requests have no body */
- if (txn->meth == HTTP_METH_CONNECT)
+ /* Do nothing for bodyless and CONNECT requests */
+ if (txn->meth == HTTP_METH_CONNECT || (msg->flags & HTTP_MSGF_BODYLESS))
goto http_end;
/* We have to parse the HTTP request body to find any required data.