X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/d526e47658b691c4b5ca0d29759d1f67b7fb037b..a8abce5c5e2dce2ba6dbccd5d3829da104b80f9c:/print-eap.c?ds=sidebyside diff --git a/print-eap.c b/print-eap.c index e72e5900..797224d6 100644 --- a/print-eap.c +++ b/print-eap.c @@ -21,10 +21,10 @@ /* \summary: Extensible Authentication Protocol (EAP) printer */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" #include "netdissect.h" #include "extract.h" @@ -156,6 +156,7 @@ eap_print(netdissect_options *ndo, u_int eap_type, tlen, type, subtype; int count=0, len; + ndo->ndo_protocol = "eap"; tptr = cp; tlen = length; eap = (const struct eap_frame_t *)cp; @@ -164,19 +165,19 @@ eap_print(netdissect_options *ndo, /* in non-verbose mode just lets print the basic info */ if (ndo->ndo_vflag < 1) { - ND_PRINT((ndo, "%s (%u) v%u, len %u", + ND_PRINT("%s (%u) v%u, len %u", tok2str(eap_frame_type_values, "unknown", eap_type), eap_type, EXTRACT_U_1(eap->version), - EXTRACT_BE_U_2(eap->length))); + EXTRACT_BE_U_2(eap->length)); return; } - ND_PRINT((ndo, "%s (%u) v%u, len %u", + ND_PRINT("%s (%u) v%u, len %u", tok2str(eap_frame_type_values, "unknown", eap_type), eap_type, EXTRACT_U_1(eap->version), - EXTRACT_BE_U_2(eap->length))); + EXTRACT_BE_U_2(eap->length)); tptr += sizeof(struct eap_frame_t); tlen -= sizeof(struct eap_frame_t); @@ -187,33 +188,33 @@ eap_print(netdissect_options *ndo, type = EXTRACT_U_1(tptr); ND_TCHECK_2(tptr + 2); len = EXTRACT_BE_U_2(tptr + 2); - ND_PRINT((ndo, ", %s (%u), id %u, len %u", + ND_PRINT(", %s (%u), id %u, len %u", tok2str(eap_code_values, "unknown", type), type, EXTRACT_U_1((tptr + 1)), - len)); + len); ND_TCHECK_LEN(tptr, len); if (type <= 2) { /* For EAP_REQUEST and EAP_RESPONSE only */ ND_TCHECK_1(tptr + 4); subtype = EXTRACT_U_1(tptr + 4); - ND_PRINT((ndo, "\n\t\t Type %s (%u)", + ND_PRINT("\n\t\t Type %s (%u)", tok2str(eap_type_values, "unknown", subtype), - subtype)); + subtype); switch (subtype) { case EAP_TYPE_IDENTITY: if (len - 5 > 0) { - ND_PRINT((ndo, ", Identity: ")); - safeputs(ndo, tptr + 5, len - 5); + ND_PRINT(", Identity: "); + (void)nd_printzp(ndo, tptr + 5, len - 5, NULL); } break; case EAP_TYPE_NOTIFICATION: if (len - 5 > 0) { - ND_PRINT((ndo, ", Notification: ")); - safeputs(ndo, tptr + 5, len - 5); + ND_PRINT(", Notification: "); + (void)nd_printzp(ndo, tptr + 5, len - 5, NULL); } break; @@ -227,9 +228,9 @@ eap_print(netdissect_options *ndo, */ while (count < len) { ND_TCHECK_1(tptr + count); - ND_PRINT((ndo, " %s (%u),", + ND_PRINT(" %s (%u),", tok2str(eap_type_values, "unknown", EXTRACT_U_1((tptr + count))), - EXTRACT_U_1(tptr + count))); + EXTRACT_U_1(tptr + count)); count++; } break; @@ -238,29 +239,29 @@ eap_print(netdissect_options *ndo, case EAP_TYPE_TLS: ND_TCHECK_1(tptr + 5); if (subtype == EAP_TYPE_TTLS) - ND_PRINT((ndo, " TTLSv%u", - EAP_TTLS_VERSION(EXTRACT_U_1((tptr + 5))))); - ND_PRINT((ndo, " flags [%s] 0x%02x,", + ND_PRINT(" TTLSv%u", + EAP_TTLS_VERSION(EXTRACT_U_1((tptr + 5)))); + ND_PRINT(" flags [%s] 0x%02x,", bittok2str(eap_tls_flags_values, "none", EXTRACT_U_1((tptr + 5))), - EXTRACT_U_1(tptr + 5))); + EXTRACT_U_1(tptr + 5)); if (EAP_TLS_EXTRACT_BIT_L(EXTRACT_U_1(tptr + 5))) { ND_TCHECK_4(tptr + 6); - ND_PRINT((ndo, " len %u", EXTRACT_BE_U_4(tptr + 6))); + ND_PRINT(" len %u", EXTRACT_BE_U_4(tptr + 6)); } break; case EAP_TYPE_FAST: ND_TCHECK_1(tptr + 5); - ND_PRINT((ndo, " FASTv%u", - EAP_TTLS_VERSION(EXTRACT_U_1((tptr + 5))))); - ND_PRINT((ndo, " flags [%s] 0x%02x,", + ND_PRINT(" FASTv%u", + EAP_TTLS_VERSION(EXTRACT_U_1((tptr + 5)))); + ND_PRINT(" flags [%s] 0x%02x,", bittok2str(eap_tls_flags_values, "none", EXTRACT_U_1((tptr + 5))), - EXTRACT_U_1(tptr + 5))); + EXTRACT_U_1(tptr + 5)); if (EAP_TLS_EXTRACT_BIT_L(EXTRACT_U_1(tptr + 5))) { ND_TCHECK_4(tptr + 6); - ND_PRINT((ndo, " len %u", EXTRACT_BE_U_4(tptr + 6))); + ND_PRINT(" len %u", EXTRACT_BE_U_4(tptr + 6)); } /* FIXME - TLV attributes follow */ @@ -269,9 +270,9 @@ eap_print(netdissect_options *ndo, case EAP_TYPE_AKA: case EAP_TYPE_SIM: ND_TCHECK_1(tptr + 5); - ND_PRINT((ndo, " subtype [%s] 0x%02x,", + ND_PRINT(" subtype [%s] 0x%02x,", tok2str(eap_aka_subtype_values, "unknown", EXTRACT_U_1((tptr + 5))), - EXTRACT_U_1(tptr + 5))); + EXTRACT_U_1(tptr + 5)); /* FIXME - TLV attributes follow */ break; @@ -295,11 +296,5 @@ eap_print(netdissect_options *ndo, return; trunc: - ND_PRINT((ndo, "\n\t[|EAP]")); + nd_print_trunc(ndo); } - -/* - * Local Variables: - * c-basic-offset: 4 - * End: - */