aboutsummaryrefslogtreecommitdiff
path: root/ntpd/refclock_hopfser.c
diff options
context:
space:
mode:
Diffstat (limited to 'ntpd/refclock_hopfser.c')
-rw-r--r--ntpd/refclock_hopfser.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/ntpd/refclock_hopfser.c b/ntpd/refclock_hopfser.c
index 48eea0022bb7..dae8b3761779 100644
--- a/ntpd/refclock_hopfser.c
+++ b/ntpd/refclock_hopfser.c
@@ -146,12 +146,11 @@ hopfserial_start (
/*
* Allocate and initialize unit structure
*/
- up = emalloc(sizeof(*up));
- memset(up, 0, sizeof(*up));
+ up = emalloc_zero(sizeof(*up));
pp = peer->procptr;
- pp->unitptr = (caddr_t)up;
+ pp->unitptr = up;
pp->io.clock_recv = hopfserial_receive;
- pp->io.srcclock = (caddr_t)peer;
+ pp->io.srcclock = peer;
pp->io.datalen = 0;
pp->io.fd = fd;
if (!io_addclock(&pp->io)) {
@@ -170,7 +169,6 @@ hopfserial_start (
*/
pp->clockdesc = DESCRIPTION;
peer->precision = PRECISION;
- peer->burst = NSTAGE;
memcpy((char *)&pp->refid, REFID, 4);
up->leap_status = 0;
@@ -193,7 +191,7 @@ hopfserial_shutdown (
struct refclockproc *pp;
pp = peer->procptr;
- up = (struct hopfclock_unit *)pp->unitptr;
+ up = pp->unitptr;
if (-1 != pp->io.fd)
io_closeclock(&pp->io);
@@ -216,30 +214,31 @@ hopfserial_receive (
struct refclockproc *pp;
struct peer *peer;
- int synch; /* synchhronization indicator */
- int DoW; /* Dow */
+ int synch; /* synchhronization indicator */
+ int DoW; /* Day of Week */
int day, month; /* ddd conversion */
+ int converted;
/*
* Initialize pointers and read the timecode and timestamp.
*/
- peer = (struct peer *)rbufp->recv_srcclock;
+ peer = rbufp->recv_peer;
pp = peer->procptr;
- up = (struct hopfclock_unit *)pp->unitptr;
+ up = pp->unitptr;
if (up->rpt_next == 0 )
return;
-
up->rpt_next = 0; /* wait until next poll interval occur */
- pp->lencode = (u_short)refclock_gtlin(rbufp, pp->a_lastcode, BMAX, &pp->lastrec);
-
- if (pp->lencode == 0)
+ pp->lencode = (u_short)refclock_gtlin(rbufp, pp->a_lastcode,
+ sizeof(pp->a_lastcode),
+ &pp->lastrec);
+ if (pp->lencode == 0)
return;
- sscanf(pp->a_lastcode,
+ converted = sscanf(pp->a_lastcode,
#if 1
"%1x%1x%2d%2d%2d%2d%2d%2d", /* ...cr,lf */
#else
@@ -259,9 +258,9 @@ hopfserial_receive (
Validate received values at least enough to prevent internal
array-bounds problems, etc.
*/
- if((pp->hour < 0) || (pp->hour > 23) ||
- (pp->minute < 0) || (pp->minute > 59) ||
- (pp->second < 0) || (pp->second > 60) /*Allow for leap seconds.*/ ||
+ if ((8 != converted) || (pp->hour < 0) || (pp->hour > 23) ||
+ (pp->minute < 0) || (pp->minute > 59) || (pp->second < 0) ||
+ (pp->second > 60) /*Allow for leap seconds.*/ ||
(day < 1) || (day > 31) ||
(month < 1) || (month > 12) ||
(pp->year < 0) || (pp->year > 99)) {
@@ -356,7 +355,7 @@ hopfserial_poll (
struct refclockproc *pp;
pp = peer->procptr;
- up = (struct hopfclock_unit *)pp->unitptr;
+ up = pp->unitptr;
pp->polls++;
up->rpt_next = 1;