driver_common.c revision ea69e84a6f4455c59348485895d3d5e3af77a65b
11f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt/* 21f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Common driver-related functions 31f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * Copyright (c) 2003-2011, Jouni Malinen <j@w1.fi> 41f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 71f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */ 81f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 91f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#include "includes.h" 101f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#include "utils/common.h" 111f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#include "driver.h" 121f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 131f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtvoid wpa_scan_results_free(struct wpa_scan_results *res) 141f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 151f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt size_t i; 161f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 171f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt if (res == NULL) 181f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt return; 191f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 201f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt for (i = 0; i < res->num; i++) 211f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt os_free(res->res[i]); 221f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt os_free(res->res); 231f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt os_free(res); 241f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 251f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 261f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 271f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidtconst char * event_to_string(enum wpa_event_type event) 281f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt{ 291f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#define E2S(n) case EVENT_ ## n: return #n 301f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt switch (event) { 311f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(ASSOC); 321f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(DISASSOC); 331f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(MICHAEL_MIC_FAILURE); 341f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(SCAN_RESULTS); 351f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(ASSOCINFO); 361f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(INTERFACE_STATUS); 371f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(PMKID_CANDIDATE); 381f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(STKSTART); 391f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(TDLS); 401f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(FT_RESPONSE); 411f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(IBSS_RSN_START); 421f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(AUTH); 431f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(DEAUTH); 441f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(ASSOC_REJECT); 451f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(AUTH_TIMED_OUT); 461f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(ASSOC_TIMED_OUT); 471f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(FT_RRB_RX); 481f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(WPS_BUTTON_PUSHED); 491f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(TX_STATUS); 501f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(RX_FROM_UNKNOWN); 511f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(RX_MGMT); 521f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(RX_ACTION); 531f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(REMAIN_ON_CHANNEL); 541f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(CANCEL_REMAIN_ON_CHANNEL); 551f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(MLME_RX); 561f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(RX_PROBE_REQ); 571f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(NEW_STA); 581f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(EAPOL_RX); 591f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(SIGNAL_CHANGE); 601f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(INTERFACE_ENABLED); 611f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(INTERFACE_DISABLED); 621f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(CHANNEL_LIST_CHANGED); 631f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(INTERFACE_UNAVAILABLE); 641f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(BEST_CHANNEL); 651f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(UNPROT_DEAUTH); 661f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(UNPROT_DISASSOC); 671f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(STATION_LOW_ACK); 681f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_DEV_FOUND); 691f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_GO_NEG_REQ_RX); 701f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_GO_NEG_COMPLETED); 711f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_PROV_DISC_REQUEST); 721f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_PROV_DISC_RESPONSE); 731f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_SD_REQUEST); 741f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(P2P_SD_RESPONSE); 751f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(IBSS_PEER_LOST); 761f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(DRIVER_GTK_REKEY); 771f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(SCHED_SCAN_STOPPED); 781f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(DRIVER_CLIENT_POLL_OK); 791f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt E2S(EAPOL_TX_STATUS); 8004949598a23f501be6eec21697465fd46a28840aDmitry Shmidt E2S(CH_SWITCH); 8161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt E2S(WNM); 82f86232838cf712377867cb42417c1613ab5dc425Dmitry Shmidt E2S(CONNECT_FAILED_REASON); 83ea69e84a6f4455c59348485895d3d5e3af77a65bDmitry Shmidt E2S(DFS_RADAR_DETECTED); 84ea69e84a6f4455c59348485895d3d5e3af77a65bDmitry Shmidt E2S(DFS_CAC_FINISHED); 85ea69e84a6f4455c59348485895d3d5e3af77a65bDmitry Shmidt E2S(DFS_CAC_ABORTED); 86ea69e84a6f4455c59348485895d3d5e3af77a65bDmitry Shmidt E2S(DFS_NOP_FINISHED); 871f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt } 881f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 891f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt return "UNKNOWN"; 901f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt#undef E2S 911f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt} 92