commit b017f90846947a2bcddc7ae2b0fbd9c8252e44a8
Author: Hiltjo Posthuma <[email protected]>
Date:   Sun Nov 30 14:47:26 2014 +0100

    bind: re-use address, setsockopt SO_REUSEADDR

diff --git a/quark.c b/quark.c
index 7a40d6a..08a8668 100644
--- a/quark.c
+++ b/quark.c
@@ -514,7 +514,7 @@ invalid_request:
 void
 serve(int fd)
 {
-       int result;
+       int result, optval;
        struct timeval tv;
        socklen_t salen;
        struct sockaddr sa;
@@ -541,6 +541,11 @@ serve(int fd)
                                          host, sizeof host);
                                break;
                        }
+                       /* bind: re-use address */
+                       optval = 1;
+                       if (setsockopt(req.fd, SOL_SOCKET, SO_REUSEADDR, 
&optval, sizeof(optval)) < 0)
+                               logerrmsg("error\tsetsockopt SO_REUSEADDR 
failed: %s\n",
+                                         strerror(errno));
 
                        /* If we haven't received any data within this period, 
close the
                         * socket to avoid spamming the process table */


Reply via email to