diff options
author | 2001-01-18 06:48:25 +0000 | |
---|---|---|
committer | 2001-01-18 06:48:25 +0000 | |
commit | fc63e37c45015311ba4b6f2d6f22c06e2c922a0d (patch) | |
tree | 0cab5d81aba72e76e01ece525c5503dc6d8fe46e | |
parent | workaround; be sure to initialize nd6 interface information when IPv6 (diff) | |
download | wireguard-openbsd-fc63e37c45015311ba4b6f2d6f22c06e2c922a0d.tar.xz wireguard-openbsd-fc63e37c45015311ba4b6f2d6f22c06e2c922a0d.zip |
do not remove default route by mistake, on interface removal.
-rw-r--r-- | sys/netinet6/in6_ifattach.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 011ca6b9b61..09e48542cf4 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -1,4 +1,4 @@ -/* $OpenBSD: in6_ifattach.c,v 1.13 2000/10/25 22:01:02 jason Exp $ */ +/* $OpenBSD: in6_ifattach.c,v 1.14 2001/01/18 06:48:25 itojun Exp $ */ /* $KAME: in6_ifattach.c,v 1.68 2000/10/18 18:44:24 itojun Exp $ */ /* @@ -889,7 +889,8 @@ in6_ifdetach(ifp) sin6.sin6_family = AF_INET6; sin6.sin6_addr = in6addr_linklocal_allnodes; sin6.sin6_addr.s6_addr16[1] = htons(ifp->if_index); - if ((rt = rtalloc1((struct sockaddr *)&sin6, 0)) != NULL) { + rt = rtalloc1((struct sockaddr *)&sin6, 0); + if (rt && rt->rt_ifp == ifp) { rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0); rtfree(rt); |