int nl80211_get_channel(const char *ifname, int *buf) { char *first; if (!wext_get_channel(ifname, buf)) return 0; else if ((first = nl80211_phy2ifname(nl80211_ifname2phy(ifname))) != NULL) return wext_get_channel(first, buf); return -1; }
//----------------------------------------------------------------------------// int wifi_get_setting(const char *ifname, rtw_wifi_setting_t *pSetting) { int ret = 0; int mode = 0; unsigned short security = 0; memset(pSetting, 0, sizeof(rtw_wifi_setting_t)); if(wext_get_mode(ifname, &mode) < 0) ret = -1; switch(mode) { case IW_MODE_MASTER: pSetting->mode = RTW_MODE_AP; break; case IW_MODE_INFRA: default: pSetting->mode = RTW_MODE_STA; break; //default: //printf("\r\n%s(): Unknown mode %d\n", __func__, mode); //break; } if(wext_get_ssid(ifname, pSetting->ssid) < 0) ret = -1; if(wext_get_channel(ifname, &pSetting->channel) < 0) ret = -1; if(wext_get_enc_ext(ifname, &security, &pSetting->key_idx, pSetting->password) < 0) ret = -1; switch(security){ case IW_ENCODE_ALG_NONE: pSetting->security_type = RTW_SECURITY_OPEN; break; case IW_ENCODE_ALG_WEP: pSetting->security_type = RTW_SECURITY_WEP_PSK; break; case IW_ENCODE_ALG_TKIP: pSetting->security_type = RTW_SECURITY_WPA_TKIP_PSK; break; case IW_ENCODE_ALG_CCMP: pSetting->security_type = RTW_SECURITY_WPA2_AES_PSK; break; default: break; } if(security == IW_ENCODE_ALG_TKIP || security == IW_ENCODE_ALG_CCMP) if(wext_get_passphrase(ifname, pSetting->password) < 0) ret = -1; return ret; }
int wifi_get_channel(int *channel) { return wext_get_channel(WLAN0_NAME, (u8*)channel); }