summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/ntpdate/ntpdate.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xntpd/ntpdate/ntpdate.c')
-rw-r--r--usr.sbin/xntpd/ntpdate/ntpdate.c118
1 files changed, 57 insertions, 61 deletions
diff --git a/usr.sbin/xntpd/ntpdate/ntpdate.c b/usr.sbin/xntpd/ntpdate/ntpdate.c
index b5ad05d..20fa604 100644
--- a/usr.sbin/xntpd/ntpdate/ntpdate.c
+++ b/usr.sbin/xntpd/ntpdate/ntpdate.c
@@ -1,4 +1,4 @@
-/* ntpdate.c,v 3.1 1993/07/06 01:09:22 jbj Exp
+/*
* ntpdate - set the time of day by polling one or more NTP servers
*/
#include <stdio.h>
@@ -92,19 +92,19 @@ char *progname;
* Systemwide parameters and flags
*/
int sys_samples = DEFSAMPLES; /* number of samples/server */
-U_LONG sys_timeout = DEFTIMEOUT; /* timeout time, in TIMER_HZ units */
+u_long sys_timeout = DEFTIMEOUT; /* timeout time, in TIMER_HZ units */
struct server **sys_servers; /* the server list */
int sys_numservers = 0; /* number of servers to poll */
int sys_maxservers = 0; /* max number of servers to deal with */
int sys_authenticate = 0; /* true when authenticating */
-U_LONG sys_authkey = 0; /* set to authentication key in use */
-U_LONG sys_authdelay = 0; /* authentication delay */
+u_long sys_authkey = 0; /* set to authentication key in use */
+u_long sys_authdelay = 0; /* authentication delay */
int sys_version = NTP_VERSION; /* version to poll with */
/*
* The current internal time
*/
-U_LONG current_time = 0;
+u_long current_time = 0;
/*
* Counter for keeping track of completed servers
@@ -149,7 +149,7 @@ static void input_handler P((void));
static int l_adj_systime P((l_fp *));
static int l_step_systime P((l_fp *));
-static int getnetnum P((char *, U_LONG *));
+static int getnetnum P((char *, u_long *));
static void printserver P((struct server *, FILE *));
/*
@@ -183,7 +183,7 @@ main(argc, argv)
case 'a':
c = atoi(ntp_optarg);
sys_authenticate = 1;
- sys_authkey = (U_LONG)c;
+ sys_authkey = c;
break;
case 'b':
always_step++;
@@ -313,7 +313,7 @@ main(argc, argv)
if (!authhavekey(sys_authkey)) {
char buf[10];
- (void) sprintf(buf, "%u", sys_authkey);
+ (void) sprintf(buf, "%lu", (unsigned long)sys_authkey);
syslog(LOG_ERR, "authentication key %s unknown", buf);
exit(1);
}
@@ -418,7 +418,7 @@ transmit(server)
* Last message to this server timed out. Shift
* zeros into the filter.
*/
- ts.l_ui = ts.l_uf = 0;
+ L_CLR(&ts);
server_data(server, 0, &ts, 0);
}
@@ -444,9 +444,9 @@ transmit(server)
xpkt.rootdelay = htonl(NTPDATE_DISTANCE);
xpkt.rootdispersion = htonl(NTPDATE_DISP);
xpkt.refid = htonl(NTPDATE_REFID);
- xpkt.reftime.l_ui = xpkt.reftime.l_uf = 0;
- xpkt.org.l_ui = xpkt.org.l_uf = 0;
- xpkt.rec.l_ui = xpkt.rec.l_uf = 0;
+ L_CLR(&xpkt.reftime);
+ L_CLR(&xpkt.org);
+ L_CLR(&xpkt.rec);
/*
* Determine whether to authenticate or not. If so,
@@ -494,8 +494,7 @@ receive(rbufp)
register struct pkt *rpkt;
register struct server *server;
register s_fp di;
- register U_LONG t10_ui, t10_uf;
- register U_LONG t23_ui, t23_uf;
+ l_fp t10, t23;
l_fp org;
l_fp rec;
l_fp ci;
@@ -564,9 +563,9 @@ receive(rbufp)
is_authentic = 0;
if (debug > 3)
- printf("receive: rpkt keyid=%d sys_authkey=%d decrypt=%d\n",
- ntohl(rpkt->keyid), sys_authkey,
- authdecrypt(sys_authkey, (U_LONG *)rpkt,
+ printf("receive: rpkt keyid=%ld sys_authkey=%ld decrypt=%ld\n",
+ (long int)ntohl(rpkt->keyid), (long int)sys_authkey,
+ (long int)authdecrypt(sys_authkey, (U_LONG *)rpkt,
LEN_PKT_NOMAC));
if (has_mac && ntohl(rpkt->keyid) == sys_authkey &&
@@ -597,7 +596,7 @@ receive(rbufp)
* Make sure the server is at least somewhat sane. If not, try
* again.
*/
- if ((rec.l_ui == 0 && rec.l_uf == 0) || !L_ISHIS(&server->org, &rec)) {
+ if (L_ISZERO(&rec) || !L_ISHIS(&server->org, &rec)) {
transmit(server);
return;
}
@@ -609,36 +608,32 @@ receive(rbufp)
* d = (t2 - t3) - (t1 - t0)
* c = ((t2 - t3) + (t1 - t0)) / 2
*/
- t10_ui = server->org.l_ui; /* pkt.xmt == t1 */
- t10_uf = server->org.l_uf;
- M_SUB(t10_ui, t10_uf, rbufp->recv_time.l_ui,
- rbufp->recv_time.l_uf); /* recv_time == t0*/
+ t10 = server->org; /* pkt.xmt == t1 */
+ L_SUB(&t10, &rbufp->recv_time); /* recv_time == t0*/
- t23_ui = rec.l_ui; /* pkt.rec == t2 */
- t23_uf = rec.l_uf;
- M_SUB(t23_ui, t23_uf, org.l_ui, org.l_uf); /* pkt->org == t3 */
+ t23 = rec; /* pkt.rec == t2 */
+ L_SUB(&t23, &org); /* pkt->org == t3 */
/* now have (t2 - t3) and (t0 - t1). Calculate (ci) and (di) */
- ci.l_ui = t10_ui;
- ci.l_uf = t10_uf;
- M_ADD(ci.l_ui, ci.l_uf, t23_ui, t23_uf);
- M_RSHIFT(ci.l_i, ci.l_uf);
+ ci = t10;
+ L_ADD(&ci, &t23);
+ L_RSHIFT(&ci);
/*
* Calculate di in t23 in full precision, then truncate
* to an s_fp.
*/
- M_SUB(t23_ui, t23_uf, t10_ui, t10_uf);
- di = MFPTOFP(t23_ui, t23_uf);
+ L_SUB(&t23, &t10);
+ di = LFPTOFP(&t23);
if (debug > 3)
- printf("offset: %s, delay %s\n", lfptoa(&ci, 9), fptoa(di, 4));
+ printf("offset: %s, delay %s\n", lfptoa(&ci, 6), fptoa(di, 5));
di += (FP_SECOND >> (-(int)NTPDATE_PRECISION))
+ (FP_SECOND >> (-(int)server->precision)) + NTP_MAXSKW;
if (di <= 0) { /* value still too raunchy to use? */
- ci.l_ui = ci.l_uf = 0;
+ L_CLR(&ci);
di = 0;
} else {
di = max(di, NTP_MINDIST);
@@ -668,7 +663,7 @@ server_data(server, d, c, e)
if (i < NTP_SHIFT) {
server->filter_delay[i] = d;
server->filter_offset[i] = *c;
- server->filter_soffset[i] = MFPTOFP(c->l_ui, c->l_uf);
+ server->filter_soffset[i] = LFPTOFP(c);
server->filter_error[i] = e;
server->filter_nextpt = i + 1;
}
@@ -714,7 +709,7 @@ clock_filter(server)
*/
if (server->filter_delay[ord[0]] == 0) {
server->delay = 0;
- server->offset.l_ui = server->offset.l_uf = 0;
+ L_CLR(&server->offset);
server->soffset = 0;
server->dispersion = PEER_MAXDISP;
} else {
@@ -786,12 +781,12 @@ clock_select()
}
if (server->leap == LEAP_NOTINSYNC)
continue; /* he's in trouble */
- if (server->org.l_ui < server->reftime.l_ui) {
+ if (!L_ISHIS(&server->org, &server->reftime)) {
continue; /* very broken host */
}
if ((server->org.l_ui - server->reftime.l_ui)
>= NTP_MAXAGE) {
- continue; /* too LONG without sync */
+ continue; /* too long without sync */
}
if (server->trust != 0) {
continue;
@@ -984,13 +979,13 @@ clock_adjust()
if (simple_query || l_step_systime(&server->offset)) {
syslog(LOG_NOTICE, "step time server %s offset %s",
ntoa(&server->srcadr),
- lfptoa(&server->offset, 7));
+ lfptoa(&server->offset, 6));
}
} else {
if (simple_query || l_adj_systime(&server->offset)) {
syslog(LOG_NOTICE, "adjust time server %s offset %s",
ntoa(&server->srcadr),
- lfptoa(&server->offset, 7));
+ lfptoa(&server->offset, 6));
}
}
return(0);
@@ -1007,7 +1002,7 @@ addserver(serv)
char *serv;
{
register struct server *server;
- U_LONG netnum;
+ u_long netnum;
static int toomany = 0;
if (sys_numservers >= sys_maxservers) {
@@ -1037,7 +1032,7 @@ addserver(serv)
server->srcadr.sin_port = htons(NTP_PORT);
sys_servers[sys_numservers++] = server;
- server->event_time = (U_LONG)sys_numservers;
+ server->event_time = sys_numservers;
}
@@ -1049,7 +1044,7 @@ findserver(addr)
struct sockaddr_in *addr;
{
register int i;
- register U_LONG netnum;
+ register u_long netnum;
if (htons(addr->sin_port) != NTP_PORT)
return 0;
@@ -1191,7 +1186,7 @@ init_io()
memset((char *)&addr, 0, sizeof addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(NTP_PORT);
- addr.sin_addr.s_addr = INADDR_ANY;
+ addr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
if (errno == EADDRINUSE)
syslog(LOG_ERR,
@@ -1366,7 +1361,7 @@ input_handler()
/*
- * adj_systime - do a big LONG slew of the system time
+ * adj_systime - do a big long slew of the system time
*/
static int
l_adj_systime(ts)
@@ -1425,8 +1420,7 @@ l_step_systime(ts)
{
#ifdef SLEWALWAYS
#ifdef STEP_SLEW
- register U_LONG tmp_ui;
- register U_LONG tmp_uf;
+ l_fp ftmp;
int isneg;
int n;
@@ -1434,17 +1428,17 @@ l_step_systime(ts)
/*
* Take the absolute value of the offset
*/
- tmp_ui = ts->l_ui;
- tmp_uf = ts->l_uf;
- if (M_ISNEG(tmp_ui, tmp_uf)) {
- M_NEG(tmp_ui, tmp_uf);
+ ftmp = ts;
+ if (L_ISNEG(&ftmp)) {
+ L_NEG(&tmp);
isneg = 1;
} else
isneg = 0;
if (tmp_ui >= 3) { /* Step it and slew - we might win */
n = step_systime_real(ts);
- if (!n) return n;
+ if (!n)
+ return n;
if (isneg)
ts->l_ui = ~0;
else
@@ -1456,7 +1450,8 @@ l_step_systime(ts)
* line.
*/
#endif
- if (debug) return 1;
+ if (debug)
+ return 1;
#ifdef FORCE_NTPDATE_STEP
return step_systime_real(ts);
#else
@@ -1464,7 +1459,8 @@ l_step_systime(ts)
return 1;
#endif
#else /* SLEWALWAYS */
- if (debug) return 1;
+ if (debug)
+ return 1;
return step_systime_real(ts);
#endif /* SLEWALWAYS */
}
@@ -1475,7 +1471,7 @@ l_step_systime(ts)
static int
getnetnum(host, num)
char *host;
- U_LONG *num;
+ u_long *num;
{
struct hostent *hp;
@@ -1504,7 +1500,7 @@ printserver(pp, fp)
if (!debug) {
(void) fprintf(fp, "server %s, stratum %d, offset %s, delay %s\n",
ntoa(&pp->srcadr), pp->stratum,
- lfptoa(&pp->offset, 7), ufptoa(pp->delay, 4));
+ lfptoa(&pp->offset, 6), fptoa(pp->delay, 5));
return;
}
@@ -1526,8 +1522,8 @@ printserver(pp, fp)
}
(void) fprintf(fp,
"refid [%s], delay %s, dispersion %s\n",
- str, fptoa(pp->delay, 4),
- ufptoa(pp->dispersion, 4));
+ str, fptoa(pp->delay, 5),
+ ufptoa(pp->dispersion, 5));
(void) fprintf(fp, "transmitted %d, in filter %d\n",
pp->xmtcnt, pp->filter_nextpt);
@@ -1541,7 +1537,7 @@ printserver(pp, fp)
(void) fprintf(fp, "filter delay: ");
for (i = 0; i < NTP_SHIFT; i++) {
- (void) fprintf(fp, " %-8.8s", ufptoa(pp->filter_delay[i],4));
+ (void) fprintf(fp, " %-8.8s", fptoa(pp->filter_delay[i], 5));
if (i == (NTP_SHIFT>>1)-1)
(void) fprintf(fp, "\n ");
}
@@ -1549,17 +1545,17 @@ printserver(pp, fp)
(void) fprintf(fp, "filter offset:");
for (i = 0; i < PEER_SHIFT; i++) {
- (void) fprintf(fp, " %-8.8s", lfptoa(&pp->filter_offset[i], 5));
+ (void) fprintf(fp, " %-8.8s", lfptoa(&pp->filter_offset[i], 6));
if (i == (PEER_SHIFT>>1)-1)
(void) fprintf(fp, "\n ");
}
(void) fprintf(fp, "\n");
(void) fprintf(fp, "delay %s, dispersion %s\n",
- ufptoa(pp->delay, 4), ufptoa(pp->dispersion, 4));
+ fptoa(pp->delay, 5), ufptoa(pp->dispersion, 5));
(void) fprintf(fp, "offset %s\n\n",
- lfptoa(&pp->offset, 7));
+ lfptoa(&pp->offset, 6));
}
#if defined(NEED_VSPRINTF)
OpenPOWER on IntegriCloud