From 56df03c88e3ea926527a5e6830d097602fa2d8cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Vavru=C5=A1a?= <marek.vavrusa@nic.cz>
Date: Fri, 16 May 2014 14:42:51 +0200
Subject: [PATCH] Fix in SO_REUSEPORT usage.

Signed-off-by: Jan Kadlec <jan.kadlec@nic.cz>
---
 src/knot/server/server.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/knot/server/server.c b/src/knot/server/server.c
index 3781abc35..679a2b812 100644
--- a/src/knot/server/server.c
+++ b/src/knot/server/server.c
@@ -116,12 +116,16 @@ static int server_init_iface(iface_t *new_if, conf_iface_t *cfg_if)
 	char addr_str[SOCKADDR_STRLEN] = {0};
 	sockaddr_tostr(&cfg_if->addr, addr_str, sizeof(addr_str));
 
+#if defined(SO_REUSEPORT)
+	/* Each thread binds own socket. */
+	int sock = -1;
+#else
 	/* Create bound UDP socket. */
 	int sock = net_bound_socket(SOCK_DGRAM, &cfg_if->addr);
 	if (sock < 0) {
 		return sock;
 	}
-
+#endif
 	new_if->fd[IO_UDP] = sock;
 
 	/* Create bound TCP socket. */
-- 
GitLab