]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux_h1: Set H1_F_CO_MSG_MORE if we know we have more to send.
authorOlivier Houchard <cognet@ci0.org>
Fri, 19 Jun 2020 14:15:05 +0000 (16:15 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 19 Jun 2020 15:42:42 +0000 (17:42 +0200)
In h1_snd_buf(), also set H1_F_CO_MSG_MORE if we know we still have more to
send, not just if the stream-interface told us to do so. This may happen if
the last block of a transfer doesn't fit in the buffer, it remains useful
for the transport layer to know that more data follows what's already in
the buffer.

src/mux_h1.c

index 8bd43c99de20b16713cc605a60c87ec28b334892..ac76339cad1dd0d54f0325112088ad980a2e3121 100644 (file)
@@ -2734,6 +2734,10 @@ static size_t h1_snd_buf(struct conn_stream *cs, struct buffer *buf, size_t coun
                        ret = h1_process_output(h1c, buf, count);
                else
                        TRACE_DEVEL("h1c obuf not allocated", H1_EV_STRM_SEND|H1_EV_H1S_BLK, h1c->conn, h1s);
+
+               if ((count - ret) > 0)
+                       h1c->flags |= H1C_F_CO_MSG_MORE;
+
                if (!ret)
                        break;
                total += ret;