diff options
author | glebius <glebius@FreeBSD.org> | 2013-11-17 15:14:07 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2013-11-17 15:14:07 +0000 |
commit | 5e103a98ba20aaea4a487dc3aebba33a4210776c (patch) | |
tree | 321f1b92fb32145c844e5ba936894d65e52d7f08 /sys/netinet | |
parent | f754a8eebe1b02160a6c87a32d19015174ff2eca (diff) | |
download | FreeBSD-src-5e103a98ba20aaea4a487dc3aebba33a4210776c.zip FreeBSD-src-5e103a98ba20aaea4a487dc3aebba33a4210776c.tar.gz |
In r257692 I intentionally deleted code that handled P2P interfaces
with equal addresses on both sides. It appeared that OpenVPN uses
such configutations.
Submitted by: trociny
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/in.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 7689a74..4331e82 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -449,7 +449,9 @@ in_aifaddr_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, struct thread *td) * Add a loopback route to self. */ if (vhid == 0 && (ifp->if_flags & IFF_LOOPBACK) == 0 && - ia->ia_addr.sin_addr.s_addr != INADDR_ANY) { + ia->ia_addr.sin_addr.s_addr != INADDR_ANY && + !((ifp->if_flags & IFF_POINTOPOINT) && + ia->ia_dstaddr.sin_addr.s_addr == ia->ia_addr.sin_addr.s_addr)) { struct in_ifaddr *eia; eia = in_localip_more(ia); |