]> git.ipfire.org Git - fireperf.git/commitdiff
server: Make listening sockets reusable
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 4 Feb 2021 14:50:36 +0000 (14:50 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 4 Feb 2021 14:50:36 +0000 (14:50 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/server.c

index e2585c36e6b4b3cc41ebd2b28a301d1c5005b15c..d7adda49c845074ab3821fbe49d607ab64680582 100644 (file)
@@ -43,8 +43,16 @@ static int create_socket(struct fireperf_config* conf, int i) {
                goto ERROR;
        }
 
+       int flags = 1;
+       r = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &flags, sizeof(flags));
+       if (r) {
+               ERROR(conf, "Could not set SO_REUSEPORT on socket %d: %s\n",
+                       fd, strerror(errno));
+               goto ERROR;
+       }
+
        // Set receive buffer size
-       int flags = SOCKET_RECV_BUFFER_SIZE;
+       flags = SOCKET_RECV_BUFFER_SIZE;
        r = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (void*)&flags, sizeof(flags));
        if (r) {
                ERROR(conf, "Could not set receive buffer size on socket %d: %s\n",