From f8db73efbe5687624caa6b4b39e1619b78bf42d9 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 4 Jul 2019 17:12:12 +0200 Subject: [PATCH] BUG/MEDIUM: mux-h1: Handle TUNNEL state when outgoing messages are formatted 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 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mux_h1.c b/src/mux_h1.c index e0880e5e8..89d9b7b65 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -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) {