summaryrefslogtreecommitdiff
path: root/net/openntpd/files/patch-src_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/openntpd/files/patch-src_server.c')
-rw-r--r--net/openntpd/files/patch-src_server.c51
1 files changed, 40 insertions, 11 deletions
diff --git a/net/openntpd/files/patch-src_server.c b/net/openntpd/files/patch-src_server.c
index 52e37f601d9f..8fde14f99608 100644
--- a/net/openntpd/files/patch-src_server.c
+++ b/net/openntpd/files/patch-src_server.c
@@ -1,23 +1,28 @@
---- src/server.c.orig 2016-03-28 13:51:51 UTC
+--- src/server.c.orig 2016-05-30 22:50:02 UTC
+++ src/server.c
-@@ -36,14 +36,14 @@ setup_listeners(struct servent *se, stru
+@@ -35,8 +35,8 @@ setup_listeners(struct servent *se, stru
+ struct listen_addr *la, *nla, *lap;
struct ifaddrs *ifa, *ifap;
struct sockaddr *sa;
- #ifdef SO_RTABLE
+-#ifdef SO_RTABLE
- struct if_data *ifd;
++#ifdef SO_SETFIB
+ struct ifreq ifr;
#endif
u_int8_t *a6;
size_t sa6len = sizeof(struct in6_addr);
- u_int new_cnt = 0;
- int tos = IPTOS_LOWDELAY;
- #ifdef SO_RTABLE
+@@ -45,8 +45,8 @@ setup_listeners(struct servent *se, stru
+ #ifdef IPV6_V6ONLY
+ int on = 1;
+ #endif
+-#ifdef SO_RTABLE
- int rdomain = 0;
++#ifdef SO_SETFIB
+ int rdomain, fd;
#endif
TAILQ_FOREACH(lap, &lconf->listen_addrs, entry) {
-@@ -56,16 +56,21 @@ setup_listeners(struct servent *se, stru
+@@ -59,16 +59,20 @@ setup_listeners(struct servent *se, stru
sa = ifap->ifa_addr;
if (sa == NULL || SA_LEN(sa) == 0)
continue;
@@ -30,18 +35,42 @@
if (sa->sa_family != AF_INET &&
sa->sa_family != AF_INET6)
continue;
- #ifdef SO_RTABLE
+-#ifdef SO_RTABLE
++#ifdef SO_SETFIB
+ strlcpy(ifr.ifr_name, ifap->ifa_name,
+ sizeof(ifr.ifr_name));
+
+ fd = socket(AF_INET, SOCK_DGRAM, 0);
-+ if (ioctl(fd, SIOCGIFRDOMAIN,
-+ (caddr_t)&ifr) == -1)
++ if (ioctl(fd, SIOCGIFFIB, (caddr_t)&ifr) == -1)
+ rdomain = 0;
+ else
-+ rdomain = ifr.ifr_rdomainid;
++ rdomain = ifr.ifr_fib;
+ close(fd);
+
if (lap->rtable != -1 && rdomain != lap->rtable)
continue;
#endif
+@@ -90,7 +94,7 @@ setup_listeners(struct servent *se, stru
+ fatal("setup_listeners calloc");
+
+ memcpy(&la->sa, sa, SA_LEN(sa));
+-#ifdef SO_RTABLE
++#ifdef SO_SETFIB
+ la->rtable = rdomain;
+ #endif
+
+@@ -143,11 +147,11 @@ setup_listeners(struct servent *se, stru
+ log_warn("setsockopt IPV6_V6ONLY");
+ #endif
+
+-#ifdef SO_RTABLE
++#ifdef SO_SETFIB
+ if (la->rtable != -1 &&
+- setsockopt(la->fd, SOL_SOCKET, SO_RTABLE, &la->rtable,
++ setsockopt(la->fd, SOL_SOCKET, SO_SETFIB, &la->rtable,
+ sizeof(la->rtable)) == -1)
+- fatal("setup_listeners setsockopt SO_RTABLE");
++ fatal("setup_listeners setsockopt SO_SETFIB");
+ #endif
+
+ if (bind(la->fd, (struct sockaddr *)&la->sa,