diff --git a/src/tcp_rules.c b/src/tcp_rules.c index 72b1cd37c..f52589536 100644 --- a/src/tcp_rules.c +++ b/src/tcp_rules.c @@ -112,7 +112,7 @@ int tcp_inspect_request(struct stream *s, struct channel *req, int an_bit) * - if one rule returns KO, then return KO */ - if ((req->flags & CF_SHUTR) || channel_full(req, global.tune.maxrewrite) || + if ((req->flags & (CF_EOI|CF_SHUTR|CF_READ_ERROR)) || channel_full(req, global.tune.maxrewrite) || si_rx_blocked_room(chn_prod(req)) || !s->be->tcp_req.inspect_delay || tick_is_expired(s->rules_exp, now_ms)) partial = SMP_OPT_FINAL; @@ -268,7 +268,7 @@ int tcp_inspect_response(struct stream *s, struct channel *rep, int an_bit) * - if one rule returns OK, then return OK * - if one rule returns KO, then return KO */ - if ((rep->flags & CF_SHUTR) || channel_full(rep, global.tune.maxrewrite) || + if ((rep->flags & (CF_EOI|CF_SHUTR|CF_READ_ERROR)) || channel_full(rep, global.tune.maxrewrite) || si_rx_blocked_room(chn_prod(rep)) || !s->be->tcp_rep.inspect_delay || tick_is_expired(s->rules_exp, now_ms)) partial = SMP_OPT_FINAL;