27 lines
922 B
Diff
27 lines
922 B
Diff
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
|
|
|