From adbdb5b2e389cc8c3aef5e801dbc6b5636f3e522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sun, 9 Oct 2016 19:29:19 +0000 Subject: [PATCH] Trying SO_RESUSEPORT --- lib/network.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/network.cpp b/lib/network.cpp index 05c316eea..f3b2be55d 100644 --- a/lib/network.cpp +++ b/lib/network.cpp @@ -16,8 +16,14 @@ int listen_on_port(char *ip, uint16_t port, int backlog) { return -1; } +#ifdef SO_REUSEPORT + // set SO_REUSEADDR and SO_REUSEPORT + rc = setsockopt(sd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, (char *)&arg_on, sizeof(arg_on)); +#else // set SO_REUSEADDR rc = setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char *)&arg_on, sizeof(arg_on)); +#endif /* SO_REUSEPORT */ + if (rc < 0) { proxy_error("setsockopt() failed\n"); }