diff options
author | 2016-06-14 09:48:52 +0000 | |
---|---|---|
committer | 2016-06-14 09:48:52 +0000 | |
commit | c535a47493415003e820ea86176e68c797cb063c (patch) | |
tree | 86d2784f586eac481c00e59ed98f0a38f54b8ae5 /sys | |
parent | Store the source address associated with a route in its own chunk of (diff) | |
download | wireguard-openbsd-c535a47493415003e820ea86176e68c797cb063c.tar.xz wireguard-openbsd-c535a47493415003e820ea86176e68c797cb063c.zip |
Pass the configured ``ifa'' to rt_sendaddrmsg() instead of getting it via
``rt->rt_ifa'' later.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/route.c | 6 | ||||
-rw-r--r-- | sys/net/route.h | 4 | ||||
-rw-r--r-- | sys/net/rtsock.c | 5 |
3 files changed, 7 insertions, 8 deletions
diff --git a/sys/net/route.c b/sys/net/route.c index 50cd1112ae3..d4d708a8df1 100644 --- a/sys/net/route.c +++ b/sys/net/route.c @@ -1,4 +1,4 @@ -/* $OpenBSD: route.c,v 1.308 2016/06/14 09:44:41 mpi Exp $ */ +/* $OpenBSD: route.c,v 1.309 2016/06/14 09:48:52 mpi Exp $ */ /* $NetBSD: route.c,v 1.14 1996/02/13 22:00:46 christos Exp $ */ /* @@ -1279,7 +1279,7 @@ rt_ifa_add(struct ifaddr *ifa, int flags, struct sockaddr *dst) * userland that a new address has been added. */ if (flags & RTF_LOCAL) - rt_sendaddrmsg(rt, RTM_NEWADDR); + rt_sendaddrmsg(rt, RTM_NEWADDR, ifa); rt_sendmsg(rt, RTM_ADD, rtableid); rtfree(rt); } @@ -1335,7 +1335,7 @@ rt_ifa_del(struct ifaddr *ifa, int flags, struct sockaddr *dst) if (error == 0) { rt_sendmsg(rt, RTM_DELETE, rtableid); if (flags & RTF_LOCAL) - rt_sendaddrmsg(rt, RTM_DELADDR); + rt_sendaddrmsg(rt, RTM_DELADDR, ifa); rtfree(rt); } if (m != NULL) diff --git a/sys/net/route.h b/sys/net/route.h index 3286f4118bb..f7ba9c3b5a2 100644 --- a/sys/net/route.h +++ b/sys/net/route.h @@ -1,4 +1,4 @@ -/* $OpenBSD: route.h,v 1.137 2016/06/14 09:44:41 mpi Exp $ */ +/* $OpenBSD: route.h,v 1.138 2016/06/14 09:48:52 mpi Exp $ */ /* $NetBSD: route.h,v 1.9 1996/02/13 22:00:49 christos Exp $ */ /* @@ -361,7 +361,7 @@ void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); struct sockaddr *rt_plen2mask(struct rtentry *, struct sockaddr_in6 *); void rt_sendmsg(struct rtentry *, int, u_int); -void rt_sendaddrmsg(struct rtentry *, int); +void rt_sendaddrmsg(struct rtentry *, int, struct ifaddr *); void rt_missmsg(int, struct rt_addrinfo *, int, uint8_t, u_int, int, u_int); int rt_setgate(struct rtentry *, struct sockaddr *); int rt_checkgate(struct rtentry *, struct rtentry **); diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 4523c771ce9..54d5600e9cc 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtsock.c,v 1.191 2016/06/14 09:44:41 mpi Exp $ */ +/* $OpenBSD: rtsock.c,v 1.192 2016/06/14 09:48:52 mpi Exp $ */ /* $NetBSD: rtsock.c,v 1.18 1996/03/29 00:32:10 cgd Exp $ */ /* @@ -1186,9 +1186,8 @@ rt_ifmsg(struct ifnet *ifp) * copies of it. */ void -rt_sendaddrmsg(struct rtentry *rt, int cmd) +rt_sendaddrmsg(struct rtentry *rt, int cmd, struct ifaddr *ifa) { - struct ifaddr *ifa = rt->rt_ifa; struct ifnet *ifp = ifa->ifa_ifp; struct mbuf *m = NULL; struct rt_addrinfo info; |