X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/001fc8411f90713c3495a1f3fcf8c67dbd3afa1b..cda9bf8c5f842fc7110fbbf2234bcc898f78c0bd:/print-msnlb.c diff --git a/print-msnlb.c b/print-msnlb.c index b3004985..5d25f568 100644 --- a/print-msnlb.c +++ b/print-msnlb.c @@ -26,25 +26,24 @@ * SUCH DAMAGE. */ +/* \summary: MS Network Load Balancing's (NLB) heartbeat printer */ + #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include - -#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 */ }; @@ -53,14 +52,15 @@ 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_TCHECK_SIZE(hb); - 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)))); + ND_PRINT("MS NLB heartbeat, host priority: %u,", + GET_LE_U_4((hb->host_prio))); + ND_PRINT(" cluster IP: %s,", ipaddr_string(ndo, hb->virtual_ip)); + ND_PRINT(" host IP: %s", ipaddr_string(ndo, hb->host_ip)); return; trunc: - ND_PRINT((ndo, "[|MS NLB]")); + nd_print_trunc(ndo); }