This is like the inet version but...  erf no!  It's just the sys/netinet6
part!

Index: netinet6/icmp6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/icmp6.c,v
retrieving revision 1.172
diff -u -p -r1.172 icmp6.c
--- netinet6/icmp6.c    18 Sep 2015 14:26:22 -0000      1.172
+++ netinet6/icmp6.c    16 Oct 2015 13:48:56 -0000
@@ -1568,7 +1568,7 @@ icmp6_redirect_output(struct mbuf *m0, s
                goto fail;
 
        /* sanity check */
-       if (!m0 || !rt || !(rt->rt_flags & RTF_UP) || !(ifp = rt->rt_ifp))
+       if (m0 == NULL || !rtisvalid(rt))
                goto fail;
 
        /*
Index: netinet6/in6_pcb.c
===================================================================
RCS file: /cvs/src/sys/netinet6/in6_pcb.c,v
retrieving revision 1.77
diff -u -p -r1.77 in6_pcb.c
--- netinet6/in6_pcb.c  15 Oct 2015 10:27:18 -0000      1.77
+++ netinet6/in6_pcb.c  16 Oct 2015 13:53:41 -0000
@@ -436,7 +436,7 @@ in6_pcbconnect(struct inpcb *inp, struct
        if (error)
                return (error);
 
-       if (inp->inp_route6.ro_rt && inp->inp_route6.ro_rt->rt_flags & RTF_UP)
+       if (rtisvalid(inp->inp_route6.ro_rt))
                ifp = inp->inp_route6.ro_rt->rt_ifp;
 
        inp->inp_ipv6.ip6_hlim = (u_int8_t)in6_selecthlim(inp, ifp);
Index: netinet6/in6_src.c
===================================================================
RCS file: /cvs/src/sys/netinet6/in6_src.c,v
retrieving revision 1.63
diff -u -p -r1.63 in6_src.c
--- netinet6/in6_src.c  13 Oct 2015 10:16:17 -0000      1.63
+++ netinet6/in6_src.c  16 Oct 2015 13:57:30 -0000
@@ -327,9 +327,8 @@ in6_selectroute(struct sockaddr_in6 *dst
                 * by that address must be a neighbor of the sending host.
                 */
                ron = &opts->ip6po_nextroute;
-               if ((ron->ro_rt &&
-                   (ron->ro_rt->rt_flags & (RTF_UP | RTF_GATEWAY)) !=
-                   RTF_UP) ||
+               if (!rtisvalid(ron->ro_rt) ||
+                   ISSET(ron->ro_rt->rt_flags, RTF_GATEWAY) ||
                    !IN6_ARE_ADDR_EQUAL(&ron->ro_dst.sin6_addr,
                    &sin6_next->sin6_addr)) {
                        if (ron->ro_rt) {
Index: netinet6/ip6_forward.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_forward.c,v
retrieving revision 1.82
diff -u -p -r1.82 ip6_forward.c
--- netinet6/ip6_forward.c      10 Sep 2015 09:14:59 -0000      1.82
+++ netinet6/ip6_forward.c      16 Oct 2015 13:52:06 -0000
@@ -223,8 +223,7 @@ reroute:
                /*
                 * ip6_forward_rt.ro_dst.sin6_addr is equal to ip6->ip6_dst
                 */
-               if (ip6_forward_rt.ro_rt == NULL ||
-                   (ip6_forward_rt.ro_rt->rt_flags & RTF_UP) == 0 ||
+               if (!rtisvalid(ip6_forward_rt.ro_rt) ||
                    ip6_forward_rt.ro_tableid != rtableid) {
                        if (ip6_forward_rt.ro_rt) {
                                rtfree(ip6_forward_rt.ro_rt);
@@ -247,8 +246,7 @@ reroute:
                        m_freem(m);
                        return;
                }
-       } else if (ip6_forward_rt.ro_rt == NULL ||
-          (ip6_forward_rt.ro_rt->rt_flags & RTF_UP) == 0 ||
+       } else if (!rtisvalid(ip6_forward_rt.ro_rt) ||
           !IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst, &dst->sin6_addr) ||
           ip6_forward_rt.ro_tableid != rtableid) {
                if (ip6_forward_rt.ro_rt) {
Index: netinet6/ip6_input.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_input.c,v
retrieving revision 1.147
diff -u -p -r1.147 ip6_input.c
--- netinet6/ip6_input.c        13 Oct 2015 10:29:16 -0000      1.147
+++ netinet6/ip6_input.c        16 Oct 2015 13:51:22 -0000
@@ -415,8 +415,7 @@ ip6_input(struct mbuf *m)
        /*
         *  Unicast check
         */
-       if (ip6_forward_rt.ro_rt != NULL &&
-           (ip6_forward_rt.ro_rt->rt_flags & RTF_UP) != 0 &&
+       if (rtisvalid(ip6_forward_rt.ro_rt) &&
            IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst,
                               &ip6_forward_rt.ro_dst.sin6_addr) &&
            rtableid == ip6_forward_rt.ro_tableid)
Index: netinet6/ip6_output.c
===================================================================
RCS file: /cvs/src/sys/netinet6/ip6_output.c,v
retrieving revision 1.189
diff -u -p -r1.189 ip6_output.c
--- netinet6/ip6_output.c       23 Sep 2015 08:49:46 -0000      1.189
+++ netinet6/ip6_output.c       16 Oct 2015 13:52:44 -0000
@@ -1151,9 +1151,8 @@ ip6_getpmtu(struct route_in6 *ro_pmtu, s
                /* The first hop and the final destination may differ. */
                struct sockaddr_in6 *sa6_dst = &ro_pmtu->ro_dst;
 
-               if (ro_pmtu->ro_rt &&
-                   ((ro_pmtu->ro_rt->rt_flags & RTF_UP) == 0 ||
-                    !IN6_ARE_ADDR_EQUAL(&sa6_dst->sin6_addr, dst))) {
+               if (!rtisvalid(ro_pmtu->ro_rt) ||
+                    !IN6_ARE_ADDR_EQUAL(&sa6_dst->sin6_addr, dst)) {
                        rtfree(ro_pmtu->ro_rt);
                        ro_pmtu->ro_rt = NULL;
                }
Index: netinet6/raw_ip6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/raw_ip6.c,v
retrieving revision 1.84
diff -u -p -r1.84 raw_ip6.c
--- netinet6/raw_ip6.c  11 Sep 2015 08:17:06 -0000      1.84
+++ netinet6/raw_ip6.c  16 Oct 2015 13:53:02 -0000
@@ -421,8 +421,7 @@ rip6_output(struct mbuf *m, ...)
                        goto bad;
 
                ip6->ip6_src = *in6a;
-               if (in6p->inp_route6.ro_rt &&
-                   in6p->inp_route6.ro_rt->rt_flags & RTF_UP)
+               if (rtisvalid(in6p->inp_route6.ro_rt))
                        oifp = in6p->inp_route6.ro_rt->rt_ifp;
        }
 
Index: netinet6/udp6_output.c
===================================================================
RCS file: /cvs/src/sys/netinet6/udp6_output.c,v
retrieving revision 1.37
diff -u -p -r1.37 udp6_output.c
--- netinet6/udp6_output.c      11 Sep 2015 08:17:06 -0000      1.37
+++ netinet6/udp6_output.c      16 Oct 2015 13:53:26 -0000
@@ -208,8 +208,7 @@ udp6_output(struct inpcb *in6p, struct m
 #endif
        ip6->ip6_nxt    = IPPROTO_UDP;
        ifp = NULL;
-       if (in6p->inp_route6.ro_rt &&
-           in6p->inp_route6.ro_rt->rt_flags & RTF_UP)
+       if (rtisvalid(in6p->inp_route6.ro_rt))
                ifp = in6p->inp_route6.ro_rt->rt_ifp;
        ip6->ip6_hlim   = in6_selecthlim(in6p, ifp);
        ip6->ip6_src    = *laddr;

Reply via email to