summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Obser <florian@cvs.openbsd.org>2018-08-15 16:48:21 +0000
committerFlorian Obser <florian@cvs.openbsd.org>2018-08-15 16:48:21 +0000
commit1dcf94a14563174a0ac06fcdb6445ba20555cd06 (patch)
treedb578df1c99e2f380b84a618f934ac3ed68a2691
parenta16c7ea098fed0b4d92658c4f10d93d76bc2ec22 (diff)
SIOCGIFNETMASK_IN6 failing just means that someone delete the address
we are currently looking at. No need to fatal. Found the hard way by naddy
-rw-r--r--usr.sbin/rad/frontend.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/rad/frontend.c b/usr.sbin/rad/frontend.c
index 0a5a982ba9e..c452a845fd3 100644
--- a/usr.sbin/rad/frontend.c
+++ b/usr.sbin/rad/frontend.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: frontend.c,v 1.15 2018/08/03 13:14:46 florian Exp $ */
+/* $OpenBSD: frontend.c,v 1.16 2018/08/15 16:48:20 florian Exp $ */
/*
* Copyright (c) 2018 Florian Obser <florian@openbsd.org>
@@ -828,7 +828,7 @@ get_interface_prefixes(struct ra_iface *ra_iface, struct ra_prefix_conf
memcpy(&ifr6.ifr_addr, sin6, sizeof(ifr6.ifr_addr));
if (ioctl(ioctlsock, SIOCGIFNETMASK_IN6, (caddr_t)&ifr6) < 0)
- fatal("SIOCGIFNETMASK_IN6");
+ continue; /* addr got deleted while we were looking */
prefixlen = in6_mask2prefixlen(&((struct sockaddr_in6 *)
&ifr6.ifr_addr)->sin6_addr);