summaryrefslogtreecommitdiffstats
path: root/usr.sbin/eigrpd/packet.c
diff options
context:
space:
mode:
authorrenato <renato@openbsd.org>2015-10-10 05:03:39 +0000
committerrenato <renato@openbsd.org>2015-10-10 05:03:39 +0000
commit46ee012950e04dceb806b2c17f695628fbd9e186 (patch)
treeff38056c230f58bb7de44fcfbb54cfe2aafc2bef /usr.sbin/eigrpd/packet.c
parentrelayctl pledges to use stdio only (diff)
downloadwireguard-openbsd-46ee012950e04dceb806b2c17f695628fbd9e186.tar.xz
wireguard-openbsd-46ee012950e04dceb806b2c17f695628fbd9e186.zip
Fix detection of interface up/down events.
Diffstat (limited to 'usr.sbin/eigrpd/packet.c')
-rw-r--r--usr.sbin/eigrpd/packet.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/usr.sbin/eigrpd/packet.c b/usr.sbin/eigrpd/packet.c
index 27a5f9e5c30..05a57f6db1e 100644
--- a/usr.sbin/eigrpd/packet.c
+++ b/usr.sbin/eigrpd/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.3 2015/10/04 23:08:57 renato Exp $ */
+/* $OpenBSD: packet.c,v 1.4 2015/10/10 05:03:39 renato Exp $ */
/*
* Copyright (c) 2015 Renato Westphal <renato@openbsd.org>
@@ -707,10 +707,13 @@ find_iface(unsigned int ifindex, int af, union eigrpd_addr *src)
* addresses for the subnet as known to the local router."
*/
TAILQ_FOREACH(if_addr, &iface->addr_list, entry) {
- mask = prefixlen2mask(if_addr->prefixlen);
- if ((if_addr->addr.v4.s_addr & mask) ==
- (src->v4.s_addr & mask))
- return (iface);
+ if (if_addr->af == AF_INET) {
+ mask = prefixlen2mask(if_addr->prefixlen);
+
+ if ((if_addr->addr.v4.s_addr & mask) ==
+ (src->v4.s_addr & mask))
+ return (iface);
+ }
}
break;
case AF_INET6: