X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/b38f324af9dd953a661b9f35910f8c6d8eb2cc06..refs/heads/master:/print-msnlb.c diff --git a/print-msnlb.c b/print-msnlb.c index 5264da49..4e242df6 100644 --- a/print-msnlb.c +++ b/print-msnlb.c @@ -28,22 +28,20 @@ /* \summary: MS Network Load Balancing's (NLB) heartbeat printer */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif +#include -#include +#include "netdissect-stdinc.h" #include "netdissect.h" #include "addrtoname.h" #include "extract.h" struct msnlb_heartbeat_pkt { - uint32_t unknown1; - uint32_t unknown2; - uint32_t host_prio; /* little-endian */ - uint32_t virtual_ip; - uint32_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 */ }; @@ -52,14 +50,11 @@ msnlb_print(netdissect_options *ndo, const u_char *bp) { const struct msnlb_heartbeat_pkt *hb; + ndo->ndo_protocol = "msnlb"; hb = (const struct msnlb_heartbeat_pkt *)bp; - ND_TCHECK(*hb); - ND_PRINT((ndo, "MS NLB heartbeat, host priority: %u,", - EXTRACT_LE_32BITS(&(hb->host_prio)))); - ND_PRINT((ndo, " cluster IP: %s,", ipaddr_string(ndo, &(hb->virtual_ip)))); - ND_PRINT((ndo, " host IP: %s", ipaddr_string(ndo, &(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)); }