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.
This commit is contained in:
Christopher Faulet 2019-04-03 10:01:07 +02:00
parent 9f38f5aa80
commit 0e160ff5bb
2 changed files with 10 additions and 3 deletions

View File

@ -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 */

View File

@ -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)