Jeremie Courreges-Anglas(j...@wxcvbn.org) on 2017.07.12 21:00:44 +0200: > Jeremie Courreges-Anglas <j...@wxcvbn.org> writes: > > > Kapetanakis Giannis <bil...@edu.physics.uoc.gr> writes: > > > >> On 10/07/17 17:22, Jeremie Courreges-Anglas wrote: > >>> Using -1 for IPV6_UNICAST_HOPS is correct. > >>> > >>> Note that you can also use -1 for IP_TTL on OpenBSD, sadly some systems > >>> out there don't support it. > >>> > >>>> comments? > >>> > >>> ok jca@ with the nits below. > >>> > >>> It would be nice to factor this out in a helper function and use it > >>> elsewhere in relayd. > >> > >> Thanks for the comments. > >> > >> My guess is that the helper function should go outside of relayd so it can > >> be used by others as well? > >> I leave that to a more competent programmer. > >> > >> Would you like me to set -1 to IP_TTL as well and drop the call to > >> getsockopt(2)? > > > > I'm not sure about this. Maybe it should be discussed separately? > > > >> updated diff bellow (in case not) with jca@ recommendations. > > > > I have tweaks, but this already looks fine to me. ok jca@ > > The tweak I had in mind: consistently use "ttl" for all the > get/setsockopt calls. > > ok?
yes please > > > Index: check_icmp.c > =================================================================== > RCS file: /d/cvs/src/usr.sbin/relayd/check_icmp.c,v > retrieving revision 1.46 > diff -u -p -p -u -r1.46 check_icmp.c > --- check_icmp.c 11 Jul 2017 19:41:30 -0000 1.46 > +++ check_icmp.c 12 Jul 2017 18:57:52 -0000 > @@ -220,11 +220,12 @@ send_icmp(int s, short event, void *arg) > sizeof(packet)); > } > > + ttl = host->conf.ttl; > switch(cie->af) { > case AF_INET: > - if ((ttl = host->conf.ttl) > 0) { > + if (ttl > 0) { > if (setsockopt(s, IPPROTO_IP, IP_TTL, > - &host->conf.ttl, sizeof(int)) == -1) > + &ttl, sizeof(ttl)) == -1) > log_warn("%s: setsockopt", > __func__); > } else { > @@ -243,10 +244,10 @@ send_icmp(int s, short event, void *arg) > } > break; > case AF_INET6: > - if ((ttl = host->conf.ttl) > 0) { > + if (ttl > 0) { > if (setsockopt(s, IPPROTO_IPV6, > - IPV6_UNICAST_HOPS, &host->conf.ttl, > - sizeof(int)) == -1) > + IPV6_UNICAST_HOPS, &ttl, > + sizeof(ttl)) == -1) > log_warn("%s: setsockopt", > __func__); > } else { > > > -- > jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE >