*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
#endif
-#include <netdissect-stdinc.h>
+#include "netdissect-stdinc.h"
#ifdef HAVE_STRFTIME
#include <time.h>
ND_TCHECK_1(bp->precision);
ND_PRINT(", precision %d", EXTRACT_S_1(bp->precision));
- ND_TCHECK(bp->root_delay);
+ ND_TCHECK_SIZE(&bp->root_delay);
ND_PRINT("\n\tRoot Delay: ");
p_sfix(ndo, &bp->root_delay);
- ND_TCHECK(bp->root_dispersion);
+ ND_TCHECK_SIZE(&bp->root_dispersion);
ND_PRINT(", Root dispersion: ");
p_sfix(ndo, &bp->root_dispersion);
- ND_TCHECK(bp->refid);
+ ND_TCHECK_4(bp->refid);
ND_PRINT(", Reference-ID: ");
/* Interpretation depends on stratum */
switch (stratum) {
default:
/* In NTPv4 (RFC 5905) refid is an IPv4 address or first 32 bits of
MD5 sum of IPv6 address */
- ND_PRINT("0x%08x", EXTRACT_BE_U_4(&bp->refid));
+ ND_PRINT("0x%08x", EXTRACT_BE_U_4(bp->refid));
break;
}
- ND_TCHECK(bp->ref_timestamp);
+ ND_TCHECK_SIZE(&bp->ref_timestamp);
ND_PRINT("\n\t Reference Timestamp: ");
p_ntp_time(ndo, &(bp->ref_timestamp));
- ND_TCHECK(bp->org_timestamp);
+ ND_TCHECK_SIZE(&bp->org_timestamp);
ND_PRINT("\n\t Originator Timestamp: ");
p_ntp_time(ndo, &(bp->org_timestamp));
- ND_TCHECK(bp->rec_timestamp);
+ ND_TCHECK_SIZE(&bp->rec_timestamp);
ND_PRINT("\n\t Receive Timestamp: ");
p_ntp_time(ndo, &(bp->rec_timestamp));
- ND_TCHECK(bp->xmt_timestamp);
+ ND_TCHECK_SIZE(&bp->xmt_timestamp);
ND_PRINT("\n\t Transmit Timestamp: ");
p_ntp_time(ndo, &(bp->xmt_timestamp));
const u_char *cp, u_int length)
{
const union ntpdata *bp = (const union ntpdata *)cp;
- int mode, version, leapind;
+ u_int mode, version, leapind;
uint8_t status;
- ND_TCHECK(bp->td.status);
+ ND_TCHECK_1(bp->td.status);
status = EXTRACT_U_1(bp->td.status);
version = (status & VERSIONMASK) >> VERSIONSHIFT;
- ND_PRINT("NTPv%d", version);
+ ND_PRINT("NTPv%u", version);
mode = (status & MODEMASK) >> MODESHIFT;
if (!ndo->ndo_vflag) {
tok2str(ntp_leapind_values, "Unknown", leapind),
leapind);
- if (mode >= MODE_UNSPEC && mode <= MODE_BROADCAST)
+ switch (mode) {
+
+ case MODE_UNSPEC:
+ case MODE_SYM_ACT:
+ case MODE_SYM_PAS:
+ case MODE_CLIENT:
+ case MODE_SERVER:
+ case MODE_BROADCAST:
ntp_time_print(ndo, &bp->td, length);
- else if (mode == MODE_CONTROL)
+ break;
+
+ case MODE_CONTROL:
ntp_control_print(ndo, &bp->cd, length);
- else
- {;} /* XXX: not implemented! */
+ break;
+
+ default:
+ break; /* XXX: not implemented! */
+ }
return;
trunc:
int f;
double ff;
- i = EXTRACT_BE_U_2(&sfp->int_part);
- f = EXTRACT_BE_U_2(&sfp->fraction);
+ i = EXTRACT_BE_U_2(sfp->int_part);
+ f = EXTRACT_BE_U_2(sfp->fraction);
ff = f / 65536.0; /* shift radix point by 16 bits */
f = (int)(ff * 1000000.0); /* Treat fraction as parts per million */
ND_PRINT("%d.%06d", i, f);
uint32_t f;
double ff;
- i = EXTRACT_BE_U_4(&lfp->int_part);
- uf = EXTRACT_BE_U_4(&lfp->fraction);
+ i = EXTRACT_BE_U_4(lfp->int_part);
+ uf = EXTRACT_BE_U_4(lfp->fraction);
ff = uf;
if (ff < 0.0) /* some compilers are buggy */
ff += FMAXINT;
double ff;
int signbit;
- u = EXTRACT_BE_U_4(&lfp->int_part);
- ou = EXTRACT_BE_U_4(&olfp->int_part);
- uf = EXTRACT_BE_U_4(&lfp->fraction);
- ouf = EXTRACT_BE_U_4(&olfp->fraction);
+ u = EXTRACT_BE_U_4(lfp->int_part);
+ ou = EXTRACT_BE_U_4(olfp->int_part);
+ uf = EXTRACT_BE_U_4(lfp->fraction);
+ ouf = EXTRACT_BE_U_4(olfp->fraction);
if (ou == 0 && ouf == 0) {
p_ntp_time(ndo, lfp);
return;