On Thu, Sep 03, 2020 at 02:02:36PM +0200, Christian Weisgerber wrote:
> Otto Moerbeek:
>
> > Currently testing this.
>
> For "port unreachable" replies, this caused ntpd to become unsynced, but
> the peer still remains valid.
Hmm, it looks like we need to reduce trustlevel as well for the case:
something was received but it was not a valid ntp packet. Will look
into it. Thanks for testing.
-Otto
>
> --------------------
> 1/1 peers valid, clock unsynced
>
> peer
> wt tl st next poll offset delay jitter
> fddd:28ee:243:2:213:95ff:fe06:1bb7 ntp
> 1 10 1 1212s 3199s -0.409ms 1.027ms 0.388ms
> --------------------
>
> > Index: client.c
> > ===================================================================
> > RCS file: /cvs/src/usr.sbin/ntpd/client.c,v
> > retrieving revision 1.113
> > diff -u -p -r1.113 client.c
> > --- client.c 30 Jan 2020 15:55:41 -0000 1.113
> > +++ client.c 1 Sep 2020 19:15:22 -0000
> > @@ -456,7 +456,7 @@ client_dispatch(struct ntp_peer *p, u_in
> > if (++p->shift >= OFFSET_ARRAY_SIZE)
> > p->shift = 0;
> >
> > - return (0);
> > + return (1);
> > }
> >
> > int
> > Index: ntp.c
> > ===================================================================
> > RCS file: /cvs/src/usr.sbin/ntpd/ntp.c,v
> > retrieving revision 1.166
> > diff -u -p -r1.166 ntp.c
> > --- ntp.c 30 Aug 2020 16:21:29 -0000 1.166
> > +++ ntp.c 1 Sep 2020 19:15:22 -0000
> > @@ -403,12 +403,9 @@ ntp_main(struct ntpd_conf *nconf, struct
> > for (; nfds > 0 && j < idx_clients; j++) {
> > if (pfd[j].revents & (POLLIN|POLLERR)) {
> > nfds--;
> > - last_action = now;
> > if (client_dispatch(idx2peer[j - idx_peers],
> > - conf->settime, conf->automatic) == -1) {
> > - log_warn("pipe write error (settime)");
> > - ntp_quit = 1;
> > - }
> > + conf->settime, conf->automatic) == 1)
> > + last_action = now;
> > }
> > }
> >
>
> --
> Christian "naddy" Weisgerber [email protected]