commit b017f90846947a2bcddc7ae2b0fbd9c8252e44a8
parent 70359ae2e9252954684a68f624f0d6218c520be9
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 30 Nov 2014 14:47:26 +0100
bind: re-use address, setsockopt SO_REUSEADDR
Diffstat:
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git 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 */