mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-28 17:21:32 +02:00
BUG/MEDIUM: stream_interface: Make REALLY sure we read all the data.
In si_cs_recv(), try inconditionally to recv as long as the CS_FL_RCV_MORE is set on the conn_stream, or we will miss some data.
This commit is contained in:
parent
6e54095d0a
commit
c490efd625
@ -1203,8 +1203,9 @@ int si_cs_recv(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_WAIT_ROOM | CO_FL_HANDSHAKE)) &&
|
||||
(!(cs->flags & (CS_FL_ERROR|CS_FL_EOS)) || (cs->flags & CS_FL_RCV_MORE)) && !(ic->flags & CF_SHUTR)) {
|
||||
while ((cs->flags & CS_FL_RCV_MORE) ||
|
||||
(!(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> may be null. This is the mux responsibility to set
|
||||
* CS_FL_RCV_MORE on the CS if more space is needed.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user