Blob Blame History Raw
From e677018004a41a1895a44fca88a6ff2323093064 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
Date: Fri, 10 Jan 2014 00:21:07 +0200
Subject: [PATCH] Allow binding to a listen address that doesn't exist yet

---
 src/daemon.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/daemon.c b/src/daemon.c
index 3e211f2..ee836e5 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -98,6 +98,9 @@ void daemon_open_sockets(void)
     /* Allow local port reuse in TIME_WAIT */
     setsockopt(sks_serv[sks_serv_num], SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
 
+    /* Allow binding to a listen address that doesn't exist yet */
+    setsockopt(sks_serv[sks_serv_num], SOL_IP, IP_FREEBIND, &on, sizeof(on));
+
     /* Now we've got a socket - we need to bind it. */
     if (bind(sks_serv[sks_serv_num], resp->ai_addr, resp->ai_addrlen) < 0) {
       /* Nope, try another */
-- 
1.8.3.1