diff options
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/if_atm.c | 6 | ||||
-rw-r--r-- | sys/netinet/if_atm.h | 2 | ||||
-rw-r--r-- | sys/netinet/if_ether.c | 6 | ||||
-rw-r--r-- | sys/netinet/in_pcb.c | 10 |
4 files changed, 11 insertions, 13 deletions
diff --git a/sys/netinet/if_atm.c b/sys/netinet/if_atm.c index 04b49bf..83fe027 100644 --- a/sys/netinet/if_atm.c +++ b/sys/netinet/if_atm.c @@ -71,14 +71,14 @@ * atm_rtrequest: handle ATM rt request (in support of generic code) * inputs: "req" = request code * "rt" = route entry - * "sa" = sockaddr + * "info" = rt_addrinfo */ void -atm_rtrequest(req, rt, sa) +atm_rtrequest(req, rt, info) int req; register struct rtentry *rt; - struct sockaddr *sa; + struct rt_addrinfo *info; { register struct sockaddr *gate = rt->rt_gateway; struct atm_pseudoioctl api; diff --git a/sys/netinet/if_atm.h b/sys/netinet/if_atm.h index b448253..8603825 100644 --- a/sys/netinet/if_atm.h +++ b/sys/netinet/if_atm.h @@ -42,6 +42,6 @@ struct mbuf; struct rtentry; struct sockaddr; -void atm_rtrequest __P((int, struct rtentry *, struct sockaddr *)); +void atm_rtrequest __P((int, struct rtentry *, struct rt_addrinfo *)); int atmresolve __P((struct rtentry *, struct mbuf *, struct sockaddr *, struct atm_pseudohdr *)); diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index dc662a8..1b654f4 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -116,7 +116,7 @@ SYSCTL_INT(_net_link_ether_inet, OID_AUTO, proxyall, CTLFLAG_RW, &arp_proxyall, 0, ""); static void arp_init __P((void)); -static void arp_rtrequest __P((int, struct rtentry *, struct sockaddr *)); +static void arp_rtrequest __P((int, struct rtentry *, struct rt_addrinfo *)); static void arprequest __P((struct ifnet *, struct in_addr *, struct in_addr *, u_char *)); static void arpintr __P((void)); @@ -154,10 +154,10 @@ arptimer(ignored_arg) * Parallel to llc_rtrequest. */ static void -arp_rtrequest(req, rt, sa) +arp_rtrequest(req, rt, info) int req; register struct rtentry *rt; - struct sockaddr *sa; + struct rt_addrinfo *info; { register struct sockaddr *gate = rt->rt_gateway; register struct llinfo_arp *la = (struct llinfo_arp *)rt->rt_llinfo; diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 2725e80..8c0109f 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -738,16 +738,14 @@ in_losing(inp) if ((rt = inp->inp_route.ro_rt)) { bzero((caddr_t)&info, sizeof(info)); - info.rti_info[RTAX_DST] = - (struct sockaddr *)&inp->inp_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); - inp->inp_route.ro_rt = 0; + (void) rtrequest1(RTM_DELETE, &info, NULL); + inp->inp_route.ro_rt = NULL; rtfree(rt); /* * A new route can be allocated |