#include "addrtoname.h"
#include "extract.h"
-static const char tstr[] = " [|ntp]";
/*
* Based on ntp.h from the U of MD implementation
ND_TCHECK_1(bp->ppoll);
ND_PRINT(", poll %d", EXTRACT_S_1(bp->ppoll));
- p_poll(ndo, EXTRACT_U_1(bp->ppoll));
+ p_poll(ndo, EXTRACT_S_1(bp->ppoll));
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);
break;
case PRIM_REF:
- if (fn_printn(ndo, (const u_char *)&(bp->refid), 4, ndo->ndo_snapend))
+ if (nd_printn(ndo, (const u_char *)&(bp->refid), 4, ndo->ndo_snapend))
goto trunc;
break;
case INFO_QUERY:
- ND_PRINT("%s INFO_QUERY", ipaddr_string(ndo, &(bp->refid)));
+ ND_PRINT("%s INFO_QUERY", ipaddr_string(ndo, bp->refid));
/* this doesn't have more content */
return;
case INFO_REPLY:
- ND_PRINT("%s INFO_REPLY", ipaddr_string(ndo, &(bp->refid)));
+ ND_PRINT("%s INFO_REPLY", ipaddr_string(ndo, bp->refid));
/* this is too complex to be worth printing */
return;
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));
return;
invalid:
- ND_PRINT(" %s", istr);
+ ND_PRINT("%s", istr);
ND_TCHECK_LEN(bp, length);
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
/*
return;
invalid:
- ND_PRINT(" %s", istr);
+ ND_PRINT("%s", istr);
ND_TCHECK_LEN(cd, length);
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
union ntpdata {
u_int mode, version, leapind;
uint8_t status;
+ ndo->ndo_protocol = "ntp";
ND_TCHECK_1(bp->td.status);
status = EXTRACT_U_1(bp->td.status);
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
static void
ff += FMAXINT;
ff = ff / FMAXINT; /* shift radix point by 32 bits */
f = (uint32_t)(ff * 1000000000.0); /* treat fraction as parts per billion */
- ND_PRINT("%u.%09d", i, f);
+ ND_PRINT("%u.%09u", i, f);
#ifdef HAVE_STRFTIME
/*
const struct l_fixedpt *olfp,
const struct l_fixedpt *lfp)
{
- int32_t i;
uint32_t u, uf;
uint32_t ou, ouf;
+ uint32_t i;
uint32_t f;
double ff;
int signbit;
return;
}
- i = u - ou;
-
- if (i > 0) { /* new is definitely greater than old */
+ if (u > ou) { /* new is definitely greater than old */
signbit = 0;
+ i = u - ou;
f = uf - ouf;
if (ouf > uf) /* must borrow from high-order bits */
i -= 1;
- } else if (i < 0) { /* new is definitely less than old */
+ } else if (u < ou) { /* new is definitely less than old */
signbit = 1;
+ i = ou - u;
f = ouf - uf;
- if (uf > ouf) /* must carry into the high-order bits */
- i += 1;
- i = -i;
+ if (uf > ouf) /* must borrow from the high-order bits */
+ i -= 1;
} else { /* int_part is zero */
+ i = 0;
if (uf > ouf) {
signbit = 0;
f = uf - ouf;
ff += FMAXINT;
ff = ff / FMAXINT; /* shift radix point by 32 bits */
f = (uint32_t)(ff * 1000000000.0); /* treat fraction as parts per billion */
- ND_PRINT("%s%d.%09d", signbit ? "-" : "+", i, f);
+ ND_PRINT("%s%u.%09u", signbit ? "-" : "+", i, f);
}
/* Prints polling interval in log2 as seconds or fraction of second */