I tested and verified your fix, thanks!

OK reyk@

On Sat, Oct 31, 2015 at 02:00:08PM +0100, Christian Weisgerber wrote:
> Gerald Hanuer:
> 
> >  Ntpd(8)  in current: server ("IP numerical") not being used, FQDN works.
> > 
> >  ### Works as expected.
> >  server time1.google.com
> > 
> >  ### This does not. ( Numerical of above )
> >  server 216.239.32.15
> 
> I can confirm this.  The bug was introduced with this commit:
> 
> --------------------
> CVSROOT:        /cvs
> Module name:    src
> Changes by:     phess...@cvs.openbsd.org        2015/10/23 08:52:20
> 
> Modified files:
>         usr.sbin/ntpd  : client.c control.c ntp.c ntpd.conf.5 ntpd.h 
>                          parse.y 
> 
> Log message:
> Allowing upstream servers of ntp being in multiple routing tables is
> non-sensical.  The dns lookups happened in the process routing table
> (usually '0'), which is very likely to have different results from the
> other routing domains.  If you do depend on having this behaviour,
> you'll need to use pf to cross the rtable boundary.
> 
> "listen on * rtable X" is still supported.
> 
> Users of "server * rtable X" will need to switch to launching ntpd with
> "route -T X exec /usr/sbin/ntpd"
> 
> OK deraadt@
> --------------------
> 
> Reverting these additional parts that were introduced with the
> original rtable commit fixes it:
> 
> Index: parse.y
> ===================================================================
> RCS file: /cvs/src/usr.sbin/ntpd/parse.y,v
> retrieving revision 1.64
> diff -u -p -r1.64 parse.y
> --- parse.y   23 Oct 2015 14:52:20 -0000      1.64
> +++ parse.y   31 Oct 2015 12:49:44 -0000
> @@ -161,9 +161,7 @@ main              : LISTEN ON address listen_opts {
>                                       fatal(NULL);
>                               if (p->addr != NULL)
>                                       p->state = STATE_DNS_DONE;
> -                             if (!(p->addr))
> -                                     TAILQ_INSERT_TAIL(&conf->ntp_peers,
> -                                         p, entry);
> +                             TAILQ_INSERT_TAIL(&conf->ntp_peers, p, entry);
>                               h = next;
>                       } while (h != NULL);
>  
> @@ -199,8 +197,7 @@ main              : LISTEN ON address listen_opts {
>                               fatal(NULL);
>                       if (p->addr != NULL)
>                               p->state = STATE_DNS_DONE;
> -                     if (!(p->addr))
> -                             TAILQ_INSERT_TAIL(&conf->ntp_peers, p, entry);
> +                     TAILQ_INSERT_TAIL(&conf->ntp_peers, p, entry);
>                       free($2->name);
>                       free($2);
>               }
> -- 
> Christian "naddy" Weisgerber                          na...@mips.inka.de
> 

-- 

Reply via email to