On 19/04/16(Tue) 11:18, Martin Pieuchot wrote:
> These two chunks are equivalent so let's keep one.
>
> ok?
Nobody?
>
> Index: netinet6/ip6_forward.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/ip6_forward.c,v
> retrieving revision 1.88
> diff -u -p -r1.88 ip6_forward.c
> --- netinet6/ip6_forward.c 19 Apr 2016 08:23:13 -0000 1.88
> +++ netinet6/ip6_forward.c 19 Apr 2016 08:47:21 -0000
> @@ -220,35 +220,7 @@ reroute:
> #endif
>
> dst = &ip6_forward_rt.ro_dst;
> - if (!srcrt) {
> - /*
> - * ip6_forward_rt.ro_dst.sin6_addr is equal to ip6->ip6_dst
> - */
> - if (!rtisvalid(ip6_forward_rt.ro_rt) ||
> - ISSET(ip6_forward_rt.ro_rt->rt_flags, RTF_MPATH) ||
> - ip6_forward_rt.ro_tableid != rtableid) {
> - if (ip6_forward_rt.ro_rt) {
> - rtfree(ip6_forward_rt.ro_rt);
> - ip6_forward_rt.ro_rt = NULL;
> - }
> - /* this probably fails but give it a try again */
> - ip6_forward_rt.ro_tableid = rtableid;
> - ip6_forward_rt.ro_rt = rtalloc_mpath(
> - sin6tosa(&ip6_forward_rt.ro_dst),
> - &ip6->ip6_src.s6_addr32[0],
> - ip6_forward_rt.ro_tableid);
> - }
> -
> - if (ip6_forward_rt.ro_rt == NULL) {
> - ip6stat.ip6s_noroute++;
> - if (mcopy) {
> - icmp6_error(mcopy, ICMP6_DST_UNREACH,
> - ICMP6_DST_UNREACH_NOROUTE, 0);
> - }
> - m_freem(m);
> - return;
> - }
> - } else if (!rtisvalid(ip6_forward_rt.ro_rt) ||
> + if (!rtisvalid(ip6_forward_rt.ro_rt) ||
> ISSET(ip6_forward_rt.ro_rt->rt_flags, RTF_MPATH) ||
> !IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst, &dst->sin6_addr) ||
> ip6_forward_rt.ro_tableid != rtableid) {
>