/* * Print IPX datagram packets. */ void ipx_print(packetbody_t p, u_int length) { __capability const struct ipxHdr *ipx = (__capability const struct ipxHdr *)p; if (!eflag) printf("IPX "); PACKET_HAS_ELEMENT_OR_TRUNC(ipx, srcSkt); (void)printf("%s.%04x > ", ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode), EXTRACT_16BITS(&ipx->srcSkt)); (void)printf("%s.%04x: ", ipxaddr_string(EXTRACT_32BITS(ipx->dstNet), ipx->dstNode), EXTRACT_16BITS(&ipx->dstSkt)); /* take length from ipx header */ PACKET_HAS_ELEMENT_OR_TRUNC(ipx, length); length = EXTRACT_16BITS(&ipx->length); ipx_decode(ipx, (packetbody_t)ipx + ipxSize, length - ipxSize); return; trunc: printf("[|ipx %d]", length); }
/* * Print IPX datagram packets. */ void ipx_print(const u_char *p, u_int length) { const struct ipxHdr *ipx = (const struct ipxHdr *)p; if (!eflag) printf("IPX "); TCHECK(ipx->srcSkt); (void)printf("%s.%04x > ", ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode), EXTRACT_16BITS(&ipx->srcSkt)); (void)printf("%s.%04x: ", ipxaddr_string(EXTRACT_32BITS(ipx->dstNet), ipx->dstNode), EXTRACT_16BITS(&ipx->dstSkt)); /* take length from ipx header */ TCHECK(ipx->length); length = EXTRACT_16BITS(&ipx->length); ipx_decode(ipx, (u_char *)ipx + ipxSize, length - ipxSize); return; trunc: printf("[|ipx %d]", length); }
/* * Print IPX datagram packets. */ void ipx_print(netdissect_options *ndo, const u_char *p, u_int length) { const struct ipxHdr *ipx = (const struct ipxHdr *)p; if (!ndo->ndo_eflag) ND_PRINT((ndo, "IPX ")); ND_TCHECK(ipx->srcSkt); ND_PRINT((ndo, "%s.%04x > ", ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode), EXTRACT_16BITS(&ipx->srcSkt))); ND_PRINT((ndo, "%s.%04x: ", ipxaddr_string(EXTRACT_32BITS(ipx->dstNet), ipx->dstNode), EXTRACT_16BITS(&ipx->dstSkt))); /* take length from ipx header */ ND_TCHECK(ipx->length); length = EXTRACT_16BITS(&ipx->length); ipx_decode(ndo, ipx, (u_char *)ipx + ipxSize, length - ipxSize); return; trunc: ND_PRINT((ndo, "[|ipx %d]", length)); }