Hi,

is anybody still using SIGINFO to get reports from ntpd?
It predates ntpctl that is a sufficient replacement.

OK?

Reyk

Index: ntp.c
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/ntp.c,v
retrieving revision 1.138
diff -u -p -u -p -r1.138 ntp.c
--- ntp.c       23 Oct 2015 14:52:20 -0000      1.138
+++ ntp.c       30 Oct 2015 14:35:45 -0000
@@ -40,7 +40,6 @@
 #define        PFD_MAX         3
 
 volatile sig_atomic_t   ntp_quit = 0;
-volatile sig_atomic_t   ntp_report = 0;
 struct imsgbuf         *ibuf_main;
 struct imsgbuf         *ibuf_dns;
 struct ntpd_conf       *conf;
@@ -48,14 +47,12 @@ struct ctl_conns     ctl_conns;
 u_int                   peer_cnt;
 u_int                   sensors_cnt;
 extern u_int            constraint_cnt;
-time_t                  lastreport;
 
 void   ntp_sighdlr(int);
 int    ntp_dispatch_imsg(void);
 int    ntp_dispatch_imsg_dns(void);
 void   peer_add(struct ntp_peer *);
 void   peer_remove(struct ntp_peer *);
-void   report_peers(int);
 
 void
 ntp_sighdlr(int sig)
@@ -65,9 +62,6 @@ ntp_sighdlr(int sig)
        case SIGTERM:
                ntp_quit = 1;
                break;
-       case SIGINFO:
-               ntp_report = 1;
-               break;
        }
 }
 
@@ -160,7 +154,6 @@ ntp_main(int pipe_prnt[2], int fd_ctl, s
 
        signal(SIGTERM, ntp_sighdlr);
        signal(SIGINT, ntp_sighdlr);
-       signal(SIGINFO, ntp_sighdlr);
        signal(SIGPIPE, SIG_IGN);
        signal(SIGHUP, SIG_IGN);
        signal(SIGCHLD, SIG_DFL);
@@ -209,9 +202,6 @@ ntp_main(int pipe_prnt[2], int fd_ctl, s
        TAILQ_FOREACH(p, &conf->ntp_peers, entry)
                peer_cnt++;
 
-       /* wait 5 min before reporting first status to let things settle down */
-       lastreport = getmonotime() + (5 * 60) - REPORT_INTERVAL;
-
        while (ntp_quit == 0) {
                if (peer_cnt > idx2peer_elms) {
                        if ((newp = reallocarray(idx2peer, peer_cnt,
@@ -419,8 +409,6 @@ ntp_main(int pipe_prnt[2], int fd_ctl, s
                        if (s->next <= getmonotime())
                                sensor_query(s);
                }
-               report_peers(ntp_report);
-               ntp_report = 0;
        }
 
        msgbuf_write(&ibuf_main->w);
@@ -787,60 +775,4 @@ error_interval(void)
        interval = INTERVAL_QUERY_PATHETIC * QSCALE_OFF_MAX / QSCALE_OFF_MIN;
        r = arc4random_uniform(interval / 10);
        return (interval + r);
-}
-
-void
-report_peers(int always)
-{
-       time_t now;
-       u_int badpeers = 0;
-       u_int badsensors = 0;
-       struct ntp_peer *p;
-       struct ntp_sensor *s;
-
-       TAILQ_FOREACH(p, &conf->ntp_peers, entry) {
-               if (p->trustlevel < TRUSTLEVEL_BADPEER)
-                       badpeers++;
-       }
-       TAILQ_FOREACH(s, &conf->ntp_sensors, entry) {
-               if (!s->update.good)
-                       badsensors++;
-       }
-
-       now = getmonotime();
-       if (!always) {
-               if ((peer_cnt == 0 || badpeers == 0 || badpeers < peer_cnt / 2)
-                   && (sensors_cnt == 0 || badsensors == 0 ||
-                   badsensors < sensors_cnt / 2))
-                       return;
-
-               if (lastreport + REPORT_INTERVAL > now)
-                       return;
-       }
-       lastreport = now;
-       if (peer_cnt > 0) {
-               log_warnx("%u out of %u peers valid", peer_cnt - badpeers,
-                   peer_cnt);
-               TAILQ_FOREACH(p, &conf->ntp_peers, entry) {
-                       if (p->trustlevel < TRUSTLEVEL_BADPEER) {
-                               const char *a = "not resolved";
-                               const char *pool = "";
-                               if (p->addr)
-                                       a = log_sockaddr(
-                                           (struct sockaddr *)&p->addr->ss);
-                               if (p->addr_head.pool)
-                                       pool = "from pool ";
-                               log_warnx("bad peer %s%s (%s)",
-                                   pool, p->addr_head.name, a);
-                       }
-               }
-       }
-       if (sensors_cnt > 0) {
-               log_warnx("%u out of %u sensors valid",
-                   sensors_cnt - badsensors, sensors_cnt);
-               TAILQ_FOREACH(s, &conf->ntp_sensors, entry) {
-                       if (!s->update.good)
-                               log_warnx("bad sensor %s", s->device);
-               }
-       }
 }
Index: ntpd.8
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/ntpd.8,v
retrieving revision 1.39
diff -u -p -u -p -r1.39 ntpd.8
--- ntpd.8      26 Mar 2015 20:34:54 -0000      1.39
+++ ntpd.8      30 Oct 2015 14:35:45 -0000
@@ -119,14 +119,6 @@ typically
 and its initial clock drift from
 .Pa /var/db/ntpd.drift .
 Clock drift is periodically written to the drift file thereafter.
-.Pp
-When
-.Nm
-.Pq engine
-receives a
-.Dv SIGINFO
-signal, it writes its peer and sensor status to
-.Xr syslog 3 .
 .Sh FILES
 .Bl -tag -width "/var/db/ntpd.driftXXX" -compact
 .It Pa /etc/ntpd.conf

Reply via email to