X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/bbedebc666a341d8e14922dce37a92766400c798..b51a0dafc7861eb31d21524ec067d7c529a664b8:/print-msnlb.c diff --git a/print-msnlb.c b/print-msnlb.c index 7cb0bf90..8afaa7fe 100644 --- a/print-msnlb.c +++ b/print-msnlb.c @@ -26,23 +26,24 @@ * SUCH DAMAGE. */ -#define NETDISSECT_REWORKED +/* \summary: MS Network Load Balancing's (NLB) heartbeat printer */ + #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" -#include "interface.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 */ }; @@ -51,14 +52,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(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)); }