[PATCH 1/2] IAPP: Set SO_REUSEPORT on listening socket
Petko Bordjukov
bordjukov at gmail.com
Tue Nov 10 10:17:13 PST 2015
Make it possible for several instances of hostapd to listen on the same
network interface.
Signed-off-by: Petko Bordjukov <bordjukov at gmail.com>
---
src/ap/iapp.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/ap/iapp.c b/src/ap/iapp.c
index 99aa04d..61776d8 100644
--- a/src/ap/iapp.c
+++ b/src/ap/iapp.c
@@ -385,6 +385,7 @@ struct iapp_data * iapp_init(struct hostapd_data *hapd, const char *iface)
struct sockaddr_in *paddr, uaddr;
struct iapp_data *iapp;
struct ip_mreqn mreq;
+ int reuseport = 1;
iapp = os_zalloc(sizeof(*iapp));
if (iapp == NULL)
@@ -447,6 +448,15 @@ struct iapp_data * iapp_init(struct hostapd_data *hapd, const char *iface)
os_memset(&uaddr, 0, sizeof(uaddr));
uaddr.sin_family = AF_INET;
uaddr.sin_port = htons(IAPP_UDP_PORT);
+
+ if (setsockopt(iapp->udp_sock, SOL_SOCKET, SO_REUSEPORT, &reuseport,
+ sizeof(reuseport)) < 0) {
+ wpa_printf(MSG_INFO, "iapp_init - setsockopt[UDP,SO_REUSEPORT]: %s",
+ strerror(errno));
+ iapp_deinit(iapp);
+ return NULL;
+ }
+
if (bind(iapp->udp_sock, (struct sockaddr *) &uaddr,
sizeof(uaddr)) < 0) {
wpa_printf(MSG_INFO, "iapp_init - bind[UDP]: %s",
--
2.6.2
More information about the Hostap
mailing list