diff options
author | James Meyer <james.meyer@operamail.com> | 2014-02-17 00:02:46 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2014-02-19 19:03:04 (GMT) |
commit | 24954b1c13e839c211ca12ab64e84da68fe22659 (patch) | |
tree | 50f5298824beb66fc58dcf945fbdb8c884f28f44 /abs/core/wireless_tools/dense.patch | |
parent | 492f9c705027a36f69c06f5ee2849753aaa70a44 (diff) | |
download | linhes_pkgbuild-24954b1c13e839c211ca12ab64e84da68fe22659.zip linhes_pkgbuild-24954b1c13e839c211ca12ab64e84da68fe22659.tar.gz linhes_pkgbuild-24954b1c13e839c211ca12ab64e84da68fe22659.tar.bz2 |
wireless_tools, wpa_actiond, wpa_supplicant:
update binary path to /usr/bin
refs #961
Diffstat (limited to 'abs/core/wireless_tools/dense.patch')
-rw-r--r-- | abs/core/wireless_tools/dense.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/abs/core/wireless_tools/dense.patch b/abs/core/wireless_tools/dense.patch new file mode 100644 index 0000000..85182cd --- /dev/null +++ b/abs/core/wireless_tools/dense.patch @@ -0,0 +1,49 @@ +The length field of wext data (iw_point.data) is 16 bits. The largest +value is thus 65535. During the attempts to increase buffer size the +buffer starts at 4096 and is doubled after each failure to fill. From the +time this length reaches 65536 it is effectively zero. We thus loose all +potential space from 32768 to 65535. + +This problem is clear when scanning in a RF dense environment. + +Without this patch: +~$ iwlist wlan0 scan +print_scanning_info: Allocation failed + +With this patch: +~$ iwlist wlan0 scan | grep Cell | wc -l +86 + +Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> + +--- +A similar patch was recently created to fix wpa_supplicant. + +I could not find a source code repo for this code and created this patch +against version 30-pre7 downloaded from +http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html + +diff -uprN wireless_tools_org/wireless_tools.30/iwlist.c wireless_tools.30/iwlist.c +--- wireless_tools_org/wireless_tools.30/iwlist.c 2008-01-16 17:45:41.000000000 -0800 ++++ wireless_tools.30/iwlist.c 2009-02-12 14:16:48.000000000 -0800 +@@ -800,7 +800,7 @@ print_scanning_info(int skfd, + if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0) + { + /* Check if buffer was too small (WE-17 only) */ +- if((errno == E2BIG) && (range.we_version_compiled > 16)) ++ if((errno == E2BIG) && (range.we_version_compiled > 16) && (buflen < 65535)) + { + /* Some driver may return very large scan results, either + * because there are many cells, or because they have many +@@ -816,6 +816,10 @@ print_scanning_info(int skfd, + else + buflen *= 2; + ++ /* wrq.u.data.length is 16 bits so max size is 65535 */ ++ if(buflen > 65535) ++ buflen = 65535; ++ + /* Try again */ + goto realloc; + } + |