X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/49b23c5a9b0198bb382dcf43c458d46fcf2fa809..refs/heads/tcpdump-4.9:/print-medsa.c diff --git a/print-medsa.c b/print-medsa.c index 1266c9c8..4895fd94 100644 --- a/print-medsa.c +++ b/print-medsa.c @@ -30,6 +30,7 @@ #include "netdissect.h" #include "ether.h" #include "ethertype.h" +#include "addrtoname.h" #include "extract.h" static const char tstr[] = "[|MEDSA]"; @@ -137,14 +138,13 @@ medsa_print_full(netdissect_options *ndo, void medsa_print(netdissect_options *ndo, - const u_char *bp, u_int length, u_int caplen) + const u_char *bp, u_int length, u_int caplen, + const struct lladdr_info *src, const struct lladdr_info *dst) { - register const struct ether_header *ep; const struct medsa_pkthdr *medsa; u_short ether_type; medsa = (const struct medsa_pkthdr *)bp; - ep = (const struct ether_header *)(bp - sizeof(*ep)); ND_TCHECK(*medsa); if (!ndo->ndo_eflag) @@ -160,7 +160,7 @@ medsa_print(netdissect_options *ndo, ether_type = EXTRACT_16BITS(&medsa->ether_type); if (ether_type <= ETHERMTU) { /* Try to print the LLC-layer header & higher layers */ - if (llc_print(ndo, bp, length, caplen, ESRC(ep), EDST(ep)) < 0) { + if (llc_print(ndo, bp, length, caplen, src, dst) < 0) { /* packet type not known, print raw packet */ if (!ndo->ndo_suppress_default_print) ND_DEFAULTPRINT(bp, caplen); @@ -171,8 +171,7 @@ medsa_print(netdissect_options *ndo, tok2str(ethertype_values, "Unknown", ether_type), ether_type)); - - if (ethertype_print(ndo, ether_type, bp, length, caplen) == 0) { + if (ethertype_print(ndo, ether_type, bp, length, caplen, src, dst) == 0) { /* ether_type not known, print raw packet */ if (!ndo->ndo_eflag) ND_PRINT((ndo, "ethertype %s (0x%04x) ",