MINOR: stats/htx: don't use the first block position but the head one
Applets must never rely on the first block position to consume an HTX
message. The head position must be used instead. For the request it is always
the start-line. At this stage, it is not a bug, because the first position of
the request is never changed by HTX analysers.
diff --git a/src/stats.c b/src/stats.c
index a8f9795..9c3bf7c 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -277,8 +277,13 @@
if (IS_HTX_STRM(si_strm(si))) {
struct channel *req = si_oc(si);
struct htx *htx = htxbuf(&req->buf);
- struct ist uri = htx_sl_req_uri(http_get_stline(htx));
+ struct htx_blk *blk;
+ struct ist uri;
+ blk = htx_get_head_blk(htx);
+ BUG_ON(htx_get_blk_type(blk) != HTX_BLK_REQ_SL);
+ ALREADY_CHECKED(blk);
+ uri = htx_sl_req_uri(htx_get_blk_ptr(htx, blk));
p = uri.ptr;
}
else
@@ -2788,7 +2793,7 @@
}
/* The request was fully received. Copy data */
- blk = htx_get_first_blk(htx);
+ blk = htx_get_head_blk(htx);
while (blk) {
enum htx_blk_type type = htx_get_blk_type(blk);