From owner-freebsd-bugs Tue Jul 4 18:55:47 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from coconut.itojun.org (coconut.itojun.org [210.160.95.97]) by hub.freebsd.org (Postfix) with ESMTP id 45AD137B955 for ; Tue, 4 Jul 2000 18:55:41 -0700 (PDT) (envelope-from itojun@itojun.org) Received: from kiwi.itojun.org (localhost.itojun.org [127.0.0.1]) by coconut.itojun.org (8.9.3+3.2W/3.7W) with ESMTP id KAA26453; Wed, 5 Jul 2000 10:54:08 +0900 (JST) To: sam@inf.enst.fr Cc: bugs@freebsd.org Subject: kern/17909 X-Template-Reply-To: itojun@itojun.org X-Template-Return-Receipt-To: itojun@itojun.org X-PGP-Fingerprint: F8 24 B4 2C 8C 98 57 FD 90 5F B4 60 79 54 16 E2 From: itojun@iijlab.net Date: Wed, 05 Jul 2000 10:54:08 +0900 Message-ID: <26451.962762048@coconut.itojun.org> Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org about this problem: http://www.FreeBSD.org/cgi/query-pr.cgi?pr=17909 does the patch (against latest freebsd-current) solve the problem? itojun Index: if.c =================================================================== RCS file: /home/ncvs/src/sys/net/if.c,v retrieving revision 1.90 diff -c -r1.90 if.c *** if.c 2000/06/30 16:38:24 1.90 --- if.c 2000/07/05 01:51:19 *************** *** 63,68 **** --- 63,70 ---- #include #ifdef INET6 #include /* XXX: temporal workaround for fxp issue */ + #include + #include #endif #endif *************** *** 260,278 **** } #endif /* INET */ #ifdef INET6 - /* XXX: Ugly!! ad hoc just for INET6 */ if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET6) { ! struct in6_aliasreq ifr; ! ! bzero(&ifr, sizeof(ifr)); ! ifr.ifra_addr = ! *((struct sockaddr_in6 *)ifa->ifa_addr); ! if (ifa->ifa_dstaddr) ! ifr.ifra_dstaddr = ! *((struct sockaddr_in6 *)ifa->ifa_dstaddr); ! if (in6_control(NULL, SIOCDIFADDR_IN6, (caddr_t)&ifr, ! ifp, NULL) == 0) ! continue; } #endif /* INET6 */ TAILQ_REMOVE(&ifp->if_addrhead, ifa, ifa_link); --- 262,271 ---- } #endif /* INET */ #ifdef INET6 if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET6) { ! in6_purgeaddr(ifa, ifp); ! /* ifp_addrhead is already updated */ ! continue; } #endif /* INET6 */ TAILQ_REMOVE(&ifp->if_addrhead, ifa, ifa_link); *************** *** 290,295 **** --- 283,293 ---- continue; (void) rnh->rnh_walktree(rnh, if_rtdel, ifp); } + + #ifdef INET6 + /* nuke all IPv6 kernel structs related to ifp */ + in6_ifdetach(ifp); + #endif TAILQ_REMOVE(&ifnet, ifp, if_link); splx(s); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message