X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/83bec9d56c6af5614a7ab3abd077aed239c26b85..refs/heads/master:/print-msnlb.c diff --git a/print-msnlb.c b/print-msnlb.c index ec16a4db..4e242df6 100644 --- a/print-msnlb.c +++ b/print-msnlb.c @@ -26,22 +26,22 @@ * SUCH DAMAGE. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif +/* \summary: MS Network Load Balancing's (NLB) heartbeat printer */ -#include +#include + +#include "netdissect-stdinc.h" #include "netdissect.h" #include "addrtoname.h" #include "extract.h" struct msnlb_heartbeat_pkt { - u_int32_t unknown1; - u_int32_t unknown2; - u_int32_t host_prio; /* little-endian */ - u_int32_t virtual_ip; - u_int32_t host_ip; + nd_byte unknown1[4]; + nd_byte unknown2[4]; + nd_uint32_t host_prio; /* little-endian */ + nd_ipv4 virtual_ip; + nd_ipv4 host_ip; /* the protocol is undocumented so we ignore the rest */ }; @@ -50,14 +50,11 @@ msnlb_print(netdissect_options *ndo, const u_char *bp) { const struct msnlb_heartbeat_pkt *hb; - hb = (struct msnlb_heartbeat_pkt *)bp; - ND_TCHECK(*hb); + ndo->ndo_protocol = "msnlb"; + hb = (const struct msnlb_heartbeat_pkt *)bp; - ND_PRINT((ndo, "MS NLB heartbeat, host priority: %u,", - EXTRACT_LE_32BITS(&(hb->host_prio)))); - ND_PRINT((ndo, " cluster IP: %s,", ipaddr_string(&(hb->virtual_ip)))); - ND_PRINT((ndo, " host IP: %s", ipaddr_string(&(hb->host_ip)))); - return; -trunc: - ND_PRINT((ndo, "[|MS NLB]")); + ND_PRINT("MS NLB heartbeat"); + ND_PRINT(", host priority: %u", GET_LE_U_4((hb->host_prio))); + ND_PRINT(", cluster IP: %s", GET_IPADDR_STRING(hb->virtual_ip)); + ND_PRINT(", host IP: %s", GET_IPADDR_STRING(hb->host_ip)); }