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