projects
/
project
/
luci.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f01178a
)
libiwinfo: add restricted flag for freqlist
author
Jo-Philipp Wich
<jow@openwrt.org>
Tue, 19 Oct 2010 03:52:55 +0000
(
03:52
+0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Tue, 19 Oct 2010 03:52:55 +0000
(
03:52
+0000)
contrib/package/iwinfo/Makefile
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo.h
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo.lua
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo_lualib.c
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo_madwifi.c
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo_nl80211.c
patch
|
blob
|
history
contrib/package/iwinfo/src/iwinfo_wext.c
patch
|
blob
|
history
diff --git
a/contrib/package/iwinfo/Makefile
b/contrib/package/iwinfo/Makefile
index
82c5482
..
e7e16f6
100644
(file)
--- a/
contrib/package/iwinfo/Makefile
+++ b/
contrib/package/iwinfo/Makefile
@@
-7,7
+7,7
@@
include $(TOPDIR)/rules.mk
PKG_NAME:=libiwinfo
include $(TOPDIR)/rules.mk
PKG_NAME:=libiwinfo
-PKG_RELEASE:=
5
+PKG_RELEASE:=
6
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
diff --git
a/contrib/package/iwinfo/src/iwinfo.h
b/contrib/package/iwinfo/src/iwinfo.h
index
4486550
..
6d05289
100644
(file)
--- a/
contrib/package/iwinfo/src/iwinfo.h
+++ b/
contrib/package/iwinfo/src/iwinfo.h
@@
-66,6
+66,7
@@
struct iwinfo_txpwrlist_entry {
struct iwinfo_freqlist_entry {
uint8_t channel;
uint32_t mhz;
struct iwinfo_freqlist_entry {
uint8_t channel;
uint32_t mhz;
+ uint8_t restricted;
};
struct iwinfo_crypto_entry {
};
struct iwinfo_crypto_entry {
diff --git
a/contrib/package/iwinfo/src/iwinfo.lua
b/contrib/package/iwinfo/src/iwinfo.lua
index
f7dbf42
..
76b9e4a
100755
(executable)
--- a/
contrib/package/iwinfo/src/iwinfo.lua
+++ b/
contrib/package/iwinfo/src/iwinfo.lua
@@
-105,9
+105,10
@@
function print_freqlist(api, dev)
if fl and #fl > 0 then
for _, fe in ipairs(fl) do
if fl and #fl > 0 then
for _, fe in ipairs(fl) do
- printf("%s %.3f GHz (Channel %d)",
+ printf("%s %.3f GHz (Channel %d)
%s
",
(cc == fe.channel) and "*" or " ",
(cc == fe.channel) and "*" or " ",
- n(fe.mhz) / 1000, n(fe.channel))
+ n(fe.mhz) / 1000, n(fe.channel),
+ fe.restricted and " [restricted]" or "")
end
else
print("No frequency information available")
end
else
print("No frequency information available")
diff --git
a/contrib/package/iwinfo/src/iwinfo_lualib.c
b/contrib/package/iwinfo/src/iwinfo_lualib.c
index
312a3da
..
95600c8
100644
(file)
--- a/
contrib/package/iwinfo/src/iwinfo_lualib.c
+++ b/
contrib/package/iwinfo/src/iwinfo_lualib.c
@@
-671,6
+671,10
@@
static int iwinfo_L_freqlist(lua_State *L, int (*func)(const char *, char *, int
lua_pushinteger(L, e->channel);
lua_setfield(L, -2, "channel");
lua_pushinteger(L, e->channel);
lua_setfield(L, -2, "channel");
+ /* Restricted (DFS/TPC/Radar) */
+ lua_pushboolean(L, e->restricted);
+ lua_setfield(L, -2, "restricted");
+
lua_rawseti(L, -2, x);
}
}
lua_rawseti(L, -2, x);
}
}
diff --git
a/contrib/package/iwinfo/src/iwinfo_madwifi.c
b/contrib/package/iwinfo/src/iwinfo_madwifi.c
index
9c3bb26
..
5289f42
100644
(file)
--- a/
contrib/package/iwinfo/src/iwinfo_madwifi.c
+++ b/
contrib/package/iwinfo/src/iwinfo_madwifi.c
@@
-805,8
+805,9
@@
int madwifi_get_freqlist(const char *ifname, char *buf, int *len)
for( i = 0; i < chans.ic_nchans; i++ )
{
for( i = 0; i < chans.ic_nchans; i++ )
{
- entry.mhz = chans.ic_chans[i].ic_freq;
- entry.channel = chans.ic_chans[i].ic_ieee;
+ entry.mhz = chans.ic_chans[i].ic_freq;
+ entry.channel = chans.ic_chans[i].ic_ieee;
+ entry.restricted = 0;
memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry));
bl += sizeof(struct iwinfo_freqlist_entry);
memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry));
bl += sizeof(struct iwinfo_freqlist_entry);
diff --git
a/contrib/package/iwinfo/src/iwinfo_nl80211.c
b/contrib/package/iwinfo/src/iwinfo_nl80211.c
index
ff30e0e
..
6b98023
100644
(file)
--- a/
contrib/package/iwinfo/src/iwinfo_nl80211.c
+++ b/
contrib/package/iwinfo/src/iwinfo_nl80211.c
@@
-1319,9
+1319,6
@@
int nl80211_get_freqlist(const char *ifname, char *buf, int *len)
[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
};
[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
};
- if( !wext_get_freqlist(ifname, buf, len) )
- return 0;
-
req = nl80211_msg(ifname, NL80211_CMD_GET_WIPHY, 0);
if( req )
{
req = nl80211_msg(ifname, NL80211_CMD_GET_WIPHY, 0);
if( req )
{
@@
-1340,9
+1337,18
@@
int nl80211_get_freqlist(const char *ifname, char *buf, int *len)
nla_parse(freqs, NL80211_FREQUENCY_ATTR_MAX,
nla_data(freq), nla_len(freq), freq_policy);
nla_parse(freqs, NL80211_FREQUENCY_ATTR_MAX,
nla_data(freq), nla_len(freq), freq_policy);
+ if( freqs[NL80211_FREQUENCY_ATTR_DISABLED] )
+ continue;
+
e->mhz = nla_get_u32(freqs[NL80211_FREQUENCY_ATTR_FREQ]);
e->channel = nl80211_freq2channel(e->mhz);
e->mhz = nla_get_u32(freqs[NL80211_FREQUENCY_ATTR_FREQ]);
e->channel = nl80211_freq2channel(e->mhz);
+ e->restricted = (
+ freqs[NL80211_FREQUENCY_ATTR_PASSIVE_SCAN] ||
+ freqs[NL80211_FREQUENCY_ATTR_NO_IBSS] ||
+ freqs[NL80211_FREQUENCY_ATTR_RADAR]
+ ) ? 1 : 0;
+
e++;
count++;
}
e++;
count++;
}
diff --git
a/contrib/package/iwinfo/src/iwinfo_wext.c
b/contrib/package/iwinfo/src/iwinfo_wext.c
index
e9e79e3
..
298fd93
100644
(file)
--- a/
contrib/package/iwinfo/src/iwinfo_wext.c
+++ b/
contrib/package/iwinfo/src/iwinfo_wext.c
@@
-444,8
+444,9
@@
int wext_get_freqlist(const char *ifname, char *buf, int *len)
for(i = 0; i < range.num_frequency; i++)
{
for(i = 0; i < range.num_frequency; i++)
{
- entry.mhz = wext_freq2mhz(&range.freq[i]);
- entry.channel = range.freq[i].i;
+ entry.mhz = wext_freq2mhz(&range.freq[i]);
+ entry.channel = range.freq[i].i;
+ entry.restricted = 0;
memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry));
bl += sizeof(struct iwinfo_freqlist_entry);
memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry));
bl += sizeof(struct iwinfo_freqlist_entry);