diff --git a/src/stream_interface.c b/src/stream_interface.c index 1d67c31b2..e56a7c135 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);