#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_4(bp->key_id);
ND_PRINT("\n\tKey id: %u", EXTRACT_BE_U_4(bp->key_id));
ND_TCHECK_LEN(bp->message_digest, 16);
- ND_PRINT("\n\tAuthentication: %08x%08x%08x%08x",
- EXTRACT_BE_U_4(bp->message_digest),
- EXTRACT_BE_U_4(bp->message_digest + 4),
- EXTRACT_BE_U_4(bp->message_digest + 8),
- EXTRACT_BE_U_4(bp->message_digest + 12));
+ ND_PRINT("\n\tAuthentication: %08x%08x%08x%08x",
+ EXTRACT_BE_U_4(bp->message_digest),
+ EXTRACT_BE_U_4(bp->message_digest + 4),
+ EXTRACT_BE_U_4(bp->message_digest + 8),
+ EXTRACT_BE_U_4(bp->message_digest + 12));
} else if (length == NTP_TIMEMSG_MINLEN + 4 + 20) { /* Optional: key-id + 160-bit digest */
ND_TCHECK_4(bp->key_id);
ND_PRINT("\n\tKey id: %u", EXTRACT_BE_U_4(bp->key_id));
ND_TCHECK_LEN(bp->message_digest, 20);
ND_PRINT("\n\tAuthentication: %08x%08x%08x%08x%08x",
- EXTRACT_BE_U_4(bp->message_digest),
- EXTRACT_BE_U_4(bp->message_digest + 4),
- EXTRACT_BE_U_4(bp->message_digest + 8),
- EXTRACT_BE_U_4(bp->message_digest + 12),
- EXTRACT_BE_U_4(bp->message_digest + 16));
+ EXTRACT_BE_U_4(bp->message_digest),
+ EXTRACT_BE_U_4(bp->message_digest + 4),
+ EXTRACT_BE_U_4(bp->message_digest + 8),
+ EXTRACT_BE_U_4(bp->message_digest + 12),
+ EXTRACT_BE_U_4(bp->message_digest + 16));
} else if (length > NTP_TIMEMSG_MINLEN) {
ND_PRINT("\n\t(%u more bytes after the header)", length - NTP_TIMEMSG_MINLEN);
}
return;
invalid:
- ND_PRINT(" %s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(bp, length);
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
/*
return;
invalid:
- ND_PRINT(" %s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cd, length);
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
union ntpdata {
*/
void
ntp_print(netdissect_options *ndo,
- const u_char *cp, u_int length)
+ const u_char *cp, u_int length)
{
const union ntpdata *bp = (const union ntpdata *)cp;
u_int mode, version, leapind;
mode = (status & MODEMASK) >> MODESHIFT;
if (!ndo->ndo_vflag) {
ND_PRINT(", %s, length %u",
- tok2str(ntp_mode_values, "Unknown mode", mode),
- length);
+ tok2str(ntp_mode_values, "Unknown mode", mode),
+ length);
return;
}
ND_PRINT(", %s, length %u\n",
- tok2str(ntp_mode_values, "Unknown mode", mode), length);
+ tok2str(ntp_mode_values, "Unknown mode", mode), length);
/* leapind = (status & LEAPMASK) >> LEAPSHIFT; */
leapind = (status & LEAPMASK);
ND_PRINT("\tLeap indicator: %s (%u)",
- tok2str(ntp_leapind_values, "Unknown", leapind),
- leapind);
+ tok2str(ntp_leapind_values, "Unknown", leapind),
+ leapind);
switch (mode) {
return;
trunc:
- ND_PRINT(" %s", tstr);
+ nd_print_trunc(ndo);
}
static void
static void
p_ntp_time(netdissect_options *ndo,
- const struct l_fixedpt *lfp)
+ const struct l_fixedpt *lfp)
{
uint32_t i;
uint32_t uf;
ND_PRINT(" (unrepresentable)");
} else {
/* use ISO 8601 (RFC3339) format */
- strftime(time_buf, sizeof (time_buf), "%Y-%m-%dT%H:%M:%S", tm);
+ strftime(time_buf, sizeof (time_buf), "%Y-%m-%dT%H:%M:%SZ", tm);
ND_PRINT(" (%s)", time_buf);
}
}
/* Prints time difference between *lfp and *olfp */
static void
p_ntp_delta(netdissect_options *ndo,
- const struct l_fixedpt *olfp,
- const struct l_fixedpt *lfp)
+ const struct l_fixedpt *olfp,
+ const struct l_fixedpt *lfp)
{
uint32_t u, uf;
uint32_t ou, ouf;