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
> 

Reply via email to