On Mon, Jun 27, 2016 at 01:16:51PM +0200, Jeremie Courreges-Anglas wrote:
> This looks much less confusing indeed. Note that this conflicts with
> your last diff to fix inp_hops.
Here is a new version of my inp_hops diff. Note that I have moved
the assingment into the "if (inp->inp_flags & INP_IPV6)" case as
it is an IPv6 only feature.
ok?
> What I don't like is the introduction of ISSET() in this file. Wouldn't
> it be better to stay consistent? Or is ISSET() considered an
> improvement desirable enough to break consistency?
I have commited it without ISSET() as it is more consistent when
using inp_flags. mpi@ has convinced me that ISSET() is better for
the routing code so I was in conversion mode.
bluhm
Index: netinet/tcp_input.c
===================================================================
RCS file: /cvs/src/sys/netinet/tcp_input.c,v
retrieving revision 1.320
diff -u -p -r1.320 tcp_input.c
--- netinet/tcp_input.c 27 Jun 2016 12:25:27 -0000 1.320
+++ netinet/tcp_input.c 27 Jun 2016 12:42:24 -0000
@@ -3690,6 +3690,7 @@ syn_cache_get(struct sockaddr *src, stru
inp->inp_flags |= (oldinp->inp_flags & INP_IPV6);
if (inp->inp_flags & INP_IPV6) {
inp->inp_ipv6.ip6_hlim = oldinp->inp_ipv6.ip6_hlim;
+ inp->inp_hops = oldinp->inp_hops;
}
#endif /* INET6 */
@@ -4346,7 +4347,7 @@ syn_cache_respond(struct syn_cache *sc,
break;
#ifdef INET6
case AF_INET6:
- ip6->ip6_hlim = in6_selecthlim(NULL);
+ ip6->ip6_hlim = in6_selecthlim(inp);
error = ip6_output(m, NULL /*XXX*/, (struct route_in6 *)ro, 0,
NULL, NULL);