From: Willy Tarreau Date: Tue, 17 Oct 2017 06:03:59 +0000 (+0200) Subject: MINOR: h2: new function h2s_error() to mark an error on a stream X-Git-Tag: v1.8-rc1~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e43f08c60c738af1fbb4d2d1e32d5bc4036a69f;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index ff9df381cf..6268465d8f 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -380,6 +380,17 @@ static inline void h2c_error(struct h2c *h2c, enum h2_err err) 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 */