]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: mux_h1: Don't call h1_send if we subscribed().
authorOlivier Houchard <cognet@ci0.org>
Wed, 15 Jan 2020 18:13:32 +0000 (19:13 +0100)
committerOlivier Houchard <cognet@ci0.org>
Wed, 15 Jan 2020 18:13:32 +0000 (19:13 +0100)
In h1_snd_buf(), only attempt to call h1_send() if we haven't
already subscribed.
It makes no sense to do it if we subscribed, as we know we failed
to send before, and will create a useless call to sendto(), and
in 2.2, the call to raw_sock_from_buf() will disable polling if
it is enabled.

This should be backported to 2.2, 2.1, 2.0 and 1.9.

src/mux_h1.c

index e68b50c927343f2a42421503da869843c5934924..59446d19442f469bb7d9c26746bf54612158254f 100644 (file)
@@ -2672,7 +2672,7 @@ static size_t h1_snd_buf(struct conn_stream *cs, struct buffer *buf, size_t coun
                        break;
                total += ret;
                count -= ret;
-               if (!h1_send(h1c))
+               if ((h1c->wait_event.events & SUB_RETRY_SEND) || !h1_send(h1c))
                        break;
        }