some dude commited it like this in '95.

I came accress it because I want to use it in a place where I don't
have a rtentry allocated already.

OK?

diff --git net/route.c net/route.c
index 30c8def301d..a0c5738d831 100644
--- net/route.c
+++ net/route.c
@@ -1103,7 +1103,7 @@ rt_ifa_add(struct ifaddr *ifa, int flags, struct sockaddr 
*dst)
                 * userland that a new address has been added.
                 */
                if (flags & RTF_LOCAL)
-                       rtm_addr(rt, RTM_NEWADDR, ifa);
+                       rtm_addr(RTM_NEWADDR, ifa);
                rtm_send(rt, RTM_ADD, 0, rtableid);
                rtfree(rt);
        }
@@ -1158,9 +1158,9 @@ rt_ifa_del(struct ifaddr *ifa, int flags, struct sockaddr 
*dst)
        error = rtrequest_delete(&info, prio, ifp, &rt, rtableid);
        if (error == 0) {
                rtm_send(rt, RTM_DELETE, 0, rtableid);
-               if (flags & RTF_LOCAL)
-                       rtm_addr(rt, RTM_DELADDR, ifa);
                rtfree(rt);
+               if (flags & RTF_LOCAL)
+                       rtm_addr(RTM_DELADDR, ifa);
        }
        m_free(m);
 
diff --git net/route.h net/route.h
index 9f5459a9a62..3c89348cb43 100644
--- net/route.h
+++ net/route.h
@@ -427,7 +427,7 @@ void         rt_maskedcopy(struct sockaddr *,
            struct sockaddr *, struct sockaddr *);
 struct sockaddr *rt_plen2mask(struct rtentry *, struct sockaddr_in6 *);
 void    rtm_send(struct rtentry *, int, int, unsigned int);
-void    rtm_addr(struct rtentry *, int, struct ifaddr *);
+void    rtm_addr(int, struct ifaddr *);
 void    rtm_miss(int, struct rt_addrinfo *, int, uint8_t, u_int, int, u_int);
 int     rt_setgate(struct rtentry *, struct sockaddr *, u_int);
 struct rtentry *rt_getll(struct rtentry *);
diff --git net/rtsock.c net/rtsock.c
index eb570e25698..c5590378259 100644
--- net/rtsock.c
+++ net/rtsock.c
@@ -1509,7 +1509,7 @@ rtm_ifchg(struct ifnet *ifp)
  * copies of it.
  */
 void
-rtm_addr(struct rtentry *rt, int cmd, struct ifaddr *ifa)
+rtm_addr(int cmd, struct ifaddr *ifa)
 {
        struct ifnet            *ifp = ifa->ifa_ifp;
        struct mbuf             *m;

-- 
I'm not entirely sure you are real.

Reply via email to