mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 22:23:14 -04:00
wireless: consolidate on a single escape_essid implementation
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ddf4ac53fb
commit
7e272fcff6
23 changed files with 219 additions and 262 deletions
|
|
@ -11,6 +11,7 @@ config IEEE80211
|
|||
select IEEE80211_CRYPT_WEP
|
||||
select IEEE80211_CRYPT_TKIP
|
||||
select IEEE80211_CRYPT_CCMP
|
||||
select LIB80211
|
||||
---help---
|
||||
This option enables the hardware independent IEEE 802.11
|
||||
networking stack. This component is deprecated in favor of the
|
||||
|
|
|
|||
|
|
@ -308,31 +308,5 @@ MODULE_PARM_DESC(debug, "debug output mask");
|
|||
module_exit(ieee80211_exit);
|
||||
module_init(ieee80211_init);
|
||||
|
||||
const char *escape_essid(const char *essid, u8 essid_len)
|
||||
{
|
||||
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
||||
const char *s = essid;
|
||||
char *d = escaped;
|
||||
|
||||
if (ieee80211_is_empty_essid(essid, essid_len)) {
|
||||
memcpy(escaped, "<hidden>", sizeof("<hidden>"));
|
||||
return escaped;
|
||||
}
|
||||
|
||||
essid_len = min(essid_len, (u8) IW_ESSID_MAX_SIZE);
|
||||
while (essid_len--) {
|
||||
if (*s == '\0') {
|
||||
*d++ = '\\';
|
||||
*d++ = '0';
|
||||
s++;
|
||||
} else {
|
||||
*d++ = *s++;
|
||||
}
|
||||
}
|
||||
*d = '\0';
|
||||
return escaped;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(alloc_ieee80211);
|
||||
EXPORT_SYMBOL(free_ieee80211);
|
||||
EXPORT_SYMBOL(escape_essid);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include <asm/uaccess.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
#include <net/lib80211.h>
|
||||
#include <net/ieee80211.h>
|
||||
|
||||
static void ieee80211_monitor_rx(struct ieee80211_device *ieee,
|
||||
|
|
@ -1145,8 +1146,8 @@ static int ieee80211_parse_info_param(struct ieee80211_info_element
|
|||
|
||||
switch (info_element->id) {
|
||||
case MFIE_TYPE_SSID:
|
||||
if (ieee80211_is_empty_essid(info_element->data,
|
||||
info_element->len)) {
|
||||
if (is_empty_ssid(info_element->data,
|
||||
info_element->len)) {
|
||||
network->flags |= NETWORK_EMPTY_ESSID;
|
||||
break;
|
||||
}
|
||||
|
|
@ -1390,7 +1391,7 @@ static int ieee80211_handle_assoc_resp(struct ieee80211_device *ieee, struct iee
|
|||
network->mode |= IEEE_B;
|
||||
}
|
||||
|
||||
if (ieee80211_is_empty_essid(network->ssid, network->ssid_len))
|
||||
if (is_empty_ssid(network->ssid, network->ssid_len))
|
||||
network->flags |= NETWORK_EMPTY_ESSID;
|
||||
|
||||
memcpy(&network->stats, stats, sizeof(network->stats));
|
||||
|
|
@ -1456,13 +1457,13 @@ static int ieee80211_network_init(struct ieee80211_device *ieee, struct ieee8021
|
|||
if (network->mode == 0) {
|
||||
IEEE80211_DEBUG_SCAN("Filtered out '%s (%pM)' "
|
||||
"network.\n",
|
||||
escape_essid(network->ssid,
|
||||
network->ssid_len),
|
||||
escape_ssid(network->ssid,
|
||||
network->ssid_len),
|
||||
network->bssid);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ieee80211_is_empty_essid(network->ssid, network->ssid_len))
|
||||
if (is_empty_ssid(network->ssid, network->ssid_len))
|
||||
network->flags |= NETWORK_EMPTY_ESSID;
|
||||
|
||||
memcpy(&network->stats, stats, sizeof(network->stats));
|
||||
|
|
@ -1576,7 +1577,7 @@ static void ieee80211_process_probe_response(struct ieee80211_device
|
|||
|
||||
IEEE80211_DEBUG_SCAN("'%s' (%pM"
|
||||
"): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n",
|
||||
escape_essid(info_element->data, info_element->len),
|
||||
escape_ssid(info_element->data, info_element->len),
|
||||
beacon->header.addr3,
|
||||
(beacon->capability & cpu_to_le16(1 << 0xf)) ? '1' : '0',
|
||||
(beacon->capability & cpu_to_le16(1 << 0xe)) ? '1' : '0',
|
||||
|
|
@ -1597,8 +1598,8 @@ static void ieee80211_process_probe_response(struct ieee80211_device
|
|||
|
||||
if (ieee80211_network_init(ieee, beacon, &network, stats)) {
|
||||
IEEE80211_DEBUG_SCAN("Dropped '%s' (%pM) via %s.\n",
|
||||
escape_essid(info_element->data,
|
||||
info_element->len),
|
||||
escape_ssid(info_element->data,
|
||||
info_element->len),
|
||||
beacon->header.addr3,
|
||||
is_beacon(beacon->header.frame_ctl) ?
|
||||
"BEACON" : "PROBE RESPONSE");
|
||||
|
|
@ -1635,8 +1636,8 @@ static void ieee80211_process_probe_response(struct ieee80211_device
|
|||
target = oldest;
|
||||
IEEE80211_DEBUG_SCAN("Expired '%s' (%pM) from "
|
||||
"network list.\n",
|
||||
escape_essid(target->ssid,
|
||||
target->ssid_len),
|
||||
escape_ssid(target->ssid,
|
||||
target->ssid_len),
|
||||
target->bssid);
|
||||
ieee80211_network_reset(target);
|
||||
} else {
|
||||
|
|
@ -1648,8 +1649,8 @@ static void ieee80211_process_probe_response(struct ieee80211_device
|
|||
|
||||
#ifdef CONFIG_IEEE80211_DEBUG
|
||||
IEEE80211_DEBUG_SCAN("Adding '%s' (%pM) via %s.\n",
|
||||
escape_essid(network.ssid,
|
||||
network.ssid_len),
|
||||
escape_ssid(network.ssid,
|
||||
network.ssid_len),
|
||||
network.bssid,
|
||||
is_beacon(beacon->header.frame_ctl) ?
|
||||
"BEACON" : "PROBE RESPONSE");
|
||||
|
|
@ -1659,8 +1660,8 @@ static void ieee80211_process_probe_response(struct ieee80211_device
|
|||
list_add_tail(&target->list, &ieee->network_list);
|
||||
} else {
|
||||
IEEE80211_DEBUG_SCAN("Updating '%s' (%pM) via %s.\n",
|
||||
escape_essid(target->ssid,
|
||||
target->ssid_len),
|
||||
escape_ssid(target->ssid,
|
||||
target->ssid_len),
|
||||
target->bssid,
|
||||
is_beacon(beacon->header.frame_ctl) ?
|
||||
"BEACON" : "PROBE RESPONSE");
|
||||
|
|
|
|||
|
|
@ -283,8 +283,8 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
|
|||
else
|
||||
IEEE80211_DEBUG_SCAN("Not showing network '%s ("
|
||||
"%pM)' due to age (%dms).\n",
|
||||
escape_essid(network->ssid,
|
||||
network->ssid_len),
|
||||
escape_ssid(network->ssid,
|
||||
network->ssid_len),
|
||||
network->bssid,
|
||||
jiffies_to_msecs(jiffies -
|
||||
network->
|
||||
|
|
@ -408,7 +408,7 @@ int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
|
|||
memset(sec.keys[key] + erq->length, 0,
|
||||
len - erq->length);
|
||||
IEEE80211_DEBUG_WX("Setting key %d to '%s' (%d:%d bytes)\n",
|
||||
key, escape_essid(sec.keys[key], len),
|
||||
key, escape_ssid(sec.keys[key], len),
|
||||
erq->length, len);
|
||||
sec.key_sizes[key] = len;
|
||||
if (*crypt)
|
||||
|
|
|
|||
|
|
@ -72,3 +72,13 @@ config WIRELESS_EXT_SYSFS
|
|||
|
||||
Say Y if you have programs using it, like old versions of
|
||||
hal.
|
||||
|
||||
config LIB80211
|
||||
tristate "Common routines for IEEE802.11 drivers"
|
||||
default n
|
||||
help
|
||||
This options enables a library of common routines used
|
||||
by IEEE802.11 wireless LAN drivers.
|
||||
|
||||
Drivers should select this themselves if needed. Say Y if
|
||||
you want this built into your kernel.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
obj-$(CONFIG_WIRELESS_EXT) += wext.o
|
||||
obj-$(CONFIG_CFG80211) += cfg80211.o
|
||||
obj-$(CONFIG_LIB80211) += lib80211.o
|
||||
|
||||
cfg80211-y += core.o sysfs.o radiotap.o util.o reg.o
|
||||
cfg80211-$(CONFIG_NL80211) += nl80211.o
|
||||
|
|
|
|||
58
net/wireless/lib80211.c
Normal file
58
net/wireless/lib80211.c
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* lib80211 -- common bits for IEEE802.11 drivers
|
||||
*
|
||||
* Copyright(c) 2008 John W. Linville <linville@tuxdriver.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/ieee80211.h>
|
||||
|
||||
#include <net/lib80211.h>
|
||||
|
||||
#define DRV_NAME "lib80211"
|
||||
|
||||
#define DRV_DESCRIPTION "common routines for IEEE802.11 drivers"
|
||||
|
||||
MODULE_DESCRIPTION(DRV_DESCRIPTION);
|
||||
MODULE_AUTHOR("John W. Linville <linville@tuxdriver.com>");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
const char *escape_ssid(const char *ssid, u8 ssid_len)
|
||||
{
|
||||
static char escaped[IEEE80211_MAX_SSID_LEN * 2 + 1];
|
||||
const char *s = ssid;
|
||||
char *d = escaped;
|
||||
|
||||
if (is_empty_ssid(ssid, ssid_len)) {
|
||||
memcpy(escaped, "<hidden>", sizeof("<hidden>"));
|
||||
return escaped;
|
||||
}
|
||||
|
||||
ssid_len = min_t(u8, ssid_len, IEEE80211_MAX_SSID_LEN);
|
||||
while (ssid_len--) {
|
||||
if (*s == '\0') {
|
||||
*d++ = '\\';
|
||||
*d++ = '0';
|
||||
s++;
|
||||
} else {
|
||||
*d++ = *s++;
|
||||
}
|
||||
}
|
||||
*d = '\0';
|
||||
return escaped;
|
||||
}
|
||||
EXPORT_SYMBOL(escape_ssid);
|
||||
|
||||
static int __init ieee80211_init(void)
|
||||
{
|
||||
printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION "\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit ieee80211_exit(void)
|
||||
{
|
||||
}
|
||||
|
||||
module_init(ieee80211_init);
|
||||
module_exit(ieee80211_exit);
|
||||
Loading…
Reference in a new issue