summaryrefslogtreecommitdiffhomepage
path: root/libs/iwinfo/src/iwinfo_madwifi.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/iwinfo/src/iwinfo_madwifi.c')
-rw-r--r--libs/iwinfo/src/iwinfo_madwifi.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/libs/iwinfo/src/iwinfo_madwifi.c b/libs/iwinfo/src/iwinfo_madwifi.c
index 83829cf399..33307022e8 100644
--- a/libs/iwinfo/src/iwinfo_madwifi.c
+++ b/libs/iwinfo/src/iwinfo_madwifi.c
@@ -435,7 +435,29 @@ int madwifi_get_assoclist(const char *ifname, char *buf, int *len)
int madwifi_get_txpwrlist(const char *ifname, char *buf, int *len)
{
- return wext_get_txpwrlist(ifname, buf, len);
+ int rc = -1;
+ char cmd[256];
+
+ /* A wifiX device? */
+ if( madwifi_iswifi(ifname) )
+ {
+ sprintf(cmd, "wlanconfig ath-txpwr create nounit "
+ "wlandev %s wlanmode ap >/dev/null", ifname);
+
+ if( ! WEXITSTATUS(system(cmd)) )
+ {
+ rc = wext_get_txpwrlist("ath-txpwr", buf, len);
+ (void) WEXITSTATUS(system("wlanconfig ath-txpwr destroy"));
+ }
+ }
+
+ /* Its an athX ... */
+ else if( madwifi_isvap(ifname, NULL) )
+ {
+ rc = wext_get_txpwrlist(ifname, buf, len);
+ }
+
+ return rc;
}
int madwifi_get_scanlist(const char *ifname, char *buf, int *len)