diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-12-07 22:50:55 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-12-29 21:41:34 +0100 |
commit | 484e03a6864c4476814acc93e5b810cb12fa994f (patch) | |
tree | 6a17a5ce90c2efdc84079781c9cb69fd41072c71 | |
parent | c32c3f88f0c8788118ed3701c11a5aea2aaf9356 (diff) | |
download | bird-484e03a6864c4476814acc93e5b810cb12fa994f.tar bird-484e03a6864c4476814acc93e5b810cb12fa994f.zip |
BSD: Correctly read numbered v6 addresses on ptp interfaces
When using IPv6, unnumbered interfaces can have numbered IP
addresses; one example are link-local addresses, which always
have a prefix length of 64.
-rw-r--r-- | sysdep/bsd/krt-sock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index 1647c5e..b70f166 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -544,7 +544,11 @@ krt_read_addr(struct ks_msg *msg) _I0(ifa.ip) = 0xfe800000; #endif +#ifdef IPV6 + if ((iface->flags & IF_MULTIACCESS) || (masklen != BITS_PER_IP_ADDRESS)) +#else if (iface->flags & IF_MULTIACCESS) +#endif { ifa.prefix = ipa_and(ifa.ip, ipa_mkmask(masklen)); |