From ecb4d3d05f89eabc8020bb6563d903164e3002a1 Mon Sep 17 00:00:00 2001 From: ru Date: Wed, 17 Oct 2001 18:07:05 +0000 Subject: Pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2. Have sys/net/route.c:rtrequest1(), which takes ``rt_addrinfo *'' as the argument. Pass rt_addrinfo all the way down to rtrequest1 and ifa->ifa_rtrequest. 3rd argument of ifa->ifa_rtrequest is now ``rt_addrinfo *'' instead of ``sockaddr *'' (almost noone is using it anyways). Benefit: the following command now works. Previously we needed two route(8) invocations, "add" then "change". # route add -inet6 default ::1 -ifp gif0 Remove unsafe typecast in rtrequest(), from ``rtentry *'' to ``sockaddr *''. It was introduced by 4.3BSD-Reno and never corrected. Obtained from: BSD/OS, NetBSD MFC after: 1 month PR: kern/28360 --- sys/net/if_disc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/net/if_disc.c') diff --git a/sys/net/if_disc.c b/sys/net/if_disc.c index c04c6c2..fbabf30 100644 --- a/sys/net/if_disc.c +++ b/sys/net/if_disc.c @@ -66,7 +66,7 @@ static void discattach(void); static struct ifnet discif; static int discoutput(struct ifnet *, struct mbuf *, struct sockaddr *, struct rtentry *); -static void discrtrequest(int, struct rtentry *, struct sockaddr *); +static void discrtrequest(int, struct rtentry *, struct rt_addrinfo *); static int discioctl(struct ifnet *, u_long, caddr_t); static void @@ -151,7 +151,7 @@ discoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, /* ARGSUSED */ static void -discrtrequest(int cmd, struct rtentry *rt, struct sockaddr *sa) +discrtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info) { if (rt) rt->rt_rmx.rmx_mtu = DSMTU; -- cgit v1.1