diff --git a/src/mux_h2.c b/src/mux_h2.c index d74a6bd13..6e4dc1039 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -2178,8 +2178,9 @@ static void h2s_wake_one_stream(struct h2s *h2s) h2s_close(h2s); } - if (h2s->h2c->st0 >= H2_CS_ERROR || (h2s->h2c->flags & H2_CF_ERROR) || - (h2s->h2c->last_sid > 0 && (!h2s->id || h2s->id > h2s->h2c->last_sid))) { + if ((h2s->st != H2_SS_CLOSED) && + (h2s->h2c->st0 >= H2_CS_ERROR || (h2s->h2c->flags & H2_CF_ERROR) || + (h2s->h2c->last_sid > 0 && (!h2s->id || h2s->id > h2s->h2c->last_sid)))) { se_fl_set_error(h2s->sd); if (h2s->st < H2_SS_ERROR)