BUG/MEDIUM: mux-h2: make sure to report synchronous errors after EOS
If EOS has already been reported on the conn_stream, there won't be
any read anymore to turn ERR_PENDING into ERROR, so we have to do
report it directly.
No backport is needed.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 58a0521..4c494d5 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -1739,7 +1739,11 @@
h2s_close(h2s);
if (h2s->cs) {
- h2s->cs->flags |= CS_FL_REOS | CS_FL_ERR_PENDING;
+ if (h2s->cs->flags & CS_FL_EOS)
+ h2s->cs->flags |= CS_FL_ERROR;
+ else
+ h2s->cs->flags |= CS_FL_REOS | CS_FL_ERR_PENDING;
+
if (h2s->recv_wait) {
struct wait_event *sw = h2s->recv_wait;