]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send.
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 26 Jul 2019 12:54:34 +0000 (14:54 +0200)
committerOlivier Houchard <cognet@ci0.org>
Fri, 26 Jul 2019 12:56:41 +0000 (14:56 +0200)
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.

src/stream.c

index 80120d0ef1195bf1e9de245aad84d3392535730a..b22eef2280ace49341b992b07c8c699adf5c0b74 100644 (file)
@@ -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;
 }