MINOR: payload/htx: Adapt smp_fetch_len to be HTX aware
diff --git a/include/proto/proto_http.h b/include/proto/proto_http.h
index 1d21033..2e2163e 100644
--- a/include/proto/proto_http.h
+++ b/include/proto/proto_http.h
@@ -27,6 +27,7 @@
 #include <types/stream.h>
 #include <types/task.h>
 #include <proto/channel.h>
+#include <proto/stream.h>
 
 #define IS_HTX_STRM(strm) (strm_fe(strm)->options2 & PR_O2_USE_HTX)
 #define IS_HTX_SMP(smp)   ((smp)->strm && IS_HTX_STRM((smp)->strm))
diff --git a/src/payload.c b/src/payload.c
index 14191a7..7ef6d97 100644
--- a/src/payload.c
+++ b/src/payload.c
@@ -15,12 +15,14 @@
 
 #include <common/initcall.h>
 #include <common/net_helper.h>
+#include <common/htx.h>
 #include <proto/acl.h>
 #include <proto/arg.h>
 #include <proto/channel.h>
 #include <proto/pattern.h>
 #include <proto/payload.h>
 #include <proto/sample.h>
+#include <proto/proto_http.h>
 
 
 /************************************************************************/
@@ -53,7 +55,12 @@
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
 	smp->data.type = SMP_T_SINT;
-	smp->data.u.sint = ci_data(chn);
+	if (IS_HTX_SMP(smp)) {
+		struct htx *htx = htxbuf(&chn->buf);
+		smp->data.u.sint = htx->data - co_data(chn);
+	}
+	else
+		smp->data.u.sint = ci_data(chn);
 	smp->flags = SMP_F_VOLATILE | SMP_F_MAY_CHANGE;
 	return 1;
 }