1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 21:34:04 +02:00

[package] iwinfo: replace internal constant mode strings with enums

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30692 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2012-02-23 13:16:09 +00:00
parent 250113e1c6
commit bfef9dc359
13 changed files with 71 additions and 52 deletions

View File

@ -49,6 +49,17 @@ extern const char *IWINFO_KMGMT_NAMES[];
extern const char *IWINFO_AUTH_NAMES[]; extern const char *IWINFO_AUTH_NAMES[];
enum iwinfo_opmode {
IWINFO_OPMODE_UNKNOWN = 0,
IWINFO_OPMODE_MASTER = 1,
IWINFO_OPMODE_ADHOC = 2,
IWINFO_OPMODE_CLIENT = 3,
IWINFO_OPMODE_MONITOR = 4,
};
extern const char *IWINFO_OPMODE_NAMES[];
struct iwinfo_rate_entry { struct iwinfo_rate_entry {
uint16_t rate; uint16_t rate;
uint8_t mcs; uint8_t mcs;
@ -90,7 +101,7 @@ struct iwinfo_crypto_entry {
struct iwinfo_scanlist_entry { struct iwinfo_scanlist_entry {
uint8_t mac[6]; uint8_t mac[6];
uint8_t ssid[IWINFO_ESSID_MAX_SIZE+1]; uint8_t ssid[IWINFO_ESSID_MAX_SIZE+1];
uint8_t mode[8]; enum iwinfo_opmode mode;
uint8_t channel; uint8_t channel;
uint8_t signal; uint8_t signal;
uint8_t quality; uint8_t quality;
@ -131,6 +142,7 @@ extern const struct iwinfo_hardware_entry IWINFO_HARDWARE_ENTRIES[];
struct iwinfo_ops { struct iwinfo_ops {
int (*mode)(const char *, int *);
int (*channel)(const char *, int *); int (*channel)(const char *, int *);
int (*frequency)(const char *, int *); int (*frequency)(const char *, int *);
int (*frequency_offset)(const char *, int *); int (*frequency_offset)(const char *, int *);
@ -143,7 +155,6 @@ struct iwinfo_ops {
int (*quality_max)(const char *, int *); int (*quality_max)(const char *, int *);
int (*mbssid_support)(const char *, int *); int (*mbssid_support)(const char *, int *);
int (*hwmodelist)(const char *, int *); int (*hwmodelist)(const char *, int *);
int (*mode)(const char *, char *);
int (*ssid)(const char *, char *); int (*ssid)(const char *, char *);
int (*bssid)(const char *, char *); int (*bssid)(const char *, char *);
int (*country)(const char *, char *); int (*country)(const char *, char *);

View File

@ -26,7 +26,7 @@
#include "iwinfo/api/madwifi.h" #include "iwinfo/api/madwifi.h"
int madwifi_probe(const char *ifname); int madwifi_probe(const char *ifname);
int madwifi_get_mode(const char *ifname, char *buf); int madwifi_get_mode(const char *ifname, int *buf);
int madwifi_get_ssid(const char *ifname, char *buf); int madwifi_get_ssid(const char *ifname, char *buf);
int madwifi_get_bssid(const char *ifname, char *buf); int madwifi_get_bssid(const char *ifname, char *buf);
int madwifi_get_country(const char *ifname, char *buf); int madwifi_get_country(const char *ifname, char *buf);

View File

@ -68,7 +68,7 @@ struct nl80211_array_buf {
}; };
int nl80211_probe(const char *ifname); int nl80211_probe(const char *ifname);
int nl80211_get_mode(const char *ifname, char *buf); int nl80211_get_mode(const char *ifname, int *buf);
int nl80211_get_ssid(const char *ifname, char *buf); int nl80211_get_ssid(const char *ifname, char *buf);
int nl80211_get_bssid(const char *ifname, char *buf); int nl80211_get_bssid(const char *ifname, char *buf);
int nl80211_get_country(const char *ifname, char *buf); int nl80211_get_country(const char *ifname, char *buf);

View File

@ -27,7 +27,7 @@
int wext_probe(const char *ifname); int wext_probe(const char *ifname);
int wext_get_mode(const char *ifname, char *buf); int wext_get_mode(const char *ifname, int *buf);
int wext_get_ssid(const char *ifname, char *buf); int wext_get_ssid(const char *ifname, char *buf);
int wext_get_bssid(const char *ifname, char *buf); int wext_get_bssid(const char *ifname, char *buf);
int wext_get_country(const char *ifname, char *buf); int wext_get_country(const char *ifname, char *buf);

View File

@ -26,7 +26,7 @@
#include "iwinfo/api/broadcom.h" #include "iwinfo/api/broadcom.h"
int wl_probe(const char *ifname); int wl_probe(const char *ifname);
int wl_get_mode(const char *ifname, char *buf); int wl_get_mode(const char *ifname, int *buf);
int wl_get_ssid(const char *ifname, char *buf); int wl_get_ssid(const char *ifname, char *buf);
int wl_get_bssid(const char *ifname, char *buf); int wl_get_bssid(const char *ifname, char *buf);
int wl_get_country(const char *ifname, char *buf); int wl_get_country(const char *ifname, char *buf);

View File

@ -391,10 +391,13 @@ static char * print_bssid(const struct iwinfo_ops *iw, const char *ifname)
static char * print_mode(const struct iwinfo_ops *iw, const char *ifname) static char * print_mode(const struct iwinfo_ops *iw, const char *ifname)
{ {
int mode;
static char buf[128]; static char buf[128];
if (iw->mode(ifname, buf)) if (iw->mode(ifname, &mode))
snprintf(buf, sizeof(buf), "unknown"); mode = IWINFO_OPMODE_UNKNOWN;
snprintf(buf, sizeof(buf), "%s", IWINFO_OPMODE_NAMES[mode]);
return buf; return buf;
} }
@ -572,7 +575,7 @@ static void print_scanlist(const struct iwinfo_ops *iw, const char *ifname)
printf(" ESSID: %s\n", printf(" ESSID: %s\n",
format_ssid(e->ssid)); format_ssid(e->ssid));
printf(" Mode: %s Channel: %s\n", printf(" Mode: %s Channel: %s\n",
e->mode ? (char *)e->mode : "unknown", IWINFO_OPMODE_NAMES[e->mode],
format_channel(e->channel)); format_channel(e->channel));
printf(" Signal: %s Quality: %s/%s\n", printf(" Signal: %s Quality: %s/%s\n",
format_signal(e->signal - 0x100), format_signal(e->signal - 0x100),

View File

@ -44,6 +44,14 @@ const char *IWINFO_AUTH_NAMES[] = {
"SHARED", "SHARED",
}; };
const char *IWINFO_OPMODE_NAMES[] = {
"Unknown",
"Master",
"Ad-Hoc",
"Client",
"Monitor",
};
/* /*
* ISO3166 country labels * ISO3166 country labels

View File

@ -235,6 +235,19 @@ static void iwinfo_L_cryptotable(lua_State *L, struct iwinfo_crypto_entry *c)
} }
/* Wrapper for mode */
static int iwinfo_L_mode(lua_State *L, int (*func)(const char *, int *))
{
int mode;
const char *ifname = luaL_checkstring(L, 1);
if ((*func)(ifname, &mode))
mode = IWINFO_OPMODE_UNKNOWN;
lua_pushstring(L, IWINFO_OPMODE_NAMES[mode]);
return 1;
}
/* Wrapper for assoclist */ /* Wrapper for assoclist */
static int iwinfo_L_assoclist(lua_State *L, int (*func)(const char *, char *, int *)) static int iwinfo_L_assoclist(lua_State *L, int (*func)(const char *, char *, int *))
{ {
@ -383,7 +396,7 @@ static int iwinfo_L_scanlist(lua_State *L, int (*func)(const char *, char *, int
lua_setfield(L, -2, "channel"); lua_setfield(L, -2, "channel");
/* Mode */ /* Mode */
lua_pushstring(L, (char *) e->mode); lua_pushstring(L, IWINFO_OPMODE_NAMES[e->mode]);
lua_setfield(L, -2, "mode"); lua_setfield(L, -2, "mode");
/* Quality, Signal */ /* Quality, Signal */
@ -605,11 +618,11 @@ LUA_WRAP_INT(wl,signal)
LUA_WRAP_INT(wl,noise) LUA_WRAP_INT(wl,noise)
LUA_WRAP_INT(wl,quality) LUA_WRAP_INT(wl,quality)
LUA_WRAP_INT(wl,quality_max) LUA_WRAP_INT(wl,quality_max)
LUA_WRAP_STRING(wl,mode)
LUA_WRAP_STRING(wl,ssid) LUA_WRAP_STRING(wl,ssid)
LUA_WRAP_STRING(wl,bssid) LUA_WRAP_STRING(wl,bssid)
LUA_WRAP_STRING(wl,country) LUA_WRAP_STRING(wl,country)
LUA_WRAP_STRING(wl,hardware_name) LUA_WRAP_STRING(wl,hardware_name)
LUA_WRAP_STRUCT(wl,mode)
LUA_WRAP_STRUCT(wl,assoclist) LUA_WRAP_STRUCT(wl,assoclist)
LUA_WRAP_STRUCT(wl,txpwrlist) LUA_WRAP_STRUCT(wl,txpwrlist)
LUA_WRAP_STRUCT(wl,scanlist) LUA_WRAP_STRUCT(wl,scanlist)
@ -633,11 +646,11 @@ LUA_WRAP_INT(madwifi,signal)
LUA_WRAP_INT(madwifi,noise) LUA_WRAP_INT(madwifi,noise)
LUA_WRAP_INT(madwifi,quality) LUA_WRAP_INT(madwifi,quality)
LUA_WRAP_INT(madwifi,quality_max) LUA_WRAP_INT(madwifi,quality_max)
LUA_WRAP_STRING(madwifi,mode)
LUA_WRAP_STRING(madwifi,ssid) LUA_WRAP_STRING(madwifi,ssid)
LUA_WRAP_STRING(madwifi,bssid) LUA_WRAP_STRING(madwifi,bssid)
LUA_WRAP_STRING(madwifi,country) LUA_WRAP_STRING(madwifi,country)
LUA_WRAP_STRING(madwifi,hardware_name) LUA_WRAP_STRING(madwifi,hardware_name)
LUA_WRAP_STRUCT(madwifi,mode)
LUA_WRAP_STRUCT(madwifi,assoclist) LUA_WRAP_STRUCT(madwifi,assoclist)
LUA_WRAP_STRUCT(madwifi,txpwrlist) LUA_WRAP_STRUCT(madwifi,txpwrlist)
LUA_WRAP_STRUCT(madwifi,scanlist) LUA_WRAP_STRUCT(madwifi,scanlist)
@ -661,11 +674,11 @@ LUA_WRAP_INT(nl80211,signal)
LUA_WRAP_INT(nl80211,noise) LUA_WRAP_INT(nl80211,noise)
LUA_WRAP_INT(nl80211,quality) LUA_WRAP_INT(nl80211,quality)
LUA_WRAP_INT(nl80211,quality_max) LUA_WRAP_INT(nl80211,quality_max)
LUA_WRAP_STRING(nl80211,mode)
LUA_WRAP_STRING(nl80211,ssid) LUA_WRAP_STRING(nl80211,ssid)
LUA_WRAP_STRING(nl80211,bssid) LUA_WRAP_STRING(nl80211,bssid)
LUA_WRAP_STRING(nl80211,country) LUA_WRAP_STRING(nl80211,country)
LUA_WRAP_STRING(nl80211,hardware_name) LUA_WRAP_STRING(nl80211,hardware_name)
LUA_WRAP_STRUCT(nl80211,mode)
LUA_WRAP_STRUCT(nl80211,assoclist) LUA_WRAP_STRUCT(nl80211,assoclist)
LUA_WRAP_STRUCT(nl80211,txpwrlist) LUA_WRAP_STRUCT(nl80211,txpwrlist)
LUA_WRAP_STRUCT(nl80211,scanlist) LUA_WRAP_STRUCT(nl80211,scanlist)
@ -688,11 +701,11 @@ LUA_WRAP_INT(wext,signal)
LUA_WRAP_INT(wext,noise) LUA_WRAP_INT(wext,noise)
LUA_WRAP_INT(wext,quality) LUA_WRAP_INT(wext,quality)
LUA_WRAP_INT(wext,quality_max) LUA_WRAP_INT(wext,quality_max)
LUA_WRAP_STRING(wext,mode)
LUA_WRAP_STRING(wext,ssid) LUA_WRAP_STRING(wext,ssid)
LUA_WRAP_STRING(wext,bssid) LUA_WRAP_STRING(wext,bssid)
LUA_WRAP_STRING(wext,country) LUA_WRAP_STRING(wext,country)
LUA_WRAP_STRING(wext,hardware_name) LUA_WRAP_STRING(wext,hardware_name)
LUA_WRAP_STRUCT(wext,mode)
LUA_WRAP_STRUCT(wext,assoclist) LUA_WRAP_STRUCT(wext,assoclist)
LUA_WRAP_STRUCT(wext,txpwrlist) LUA_WRAP_STRUCT(wext,txpwrlist)
LUA_WRAP_STRUCT(wext,scanlist) LUA_WRAP_STRUCT(wext,scanlist)

View File

@ -333,7 +333,7 @@ void madwifi_close(void)
/* Nop */ /* Nop */
} }
int madwifi_get_mode(const char *ifname, char *buf) int madwifi_get_mode(const char *ifname, int *buf)
{ {
return wext_get_mode(ifname, buf); return wext_get_mode(ifname, buf);
} }

View File

@ -700,7 +700,7 @@ void nl80211_close(void)
} }
} }
int nl80211_get_mode(const char *ifname, char *buf) int nl80211_get_mode(const char *ifname, int *buf)
{ {
return wext_get_mode(ifname, buf); return wext_get_mode(ifname, buf);
} }
@ -1525,9 +1525,9 @@ static int nl80211_get_scanlist_cb(struct nl_msg *msg, void *arg)
memcpy(sl->e->mac, nla_data(bss[NL80211_BSS_BSSID]), 6); memcpy(sl->e->mac, nla_data(bss[NL80211_BSS_BSSID]), 6);
if (caps & (1<<1)) if (caps & (1<<1))
memcpy(sl->e->mode, "Ad-Hoc", 6); sl->e->mode = IWINFO_OPMODE_ADHOC;
else else
memcpy(sl->e->mode, "Master", 6); sl->e->mode = IWINFO_OPMODE_MASTER;
if (caps & (1<<4)) if (caps & (1<<4))
sl->e->crypto.enabled = 1; sl->e->crypto.enabled = 1;
@ -1568,7 +1568,6 @@ static int nl80211_get_scanlist_cb(struct nl_msg *msg, void *arg)
static int nl80211_get_scanlist_nl(const char *ifname, char *buf, int *len) static int nl80211_get_scanlist_nl(const char *ifname, char *buf, int *len)
{ {
struct nl_msg *ssids = NULL;
struct nl80211_msg_conveyor *req; struct nl80211_msg_conveyor *req;
struct nl80211_scanlist sl = { .e = (struct iwinfo_scanlist_entry *)buf }; struct nl80211_scanlist sl = { .e = (struct iwinfo_scanlist_entry *)buf };
@ -1590,11 +1589,6 @@ static int nl80211_get_scanlist_nl(const char *ifname, char *buf, int *len)
*len = sl.len * sizeof(struct iwinfo_scanlist_entry); *len = sl.len * sizeof(struct iwinfo_scanlist_entry);
return *len ? 0 : -1; return *len ? 0 : -1;
nla_put_failure:
if (ssids)
nlmsg_free(ssids);
return -1;
} }
int nl80211_get_scanlist(const char *ifname, char *buf, int *len) int nl80211_get_scanlist(const char *ifname, char *buf, int *len)
@ -1652,7 +1646,7 @@ int nl80211_get_scanlist(const char *ifname, char *buf, int *len)
memcpy(e->ssid, ssid, min(strlen(ssid), sizeof(e->ssid) - 1)); memcpy(e->ssid, ssid, min(strlen(ssid), sizeof(e->ssid) - 1));
/* Mode (assume master) */ /* Mode (assume master) */
sprintf((char *)e->mode, "Master"); e->mode = IWINFO_OPMODE_MASTER;
/* Channel */ /* Channel */
e->channel = nl80211_freq2channel(freq); e->channel = nl80211_freq2channel(freq);

View File

@ -70,7 +70,7 @@ void wext_close(void)
/* Nop */ /* Nop */
} }
int wext_get_mode(const char *ifname, char *buf) int wext_get_mode(const char *ifname, int *buf)
{ {
struct iwreq wrq; struct iwreq wrq;
@ -78,36 +78,25 @@ int wext_get_mode(const char *ifname, char *buf)
{ {
switch(wrq.u.mode) switch(wrq.u.mode)
{ {
case 0:
sprintf(buf, "Auto");
break;
case 1: case 1:
sprintf(buf, "Ad-Hoc"); *buf = IWINFO_OPMODE_ADHOC;
break; break;
case 2: case 2:
sprintf(buf, "Client"); *buf = IWINFO_OPMODE_CLIENT;
break; break;
case 3: case 3:
sprintf(buf, "Master"); *buf = IWINFO_OPMODE_MASTER;
break;
case 4:
sprintf(buf, "Repeater");
break;
case 5:
sprintf(buf, "Secondary");
break; break;
case 6: case 6:
sprintf(buf, "Monitor"); *buf = IWINFO_OPMODE_MONITOR;
break; break;
default: default:
sprintf(buf, "Unknown"); *buf = IWINFO_OPMODE_UNKNOWN;
break;
} }
return 0; return 0;

View File

@ -277,16 +277,17 @@ static inline void wext_fill_entry(struct stream_descr *stream, struct iw_event
switch(event->u.mode) switch(event->u.mode)
{ {
case 1: case 1:
sprintf((char *) e->mode, "Ad-Hoc"); e->mode = IWINFO_OPMODE_ADHOC;
break; break;
case 2: case 2:
case 3: case 3:
sprintf((char *) e->mode, "Master"); e->mode = IWINFO_OPMODE_MASTER;
break; break;
default: default:
sprintf((char *) e->mode, "Unknown"); e->mode = IWINFO_OPMODE_UNKNOWN;
break;
} }
break; break;

View File

@ -82,7 +82,7 @@ void wl_close(void)
/* Nop */ /* Nop */
} }
int wl_get_mode(const char *ifname, char *buf) int wl_get_mode(const char *ifname, int *buf)
{ {
int ret = -1; int ret = -1;
int ap, infra, passive; int ap, infra, passive;
@ -97,13 +97,13 @@ int wl_get_mode(const char *ifname, char *buf)
return ret; return ret;
if (passive) if (passive)
sprintf(buf, "Monitor"); *buf = IWINFO_OPMODE_MONITOR;
else if (!infra) else if (!infra)
sprintf(buf, "Ad-Hoc"); *buf = IWINFO_OPMODE_ADHOC;
else if (ap) else if (ap)
sprintf(buf, "Master"); *buf = IWINFO_OPMODE_MASTER;
else else
sprintf(buf, "Client"); *buf = IWINFO_OPMODE_CLIENT;
return 0; return 0;
} }