summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2013-11-17 15:14:07 +0000
committerglebius <glebius@FreeBSD.org>2013-11-17 15:14:07 +0000
commit5e103a98ba20aaea4a487dc3aebba33a4210776c (patch)
tree321f1b92fb32145c844e5ba936894d65e52d7f08 /sys/netinet
parentf754a8eebe1b02160a6c87a32d19015174ff2eca (diff)
downloadFreeBSD-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.c4
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);
OpenPOWER on IntegriCloud