diff options
author | 2015-10-10 05:03:39 +0000 | |
---|---|---|
committer | 2015-10-10 05:03:39 +0000 | |
commit | 46ee012950e04dceb806b2c17f695628fbd9e186 (patch) | |
tree | ff38056c230f58bb7de44fcfbb54cfe2aafc2bef /usr.sbin/eigrpd/packet.c | |
parent | relayctl pledges to use stdio only (diff) | |
download | wireguard-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.c | 13 |
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: |