From 2e43f08c60c738af1fbb4d2d1e32d5bc4036a69f Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 17 Oct 2017 08:03:59 +0200 Subject: [PATCH] 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. --- src/mux_h2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mux_h2.c b/src/mux_h2.c index ff9df381c..6268465d8 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 */