static int wl_if_wpa_rsn_ies(uint8* cp, uint len) { uint8 *parse = cp; uint parse_len = len; uint8 *wpaie; uint8 *rsnie; while ((wpaie = wlu_parse_tlvs(parse, parse_len, DOT11_MNG_WPA_ID))) if (wlu_is_wpa_ie(&wpaie, &parse, &parse_len)) break; if (wpaie) return 1; rsnie = wlu_parse_tlvs(cp, len, DOT11_MNG_RSN_ID); if (rsnie) return 1; return 0; }
static char *wl_dump_wpa_rsn_ies(uint8 * cp, uint len) { uint8 *parse = cp; uint parse_len = len; uint8 *wpaie; uint8 *rsnie; static char sum[128] = { 0 }; memset(sum, 0, sizeof(sum)); while ((wpaie = wlu_parse_tlvs(parse, parse_len, DOT11_MNG_WPA_ID))) if (wlu_is_wpa_ie(&wpaie, &parse, &parse_len)) break; if (wpaie) wl_rsn_ie_dump((bcm_tlv_t *) wpaie, sum); rsnie = wlu_parse_tlvs(cp, len, DOT11_MNG_RSN_ID); if (rsnie) wl_rsn_ie_dump((bcm_tlv_t *) rsnie, sum); if (wpaie || rsnie) return sum; return "WEP"; }