diff options
author | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-04-20 09:07:43 +0000 |
---|---|---|
committer | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-04-20 09:07:43 +0000 |
commit | f705daffce69cba3aa82a487243eeff765b96a7e (patch) | |
tree | 026ba002492f25746b0cd2e445af54308feafa6d /sys/net/route.c | |
parent | a233a9c1e997de5f900dcd9303f3992d9826ef6c (diff) |
Do not treat loopback interfaces as p2p interfaces and create only
one route to "::1".
Due to a clever BSD trick, the `ifa_dstaddr` field of addresses on
IFF_LOOPBACK ifps is set to the same value that `ifa_addr`. That's
why filtering for broadcast addresses is so complicated, because
guess what, `ifa_broadaddr` is the same as `ifa_dstaddr`!
Sadly our IPv6 code was "only" checking for `ifa_dstaddr` without
looking if the ifa was attached to a IFF_POINTOTPOINT interface.
So it always tried to create two routes to "::1" and, with the
recent RTF_LOCAL work, succeed.
You should now have only one local route to "::1".
::1 ::1 UHl 14 0 32768 1 lo0
-::1 ::1 UH 0 0 32768 4 lo0
ok henning@
Diffstat (limited to 'sys/net/route.c')
0 files changed, 0 insertions, 0 deletions