static int mgmt_body_print(u_int16_t fc, const struct mgmt_header_t *pmh, const u_char *p, u_int length) { switch (FC_SUBTYPE(fc)) { case ST_ASSOC_REQUEST: printf("Assoc Request"); return handle_assoc_request(p, length); case ST_ASSOC_RESPONSE: printf("Assoc Response"); return handle_assoc_response(p, length); case ST_REASSOC_REQUEST: printf("ReAssoc Request"); return handle_reassoc_request(p, length); case ST_REASSOC_RESPONSE: printf("ReAssoc Response"); return handle_reassoc_response(p, length); case ST_PROBE_REQUEST: printf("Probe Request"); return handle_probe_request(p, length); case ST_PROBE_RESPONSE: printf("Probe Response"); return handle_probe_response(p, length); case ST_BEACON: printf("Beacon"); return handle_beacon(p, length); case ST_ATIM: printf("ATIM"); return handle_atim(); case ST_DISASSOC: printf("Disassociation"); return handle_disassoc(p, length); case ST_AUTH: printf("Authentication"); if (!TTEST2(*p, 3)) return 0; if ((p[0] == 0 ) && (p[1] == 0) && (p[2] == 0)) { printf("Authentication (Shared-Key)-3 "); return wep_print(p); } return handle_auth(p, length); case ST_DEAUTH: printf("DeAuthentication"); return handle_deauth(pmh, p, length); break; case ST_ACTION: printf("Action"); return handle_action(pmh, p, length); break; default: printf("Unhandled Management subtype(%x)", FC_SUBTYPE(fc)); return 1; } }
static int mgmt_body_print(u_int16_t fc, const struct mgmt_header_t *pmh, const u_char *p) { printf("%s", subtype_text[FC_SUBTYPE(fc)]); switch (FC_SUBTYPE(fc)) { case ST_ASSOC_REQUEST: return handle_assoc_request(p); case ST_ASSOC_RESPONSE: return handle_assoc_response(p); case ST_REASSOC_REQUEST: return handle_reassoc_request(p); case ST_REASSOC_RESPONSE: return handle_reassoc_response(p); case ST_PROBE_REQUEST: return handle_probe_request(p); case ST_PROBE_RESPONSE: return handle_probe_response(p); case ST_BEACON: return handle_beacon(p); case ST_ATIM: return handle_atim(); case ST_DISASSOC: return handle_disassoc(p); case ST_AUTH: if (!TTEST2(*p, 3)) return 0; if ((p[0] == 0 ) && (p[1] == 0) && (p[2] == 0)) { printf("Authentication (Shared-Key)-3 "); return wep_print(p); } return handle_auth(p); case ST_DEAUTH: return handle_deauth(pmh, p); break; default: printf("Unhandled Management subtype(%x)", FC_SUBTYPE(fc)); return 1; } }
static int handle_reassoc_response(const u_char *p) { /* Same as a Association Reponse */ return handle_assoc_response(p); }
static int handle_reassoc_response(const u_char *p, u_int length) { /* Same as a Association Reponse */ return handle_assoc_response(p, length); }