[BUG] do not forward close from cons to prod with analysers
We must not forward a close from consumer to producer as long as
an analyser is present.
diff --git a/src/session.c b/src/session.c
index 0df174a..29ddb6f 100644
--- a/src/session.c
+++ b/src/session.c
@@ -759,7 +759,8 @@
s->req->cons->shutw(s->req->cons);
/* shutdown(write) done on server side, we must stop the client too */
- if (unlikely((s->req->flags & (BF_SHUTW|BF_SHUTR|BF_SHUTR_NOW)) == BF_SHUTW))
+ if (unlikely((s->req->flags & (BF_SHUTW|BF_SHUTR|BF_SHUTR_NOW)) == BF_SHUTW &&
+ !s->req->analysers))
buffer_shutr_now(s->req);
/* shutdown(read) pending */
@@ -857,7 +858,8 @@
s->rep->cons->shutw(s->rep->cons);
/* shutdown(write) done on the client side, we must stop the server too */
- if (unlikely((s->rep->flags & (BF_SHUTW|BF_SHUTR|BF_SHUTR_NOW)) == BF_SHUTW))
+ if (unlikely((s->rep->flags & (BF_SHUTW|BF_SHUTR|BF_SHUTR_NOW)) == BF_SHUTW) &&
+ !s->rep->analysers)
buffer_shutr_now(s->rep);
/* shutdown(read) pending */