summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6_pcb.c8
-rw-r--r--sys/netinet6/nd6.c4
-rw-r--r--sys/netinet6/nd6.h2
3 files changed, 6 insertions, 8 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index 417ad0c..a82ab84 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -980,15 +980,13 @@ in6_losing(in6p)
if ((rt = in6p->in6p_route.ro_rt) != NULL) {
bzero((caddr_t)&info, sizeof(info));
- info.rti_info[RTAX_DST] =
- (struct sockaddr *)&in6p->in6p_route.ro_dst;
+ info.rti_flags = rt->rt_flags;
+ info.rti_info[RTAX_DST] = rt_key(rt);
info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
info.rti_info[RTAX_NETMASK] = rt_mask(rt);
rt_missmsg(RTM_LOSING, &info, rt->rt_flags, 0);
if (rt->rt_flags & RTF_DYNAMIC)
- (void)rtrequest(RTM_DELETE, rt_key(rt),
- rt->rt_gateway, rt_mask(rt), rt->rt_flags,
- (struct rtentry **)0);
+ (void)rtrequest1(RTM_DELETE, &info, NULL);
in6p->in6p_route.ro_rt = NULL;
rtfree(rt);
/*
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c
index 6fa087a..2dd1758 100644
--- a/sys/netinet6/nd6.c
+++ b/sys/netinet6/nd6.c
@@ -1085,10 +1085,10 @@ nd6_nud_hint(rt, dst6, force)
}
void
-nd6_rtrequest(req, rt, sa)
+nd6_rtrequest(req, rt, info)
int req;
struct rtentry *rt;
- struct sockaddr *sa; /* xxx unused */
+ struct rt_addrinfo *info; /* xxx unused */
{
struct sockaddr *gate = rt->rt_gateway;
struct llinfo_nd6 *ln = (struct llinfo_nd6 *)rt->rt_llinfo;
diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h
index a2b3423..f3c17be 100644
--- a/sys/netinet6/nd6.h
+++ b/sys/netinet6/nd6.h
@@ -353,7 +353,7 @@ struct llinfo_nd6 *nd6_free __P((struct rtentry *));
void nd6_nud_hint __P((struct rtentry *, struct in6_addr *, int));
int nd6_resolve __P((struct ifnet *, struct rtentry *,
struct mbuf *, struct sockaddr *, u_char *));
-void nd6_rtrequest __P((int, struct rtentry *, struct sockaddr *));
+void nd6_rtrequest __P((int, struct rtentry *, struct rt_addrinfo *));
int nd6_ioctl __P((u_long, caddr_t, struct ifnet *));
struct rtentry *nd6_cache_lladdr __P((struct ifnet *, struct in6_addr *,
char *, int, int, int));
OpenPOWER on IntegriCloud