MINOR: stream: Set a flag when the stream uses the HTX
The flag SF_HTX has been added to know when a stream uses the HTX or not. It is
set when an HTX stream is created. There are 2 conditions to set it. The first
one is when the HTTP frontend enables the HTX. The second one is when the attached
conn_stream uses an HTX multiplexer.
diff --git a/include/types/stream.h b/include/types/stream.h
index 5e854c5..93a39a3 100644
--- a/include/types/stream.h
+++ b/include/types/stream.h
@@ -58,7 +58,7 @@
#define SF_REDISP 0x00000100 /* set if this stream was redispatched from one server to another */
/* unused: 0x00000200 */
#define SF_REDIRECTABLE 0x00000400 /* set if this stream is redirectable (GET or HEAD) */
-/* unused: 0x00000800 */
+#define SF_HTX 0x00000800 /* set if this stream is an htx stream */
/* stream termination conditions, bits values 0x1000 to 0x7000 (0-9 shift 12) */
#define SF_ERR_NONE 0x00000000 /* normal end of request */
diff --git a/src/stream.c b/src/stream.c
index 764c5f3..551f8e2 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -236,8 +236,15 @@
si_set_state(&s->si[0], SI_ST_EST);
s->si[0].hcto = sess->fe->timeout.clientfin;
- if (cs && cs->conn->mux && cs->conn->mux->flags & MX_FL_CLEAN_ABRT)
- s->si[0].flags |= SI_FL_CLEAN_ABRT;
+ if (cs && cs->conn->mux) {
+ if (cs->conn->mux->flags & MX_FL_CLEAN_ABRT)
+ s->si[0].flags |= SI_FL_CLEAN_ABRT;
+ if (cs->conn->mux->flags & MX_FL_HTX)
+ s->flags |= SF_HTX;
+ }
+ /* Set SF_HTX flag for HTX frontends. */
+ if (sess->fe->mode == PR_MODE_HTTP && sess->fe->options2 & PR_O2_USE_HTX)
+ s->flags |= SF_HTX;
/* attach the incoming connection to the stream interface now. */
if (cs)