82 lines
2.8 KiB
Diff
82 lines
2.8 KiB
Diff
|
Index: kmod-libertas/scan.c
|
||
|
===================================================================
|
||
|
--- kmod-libertas.orig/scan.c 2008-11-30 17:44:39.000000000 +0100
|
||
|
+++ kmod-libertas/scan.c 2008-11-30 17:46:08.000000000 +0100
|
||
|
@@ -13,6 +13,13 @@
|
||
|
#include "scan.h"
|
||
|
#include "cmd.h"
|
||
|
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
|
||
|
+#define IWE(func, ...) func(&iweinfo, __VA_ARGS__)
|
||
|
+static struct iw_request_info iweinfo = { 0, 0 };
|
||
|
+#else
|
||
|
+#define IWE(func, ...) func(__VA_ARGS__)
|
||
|
+#endif
|
||
|
+
|
||
|
//! Approximate amount of data needed to pass a scan result back to iwlist
|
||
|
#define MAX_SCAN_CELL_SIZE (IW_EV_ADDR_LEN \
|
||
|
+ IW_ESSID_MAX_SIZE \
|
||
|
@@ -807,7 +814,7 @@
|
||
|
iwe.cmd = SIOCGIWESSID;
|
||
|
iwe.u.data.flags = 1;
|
||
|
iwe.u.data.length = min((uint32_t) bss->ssid_len, (uint32_t) IW_ESSID_MAX_SIZE);
|
||
|
- start = iwe_stream_add_point(start, stop, &iwe, bss->ssid);
|
||
|
+ start = IWE(iwe_stream_add_point, start, stop, &iwe, bss->ssid);
|
||
|
|
||
|
/* Mode */
|
||
|
iwe.cmd = SIOCGIWMODE;
|
||
|
@@ -862,7 +869,7 @@
|
||
|
iwe.u.data.flags = IW_ENCODE_DISABLED;
|
||
|
}
|
||
|
iwe.u.data.length = 0;
|
||
|
- start = iwe_stream_add_point(start, stop, &iwe, bss->ssid);
|
||
|
+ start = IWE(iwe_stream_add_point, start, stop, &iwe, bss->ssid);
|
||
|
|
||
|
current_val = start + IW_EV_LCP_LEN;
|
||
|
|
||
|
@@ -874,7 +881,7 @@
|
||
|
for (j = 0; bss->rates[j] && (j < sizeof(bss->rates)); j++) {
|
||
|
/* Bit rate given in 500 kb/s units */
|
||
|
iwe.u.bitrate.value = bss->rates[j] * 500000;
|
||
|
- current_val = iwe_stream_add_value(start, current_val,
|
||
|
+ current_val = IWE(iwe_stream_add_value, start, current_val,
|
||
|
stop, &iwe, IW_EV_PARAM_LEN);
|
||
|
}
|
||
|
if ((bss->mode == IW_MODE_ADHOC) && priv->adhoccreate
|
||
|
@@ -882,7 +889,7 @@
|
||
|
priv->curbssparams.ssid_len,
|
||
|
bss->ssid, bss->ssid_len)) {
|
||
|
iwe.u.bitrate.value = 22 * 500000;
|
||
|
- current_val = iwe_stream_add_value(start, current_val,
|
||
|
+ current_val = IWE(iwe_stream_add_value, start, current_val,
|
||
|
stop, &iwe, IW_EV_PARAM_LEN);
|
||
|
}
|
||
|
/* Check if we added any event */
|
||
|
@@ -895,7 +902,7 @@
|
||
|
memcpy(buf, bss->wpa_ie, bss->wpa_ie_len);
|
||
|
iwe.cmd = IWEVGENIE;
|
||
|
iwe.u.data.length = bss->wpa_ie_len;
|
||
|
- start = iwe_stream_add_point(start, stop, &iwe, buf);
|
||
|
+ start = IWE(iwe_stream_add_point, start, stop, &iwe, buf);
|
||
|
}
|
||
|
|
||
|
memset(&iwe, 0, sizeof(iwe));
|
||
|
@@ -904,7 +911,7 @@
|
||
|
memcpy(buf, bss->rsn_ie, bss->rsn_ie_len);
|
||
|
iwe.cmd = IWEVGENIE;
|
||
|
iwe.u.data.length = bss->rsn_ie_len;
|
||
|
- start = iwe_stream_add_point(start, stop, &iwe, buf);
|
||
|
+ start = IWE(iwe_stream_add_point, start, stop, &iwe, buf);
|
||
|
}
|
||
|
|
||
|
if (bss->mesh) {
|
||
|
@@ -915,7 +922,7 @@
|
||
|
p += snprintf(p, MAX_CUSTOM_LEN, "mesh-type: olpc");
|
||
|
iwe.u.data.length = p - custom;
|
||
|
if (iwe.u.data.length)
|
||
|
- start = iwe_stream_add_point(start, stop, &iwe, custom);
|
||
|
+ start = IWE(iwe_stream_add_point, start, stop, &iwe, custom);
|
||
|
}
|
||
|
|
||
|
out:
|