MINOR: h2: new function h2s_error() to mark an error on a stream

This one will store the error into the stream's errcode if it's neither
idle nor closed (since these ones are read-only) and switch its state to
H2_SS_ERROR. If a conn_stream is attached, it will be flagged with
CS_FL_ERROR.
This commit is contained in:
Willy Tarreau 2017-10-17 08:03:59 +02:00
parent 741d6df870
commit 2e43f08c60

View File

@ -380,6 +380,17 @@ static inline void h2c_error(struct h2c *h2c, enum h2_err err)
h2c->st0 = H2_CS_ERROR; h2c->st0 = H2_CS_ERROR;
} }
/* marks an error on the stream */
static inline void h2s_error(struct h2s *h2s, enum h2_err err)
{
if (h2s->st > H2_SS_IDLE && h2s->st < H2_SS_ERROR) {
h2s->errcode = err;
h2s->st = H2_SS_ERROR;
if (h2s->cs)
h2s->cs->flags |= CS_FL_ERROR;
}
}
/*********************************************************/ /*********************************************************/
/* functions below are I/O callbacks from the connection */ /* functions below are I/O callbacks from the connection */