diff --git a/src/mux_h2.c b/src/mux_h2.c index 733687e7b..0c2fcdeb2 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -3066,7 +3066,7 @@ static int h2_snd_buf(struct conn_stream *cs, struct buffer *buf, int flags) if (h2s->res.state < HTTP_MSG_BODY) { total += h2s_frt_make_resp_headers(h2s, buf); - if (h2s->st == H2_SS_ERROR) + if (h2s->st >= H2_SS_ERROR) break; if (h2s->flags & H2_SF_BLK_ANY) @@ -3075,7 +3075,7 @@ static int h2_snd_buf(struct conn_stream *cs, struct buffer *buf, int flags) else if (h2s->res.state < HTTP_MSG_TRAILERS) { total += h2s_frt_make_resp_data(h2s, buf); - if (h2s->st == H2_SS_ERROR) + if (h2s->st >= H2_SS_ERROR) break; if (h2s->flags & H2_SF_BLK_ANY) @@ -3102,7 +3102,7 @@ static int h2_snd_buf(struct conn_stream *cs, struct buffer *buf, int flags) } /* RST are sent similarly to frame acks */ - if (h2s->st == H2_SS_ERROR) { + if (h2s->st >= H2_SS_ERROR) { cs->flags |= CS_FL_ERROR; if (h2s_send_rst_stream(h2s->h2c, h2s) > 0) h2s->st = H2_SS_CLOSED;