]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: mux-h1: Handle TUNNEL state when outgoing messages are formatted
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 4 Jul 2019 15:12:12 +0000 (17:12 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 5 Jul 2019 12:26:15 +0000 (14:26 +0200)
Since the commit 94b2c7 ("MEDIUM: mux-h1: refactor output processing"), the
formatting of outgoing messages is performed on the message state and no more on
the HTX blocks read. But the TUNNEL state was left out. So, the HTTP tunneling
using the CONNECT method or switching the protocol (for instance,
the WebSocket) does not work.

This issue was reported on Github. See #131. This patch must be backported to
2.0.

src/mux_h1.c

index e0880e5e8d8dabfad167bddaa05bae2f386c6a78..89d9b7b6516ce7ac4d6e25da77e89ee25c515c00 100644 (file)
@@ -1693,6 +1693,7 @@ static size_t h1_process_output(struct h1c *h1c, struct buffer *buf, size_t coun
                                break;
 
                        case H1_MSG_DATA:
+                       case H1_MSG_TUNNEL:
                                if (type == HTX_BLK_EOM) {
                                        /* Chunked message without explicit trailers */
                                        if (h1m->flags & H1_MF_CHNK) {