From: Olivier Houchard Date: Fri, 26 Jul 2019 12:54:34 +0000 (+0200) Subject: BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send. X-Git-Tag: v2.1-dev2~280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7859526fd6ce7ea33e20b7e532b21aa2465cb11d;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send. In sess_established(), don't immediately switch the backend stream_interface to SI_ST_DIS if we only got a SHUTR. We may still have something to send, ie if the request is a POST, and we should be switched to SI_ST8DIS later when the shutw will happen. This should be backported to 2.0 and 1.9. --- diff --git a/src/stream.c b/src/stream.c index 80120d0ef1..b22eef2280 100644 --- a/src/stream.c +++ b/src/stream.c @@ -944,8 +944,9 @@ static void sess_establish(struct stream *s) si_chk_rcv(si); } req->wex = TICK_ETERNITY; - /* If we managed to get the whole response, switch to SI_ST_DIS now. */ - if (rep->flags & CF_SHUTR) + /* If we managed to get the whole response, and we don't have anything + * left to send, or can't, switch to SI_ST_DIS now. */ + if (rep->flags & (CF_SHUTR | CF_SHUTW)) si->state = SI_ST_DIS; }