]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux-h1: do not even try to receive if the connection is not fully set up
authorWilly Tarreau <w@1wt.eu>
Fri, 31 Jul 2020 07:15:43 +0000 (09:15 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 31 Jul 2020 07:30:12 +0000 (09:30 +0200)
If the connection is still waiting for L4/L6, there's no point even trying
to receive as it will fail, so better return zero in h1_recv_allowed().

src/mux_h1.c

index b3fa8f505f2302aa180553fdefb0cd8a907d5f2f..ea52119a9fe5f161418ad7a53a348bd34205145f 100644 (file)
@@ -363,8 +363,8 @@ static inline int h1_recv_allowed(const struct h1c *h1c)
                return 0;
        }
 
-       if (h1c->conn->flags & (CO_FL_ERROR|CO_FL_SOCK_RD_SH)) {
-               TRACE_DEVEL("recv not allowed because of (error|read0) on connection", H1_EV_H1C_RECV|H1_EV_H1C_BLK, h1c->conn);
+       if (h1c->conn->flags & (CO_FL_ERROR|CO_FL_SOCK_RD_SH|CO_FL_WAIT_L4_CONN|CO_FL_WAIT_L6_CONN)) {
+               TRACE_DEVEL("recv not allowed because of (error|read0|waitl4|waitl6) on connection", H1_EV_H1C_RECV|H1_EV_H1C_BLK, h1c->conn);
                return 0;
        }