--- src/sys/netinet6/nd6.c 2004/12/30 02:26:12 1.13 +++ src/sys/netinet6/nd6.c 2005/01/06 17:59:32 1.14 @@ -794,7 +794,10 @@ nd6_lookup(struct in6_addr *addr6, int c #ifdef SCOPEDROUTING sin6.sin6_scope_id = in6_addr2scopeid(ifp, addr6); #endif - rt = rtlookup((struct sockaddr *)&sin6, create, 0UL); + if (create) + rt = rtlookup((struct sockaddr *)&sin6); + else + rt = rtpurelookup((struct sockaddr *)&sin6); if (rt && !(rt->rt_flags & RTF_LLINFO)) { /* * This is the case for the default route. @@ -1851,8 +1854,7 @@ nd6_output(struct ifnet *ifp, struct ifn */ if (rt) { if (!(rt->rt_flags & RTF_UP)) { - if ((rt0 = rt = - rtlookup((struct sockaddr *)dst, 1, 0UL))) { + if ((rt0 = rt = rtlookup((struct sockaddr *)dst))) { rt->rt_refcnt--; if (rt->rt_ifp != ifp) { /* XXX: loop care? */ @@ -1891,8 +1893,7 @@ nd6_output(struct ifnet *ifp, struct ifn goto lookup; if (!(rt->rt_gwroute->rt_flags & RTF_UP)) { rtfree(rt->rt_gwroute); -lookup: rt->rt_gwroute = rtlookup(rt->rt_gateway, 1, - 0UL); +lookup: rt->rt_gwroute = rtlookup(rt->rt_gateway); if (rt->rt_gwroute == NULL) senderr(EHOSTUNREACH); }