BUG/MINOR: stream-int: don't try to read again when CF_READ_DONTWAIT is set
Commit 9aaf778 ("MAJOR: connection : Split struct connection into struct
connection and struct conn_stream.") had to change the way the stream
interface deals with incoming data to accomodate the mux. A break
statement got lost during a change, leading to the receive call being
performed twice even when CF_READ_DONTWAIT is set. The most noticeable
effect is that it made the bug described in commit 33982cb ("BUG/MAJOR:
stream: ensure analysers are always called upon close") much easier to
reproduce as it would appear even with an HTTP frontend.
Let's just restore the stream-interface flag and the break here, as in
the previous code.
No backport is needed as this was introduced during 1.8-dev.
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 02c3be1..c2e3fff 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -1217,6 +1217,8 @@
* but we may have lost a worthwhile optimization.
*/
__cs_stop_recv(cs);
+ si->flags |= SI_FL_WAIT_ROOM;
+ break;
}
/* if too many bytes were missing from last read, it means that