X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=contrib%2Fpackage%2Fiwinfo%2Fsrc%2Fiwinfo_wl.c;fp=contrib%2Fpackage%2Fiwinfo%2Fsrc%2Fiwinfo_wl.c;h=1a7d586d9777ceefce635035385136a15070989d;hb=07fafab9c16ec600d6621c9c67d7474c63ff705b;hp=7c1904bf1d8269aa202ff62c07943a9b9182956b;hpb=16d65c96b035a10aa93a96e5a789ebef9ca3a76d;p=project%2Fluci.git diff --git a/contrib/package/iwinfo/src/iwinfo_wl.c b/contrib/package/iwinfo/src/iwinfo_wl.c index 7c1904bf1..1a7d586d9 100644 --- a/contrib/package/iwinfo/src/iwinfo_wl.c +++ b/contrib/package/iwinfo/src/iwinfo_wl.c @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License along * with the iwinfo library. If not, see http://www.gnu.org/licenses/. * - * This code is based on the wlc.c utility published by OpenWrt.org . + * This code is based on the wlc.c utility published by OpenWrt.org . */ #include "iwinfo_wl.h" @@ -480,6 +480,46 @@ int wl_get_freqlist(const char *ifname, char *buf, int *len) return wext_get_freqlist(ifname, buf, len); } +int wl_get_country(const char *ifname, char *buf) +{ + if( !wl_ioctl(ifname, WLC_GET_COUNTRY, buf, WLC_CNTRY_BUF_SZ) ) + return 0; + + return -1; +} + +int wl_get_countrylist(const char *ifname, char *buf, int *len) +{ + int i, count; + char cdata[WLC_IOCTL_MAXLEN]; + struct iwinfo_country_entry *c = (struct iwinfo_country_entry *)buf; + wl_country_list_t *cl = (wl_country_list_t *)cdata; + + cl->buflen = sizeof(cdata); + + if( !wl_ioctl(ifname, WLC_GET_COUNTRY_LIST, cl, cl->buflen) ) + { + for( i = 0, count = 0; i < cl->count; i++, c++ ) + { + sprintf(c->ccode, &cl->country_abbrev[i * WLC_CNTRY_BUF_SZ]); + c->iso3166 = c->ccode[0] * 256 + c->ccode[1]; + + /* IL0 -> World */ + if( !strcmp(c->ccode, "IL0") ) + c->iso3166 = 0x3030; + + /* YU -> RS */ + else if( !strcmp(c->ccode, "YU") ) + c->iso3166 = 0x5253; + } + + *len = (i * sizeof(struct iwinfo_country_entry)); + return 0; + } + + return -1; +} + int wl_get_mbssid_support(const char *ifname, int *buf) { wlc_rev_info_t revinfo; @@ -496,4 +536,3 @@ int wl_get_mbssid_support(const char *ifname, int *buf) return -1; } -