From: Christopher Faulet Date: Tue, 17 Apr 2018 12:33:47 +0000 (+0200) Subject: BUG/MEDIUM: stream_int: Don't check CO_FL_SOCK_RD_SH flag to trigger cs receive X-Git-Tag: v1.9-dev2~180 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c42eacbe9cde1fd13834a9646ba1bf733242b97;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: stream_int: Don't check CO_FL_SOCK_RD_SH flag to trigger cs receive It is mandatory to be sure to process data blocked in the RX buffer of the conn_stream while the shutr/read0 was already processed. The stream interface doesn't need to rely on this flags because it already tests CS_FL_EOS. --- diff --git a/src/stream_interface.c b/src/stream_interface.c index 1d67c31b2e..e56a7c135e 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -1235,7 +1235,7 @@ static void si_cs_recv_cb(struct conn_stream *cs) * that if such an event is not handled above in splice, it will be handled here by * recv(). */ - while (!(conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_WAIT_ROOM | CO_FL_HANDSHAKE)) && + while (!(conn->flags & (CO_FL_ERROR | CO_FL_WAIT_ROOM | CO_FL_HANDSHAKE)) && !(cs->flags & (CS_FL_ERROR|CS_FL_EOS)) && !(ic->flags & CF_SHUTR)) { max = channel_recv_max(ic);