]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Increase listen() backlog queue to 32
authorGert Doering <gert@greenie.muc.de>
Thu, 15 Aug 2019 15:53:19 +0000 (17:53 +0200)
committerGert Doering <gert@greenie.muc.de>
Fri, 16 Aug 2019 18:09:14 +0000 (20:09 +0200)
For reasons historically unknown, OpenVPN sets the listen() backlog
queue to "1", which signals the kernel "while there is one TCP connect
waiting for OpenVPN to handle it, refuse all others" - which, on
restarting a busy TCP server, will create connection issues.

The exact "best" value of the backlog queue is subject of discussion,
but for a server that is not extremely busy with many connections
coming in in parallel, there is no real difference between "10" or "500",
as long as it's "more than 1".

Found and debugged by "mjo" in Trac.

Trac: #1208

Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: Antonio Quartulli <antonio@openvpn.net>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <20190815155319.28249-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg18758.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/socket.c

index c472cf1b2b16fbd51df93ff8a8af1b727730a103..983ed38a69ce531a0193de602ddd0fc73ec6c43d 100644 (file)
@@ -1175,7 +1175,7 @@ socket_do_listen(socket_descriptor_t sd,
         ASSERT(local);
         msg(M_INFO, "Listening for incoming TCP connection on %s",
             print_sockaddr(local->ai_addr, &gc));
-        if (listen(sd, 1))
+        if (listen(sd, 32))
         {
             msg(M_ERR, "TCP: listen() failed");
         }