From 0e160ff5bb241ad3f4dc396dae3867d70a307a94 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 3 Apr 2019 10:01:07 +0200 Subject: [PATCH] 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. --- include/types/stream.h | 2 +- src/stream.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/types/stream.h b/include/types/stream.h index 5e854c54bb..93a39a3ecc 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 764c5f32ec..551f8e2ccf 100644 --- a/src/stream.c +++ b/src/stream.c @@ -236,8 +236,15 @@ struct stream *stream_new(struct session *sess, enum obj_type *origin) 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)