projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4fffc38
)
iwinfo: transparently handle radioX names in madwifi backend
author
Jo-Philipp Wich
<jow@openwrt.org>
Tue, 14 Aug 2012 10:33:40 +0000
(10:33 +0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Tue, 14 Aug 2012 10:33:40 +0000
(10:33 +0000)
SVN-Revision: 33180
package/iwinfo/src/iwinfo_madwifi.c
patch
|
blob
|
history
diff --git
a/package/iwinfo/src/iwinfo_madwifi.c
b/package/iwinfo/src/iwinfo_madwifi.c
index 50efcbfd40f519343323d7766052930bbc7f10b5..832f40bd3d8bb55d6d9fafe65cddf860d00029ed 100644
(file)
--- a/
package/iwinfo/src/iwinfo_madwifi.c
+++ b/
package/iwinfo/src/iwinfo_madwifi.c
@@
-196,6
+196,18
@@
static struct ISO3166_to_CCode
};
};
+static const char * madwifi_phyname(const char *ifname)
+{
+ static char phyname[IFNAMSIZ];
+
+ if (strlen(ifname) > 5 && !strncmp(ifname, "radio", 5))
+ snprintf(phyname, sizeof(phyname), "wifi%s", ifname + 5);
+ else
+ snprintf(phyname, sizeof(phyname), "%s", ifname);
+
+ return (const char *)phyname;
+}
+
static int madwifi_wrq(struct iwreq *wrq, const char *ifname, int cmd, void *data, size_t len)
{
strncpy(wrq->ifr_name, ifname, IFNAMSIZ);
static int madwifi_wrq(struct iwreq *wrq, const char *ifname, int cmd, void *data, size_t len)
{
strncpy(wrq->ifr_name, ifname, IFNAMSIZ);
@@
-263,12
+275,14
@@
static int madwifi_iswifi(const char *ifname)
int ret;
char path[32];
struct stat s;
int ret;
char path[32];
struct stat s;
+ const char *phy;
ret = 0;
ret = 0;
+ phy = madwifi_phyname(ifname);
- if( strlen(
ifname
) <= 7 )
+ if( strlen(
phy
) <= 7 )
{
{
- sprintf(path, "/proc/sys/dev/%s/diversity",
ifname
);
+ sprintf(path, "/proc/sys/dev/%s/diversity",
phy
);
if( ! stat(path, &s) )
ret = (s.st_mode & S_IFREG);
if( ! stat(path, &s) )
ret = (s.st_mode & S_IFREG);
@@
-279,13
+293,13
@@
static int madwifi_iswifi(const char *ifname)
static char * madwifi_ifadd(const char *ifname)
{
static char * madwifi_ifadd(const char *ifname)
{
- char *wifidev = NULL;
+ c
onst c
har *wifidev = NULL;
struct ifreq ifr = { 0 };
struct ieee80211_clone_params cp = { 0 };
static char nif[IFNAMSIZ] = { 0 };
if( !(wifidev = madwifi_isvap(ifname, NULL)) && madwifi_iswifi(ifname) )
struct ifreq ifr = { 0 };
struct ieee80211_clone_params cp = { 0 };
static char nif[IFNAMSIZ] = { 0 };
if( !(wifidev = madwifi_isvap(ifname, NULL)) && madwifi_iswifi(ifname) )
- wifidev =
(char *)ifname
;
+ wifidev =
madwifi_phyname(ifname)
;
if( wifidev )
{
if( wifidev )
{
@@
-1014,8
+1028,9
@@
int madwifi_get_hardware_id(const char *ifname, char *buf)
char device[64];
struct iwinfo_hardware_id *ids;
struct iwinfo_hardware_entry *e;
char device[64];
struct iwinfo_hardware_id *ids;
struct iwinfo_hardware_entry *e;
+ const char *phy = madwifi_phyname(ifname);
- if (wext_get_hardware_id(
ifname
, buf))
+ if (wext_get_hardware_id(
phy
, buf))
return iwinfo_hardware_id_from_mtd((struct iwinfo_hardware_id *)buf);
return 0;
return iwinfo_hardware_id_from_mtd((struct iwinfo_hardware_id *)buf);
return 0;