summaryrefslogtreecommitdiffstats
path: root/sys/net/route.h
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2001-10-17 18:07:05 +0000
committerru <ru@FreeBSD.org>2001-10-17 18:07:05 +0000
commitecb4d3d05f89eabc8020bb6563d903164e3002a1 (patch)
tree6e9f67b95d216263dd912c61fa5f86b94ce2d728 /sys/net/route.h
parentddef7c98c51d09f80ae57f4f83e00ee5b6e3ee72 (diff)
downloadFreeBSD-src-ecb4d3d05f89eabc8020bb6563d903164e3002a1.zip
FreeBSD-src-ecb4d3d05f89eabc8020bb6563d903164e3002a1.tar.gz
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
Diffstat (limited to 'sys/net/route.h')
-rw-r--r--sys/net/route.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/net/route.h b/sys/net/route.h
index ae3753b..1a38ceb 100644
--- a/sys/net/route.h
+++ b/sys/net/route.h
@@ -248,6 +248,9 @@ struct rt_msghdr {
struct rt_addrinfo {
int rti_addrs;
struct sockaddr *rti_info[RTAX_MAX];
+ int rti_flags;
+ struct ifaddr *rti_ifa;
+ struct ifnet *rti_ifp;
};
struct route_cb {
@@ -273,6 +276,7 @@ extern struct radix_node_head *rt_tables[AF_MAX+1];
struct ifmultiaddr;
void route_init __P((void));
+int rt_getifa __P((struct rt_addrinfo *));
void rt_ifmsg __P((struct ifnet *));
void rt_missmsg __P((int, struct rt_addrinfo *, int, int));
void rt_newaddrmsg __P((int, struct ifaddr *, int, struct rtentry *));
@@ -290,6 +294,7 @@ void rtredirect __P((struct sockaddr *, struct sockaddr *,
struct sockaddr *, int, struct sockaddr *, struct rtentry **));
int rtrequest __P((int, struct sockaddr *,
struct sockaddr *, struct sockaddr *, int, struct rtentry **));
+int rtrequest1 __P((int, struct rt_addrinfo *, struct rtentry **));
#endif
#endif
OpenPOWER on IntegriCloud