* [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure
@ 2007-05-11 2:50 Dan Williams
2007-05-11 2:53 ` Dan Williams
0 siblings, 1 reply; 3+ messages in thread
From: Dan Williams @ 2007-05-11 2:50 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless
Start to normalize bss_descriptor with ieee80211_network so we can
eventually replace bss_descriptor more easily.
Signed-off-by: Dan Williams <dcbw@redhat.com>
---
drivers/net/wireless/libertas/scan.c | 115 +++++++++++++--------------------
drivers/net/wireless/libertas/scan.h | 8 ++-
2 files changed, 50 insertions(+), 73 deletions(-)
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index e187062..400558a 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -95,10 +95,9 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && adapter->scantable[index].wpa_supplicant.wpa_ie[0] !=
- WPA_IE
- && adapter->scantable[index].wpa2_supplicant.wpa_ie[0] !=
- WPA2_IE && adapter->secinfo.Encryptionmode == CIPHER_NONE
+ && adapter->scantable[index].wpa_ie[0] != WPA_IE
+ && adapter->scantable[index].rsn_ie[0] != WPA2_IE
+ && adapter->secinfo.Encryptionmode == CIPHER_NONE
&& !adapter->scantable[index].privacy) {
/* no security */
LEAVE();
@@ -113,21 +112,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa_supplicant.
- wpa_ie[0]
- == WPA_IE)
+ && (adapter->scantable[index].wpa_ie[0] == WPA_IE)
/* privacy bit may NOT be set in some APs like LinkSys WRT54G
&& adapter->scantable[index].privacy */
) {
/* WPA enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() WPA: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
"privacy=%#x\n", index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -139,21 +134,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0]
- == WPA2_IE)
+ && (adapter->scantable[index].rsn_ie[0] == WPA2_IE)
/* privacy bit may NOT be set in some APs like LinkSys WRT54G
&& adapter->scantable[index].privacy */
) {
/* WPA2 enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() WPA2: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
"privacy=%#x\n", index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -165,35 +156,30 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa_supplicant.
- wpa_ie[0]
- != WPA_IE)
- && (adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0]
- != WPA2_IE)
+ && (adapter->scantable[index].wpa_ie[0] != WPA_IE)
+ && (adapter->scantable[index].rsn_ie[0] != WPA2_IE)
&& adapter->secinfo.Encryptionmode != CIPHER_NONE
&& adapter->scantable[index].privacy) {
/* dynamic WEP enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() dynamic WEP: index=%d "
"wpa_ie=%#x wpa2_ie=%#x Encmode=%#x privacy=%#x\n",
index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0], adapter->secinfo.Encryptionmode,
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
+ adapter->secinfo.Encryptionmode,
adapter->scantable[index].privacy);
LEAVE();
return index;
}
/* security doesn't match */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() FAILED: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x privacy=%#x\n",
index,
- adapter->scantable[index].wpa_supplicant.wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -924,8 +910,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
u8 founddatarateie;
int bytesleftforcurrentbeacon;
- struct WPA_SUPPLICANT *pwpa_supplicant;
- struct WPA_SUPPLICANT *pwpa2_supplicant;
struct IE_WPA *pIe;
const u8 oui01[4] = { 0x00, 0x50, 0xf2, 0x01 };
@@ -962,9 +946,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
bytesleftforcurrentbeacon = beaconsize;
- pwpa_supplicant = &pBSSEntry->wpa_supplicant;
- pwpa2_supplicant = &pBSSEntry->wpa2_supplicant;
-
memcpy(pBSSEntry->macaddress, pcurrentptr, ETH_ALEN);
lbs_pr_debug(1, "InterpretIE: AP MAC Addr-%x:%x:%x:%x:%x:%x\n",
pBSSEntry->macaddress[0], pBSSEntry->macaddress[1],
@@ -1160,27 +1141,27 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
#define IE_ID_LEN_FIELDS_BYTES 2
pIe = (struct IE_WPA *)pcurrentptr;
- if (!memcmp(pIe->oui, oui01, sizeof(oui01))) {
- pwpa_supplicant->wpa_ie_len
- = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
- sizeof(pwpa_supplicant->wpa_ie));
- memcpy(pwpa_supplicant->wpa_ie,
- pcurrentptr,
- pwpa_supplicant->wpa_ie_len);
- lbs_dbg_hex("InterpretIE: Resp WPA_IE",
- pwpa_supplicant->wpa_ie, elemlen);
- }
+ if (memcmp(pIe->oui, oui01, sizeof(oui01)))
+ break;
+
+ pBSSEntry->wpa_ie_len = min_t(size_t,
+ elemlen + IE_ID_LEN_FIELDS_BYTES,
+ sizeof(pBSSEntry->wpa_ie));
+ memcpy(pBSSEntry->wpa_ie, pcurrentptr,
+ pBSSEntry->wpa_ie_len);
+ lbs_dbg_hex("InterpretIE: Resp WPA_IE",
+ pBSSEntry->wpa_ie, elemlen);
break;
case WPA2_IE:
pIe = (struct IE_WPA *)pcurrentptr;
- pwpa2_supplicant->wpa_ie_len
- = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
- sizeof(pwpa2_supplicant->wpa_ie));
- memcpy(pwpa2_supplicant->wpa_ie,
- pcurrentptr, pwpa2_supplicant->wpa_ie_len);
-
+
+ pBSSEntry->rsn_ie_len = min_t(size_t,
+ elemlen + IE_ID_LEN_FIELDS_BYTES,
+ sizeof(pBSSEntry->rsn_ie));
+ memcpy(pBSSEntry->rsn_ie, pcurrentptr,
+ pBSSEntry->rsn_ie_len);
lbs_dbg_hex("InterpretIE: Resp WPA2_IE",
- pwpa2_supplicant->wpa_ie, elemlen);
+ pBSSEntry->rsn_ie, elemlen);
break;
case TIM:
break;
@@ -1745,30 +1726,24 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
/* Add new value to event */
current_val = current_ev + IW_EV_LCP_LEN;
- if (adapter->scantable[i].wpa2_supplicant.wpa_ie[0] == WPA2_IE) {
+ if (adapter->scantable[i].rsn_ie[0] == WPA2_IE) {
memset(&iwe, 0, sizeof(iwe));
memset(buf, 0, sizeof(buf));
- memcpy(buf, adapter->scantable[i].
- wpa2_supplicant.wpa_ie,
- adapter->scantable[i].wpa2_supplicant.
- wpa_ie_len);
+ memcpy(buf, adapter->scantable[i].rsn_ie,
+ adapter->scantable[i].rsn_ie_len);
iwe.cmd = IWEVGENIE;
- iwe.u.data.length = adapter->scantable[i].
- wpa2_supplicant.wpa_ie_len;
+ iwe.u.data.length = adapter->scantable[i].rsn_ie_len;
iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
current_ev = iwe_stream_add_point(current_ev, end_buf,
&iwe, buf);
}
- if (adapter->scantable[i].wpa_supplicant.wpa_ie[0] == WPA_IE) {
+ if (adapter->scantable[i].wpa_ie[0] == WPA_IE) {
memset(&iwe, 0, sizeof(iwe));
memset(buf, 0, sizeof(buf));
- memcpy(buf, adapter->scantable[i].
- wpa_supplicant.wpa_ie,
- adapter->scantable[i].wpa_supplicant.
- wpa_ie_len);
+ memcpy(buf, adapter->scantable[i].wpa_ie,
+ adapter->scantable[i].wpa_ie_len);
iwe.cmd = IWEVGENIE;
- iwe.u.data.length = adapter->scantable[i].
- wpa_supplicant.wpa_ie_len;
+ iwe.u.data.length = adapter->scantable[i].wpa_ie_len;
iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
current_ev = iwe_stream_add_point(current_ev, end_buf,
&iwe, buf);
diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h
index d93aa7f..1a8756e 100644
--- a/drivers/net/wireless/libertas/scan.h
+++ b/drivers/net/wireless/libertas/scan.h
@@ -10,6 +10,7 @@
#ifndef _WLAN_SCAN_H
#define _WLAN_SCAN_H
+#include <net/ieee80211.h>
#include "hostcmd.h"
/**
@@ -170,9 +171,10 @@ struct bss_descriptor {
struct ieeetypes_countryinfofullset countryinfo;
- struct WPA_SUPPLICANT wpa_supplicant;
- struct WPA_SUPPLICANT wpa2_supplicant;
-
+ u8 wpa_ie[MAX_WPA_IE_LEN];
+ size_t wpa_ie_len;
+ u8 rsn_ie[MAX_WPA_IE_LEN];
+ size_t rsn_ie_len;
};
extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1,
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure
2007-05-10 20:30 [PATCH 00/19] libertas cleanups (for 2.6.22) Dan Williams
@ 2007-05-11 2:51 ` Dan Williams
0 siblings, 0 replies; 3+ messages in thread
From: Dan Williams @ 2007-05-11 2:51 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless
Start to normalize bss_descriptor with ieee80211_network so we can
eventually replace bss_descriptor more easily.
Signed-off-by: Dan Williams <dcbw@redhat.com>
---
drivers/net/wireless/libertas/scan.c | 115 +++++++++++++--------------------
drivers/net/wireless/libertas/scan.h | 8 ++-
2 files changed, 50 insertions(+), 73 deletions(-)
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index e187062..400558a 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -95,10 +95,9 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && adapter->scantable[index].wpa_supplicant.wpa_ie[0] !=
- WPA_IE
- && adapter->scantable[index].wpa2_supplicant.wpa_ie[0] !=
- WPA2_IE && adapter->secinfo.Encryptionmode == CIPHER_NONE
+ && adapter->scantable[index].wpa_ie[0] != WPA_IE
+ && adapter->scantable[index].rsn_ie[0] != WPA2_IE
+ && adapter->secinfo.Encryptionmode == CIPHER_NONE
&& !adapter->scantable[index].privacy) {
/* no security */
LEAVE();
@@ -113,21 +112,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa_supplicant.
- wpa_ie[0]
- == WPA_IE)
+ && (adapter->scantable[index].wpa_ie[0] == WPA_IE)
/* privacy bit may NOT be set in some APs like LinkSys WRT54G
&& adapter->scantable[index].privacy */
) {
/* WPA enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() WPA: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
"privacy=%#x\n", index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -139,21 +134,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0]
- == WPA2_IE)
+ && (adapter->scantable[index].rsn_ie[0] == WPA2_IE)
/* privacy bit may NOT be set in some APs like LinkSys WRT54G
&& adapter->scantable[index].privacy */
) {
/* WPA2 enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() WPA2: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
"privacy=%#x\n", index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -165,35 +156,30 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
} else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
&& !adapter->secinfo.WPAenabled
&& !adapter->secinfo.WPA2enabled
- && (adapter->scantable[index].wpa_supplicant.
- wpa_ie[0]
- != WPA_IE)
- && (adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0]
- != WPA2_IE)
+ && (adapter->scantable[index].wpa_ie[0] != WPA_IE)
+ && (adapter->scantable[index].rsn_ie[0] != WPA2_IE)
&& adapter->secinfo.Encryptionmode != CIPHER_NONE
&& adapter->scantable[index].privacy) {
/* dynamic WEP enabled */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() dynamic WEP: index=%d "
"wpa_ie=%#x wpa2_ie=%#x Encmode=%#x privacy=%#x\n",
index,
- adapter->scantable[index].wpa_supplicant.
- wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.
- wpa_ie[0], adapter->secinfo.Encryptionmode,
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
+ adapter->secinfo.Encryptionmode,
adapter->scantable[index].privacy);
LEAVE();
return index;
}
/* security doesn't match */
- lbs_pr_debug(1,
+ lbs_pr_debug(1,
"is_network_compatible() FAILED: index=%d wpa_ie=%#x "
"wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x privacy=%#x\n",
index,
- adapter->scantable[index].wpa_supplicant.wpa_ie[0],
- adapter->scantable[index].wpa2_supplicant.wpa_ie[0],
+ adapter->scantable[index].wpa_ie[0],
+ adapter->scantable[index].rsn_ie[0],
(adapter->secinfo.WEPstatus ==
wlan802_11WEPenabled) ? "e" : "d",
(adapter->secinfo.WPAenabled) ? "e" : "d",
@@ -924,8 +910,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
u8 founddatarateie;
int bytesleftforcurrentbeacon;
- struct WPA_SUPPLICANT *pwpa_supplicant;
- struct WPA_SUPPLICANT *pwpa2_supplicant;
struct IE_WPA *pIe;
const u8 oui01[4] = { 0x00, 0x50, 0xf2, 0x01 };
@@ -962,9 +946,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
bytesleftforcurrentbeacon = beaconsize;
- pwpa_supplicant = &pBSSEntry->wpa_supplicant;
- pwpa2_supplicant = &pBSSEntry->wpa2_supplicant;
-
memcpy(pBSSEntry->macaddress, pcurrentptr, ETH_ALEN);
lbs_pr_debug(1, "InterpretIE: AP MAC Addr-%x:%x:%x:%x:%x:%x\n",
pBSSEntry->macaddress[0], pBSSEntry->macaddress[1],
@@ -1160,27 +1141,27 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
#define IE_ID_LEN_FIELDS_BYTES 2
pIe = (struct IE_WPA *)pcurrentptr;
- if (!memcmp(pIe->oui, oui01, sizeof(oui01))) {
- pwpa_supplicant->wpa_ie_len
- = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
- sizeof(pwpa_supplicant->wpa_ie));
- memcpy(pwpa_supplicant->wpa_ie,
- pcurrentptr,
- pwpa_supplicant->wpa_ie_len);
- lbs_dbg_hex("InterpretIE: Resp WPA_IE",
- pwpa_supplicant->wpa_ie, elemlen);
- }
+ if (memcmp(pIe->oui, oui01, sizeof(oui01)))
+ break;
+
+ pBSSEntry->wpa_ie_len = min_t(size_t,
+ elemlen + IE_ID_LEN_FIELDS_BYTES,
+ sizeof(pBSSEntry->wpa_ie));
+ memcpy(pBSSEntry->wpa_ie, pcurrentptr,
+ pBSSEntry->wpa_ie_len);
+ lbs_dbg_hex("InterpretIE: Resp WPA_IE",
+ pBSSEntry->wpa_ie, elemlen);
break;
case WPA2_IE:
pIe = (struct IE_WPA *)pcurrentptr;
- pwpa2_supplicant->wpa_ie_len
- = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
- sizeof(pwpa2_supplicant->wpa_ie));
- memcpy(pwpa2_supplicant->wpa_ie,
- pcurrentptr, pwpa2_supplicant->wpa_ie_len);
-
+
+ pBSSEntry->rsn_ie_len = min_t(size_t,
+ elemlen + IE_ID_LEN_FIELDS_BYTES,
+ sizeof(pBSSEntry->rsn_ie));
+ memcpy(pBSSEntry->rsn_ie, pcurrentptr,
+ pBSSEntry->rsn_ie_len);
lbs_dbg_hex("InterpretIE: Resp WPA2_IE",
- pwpa2_supplicant->wpa_ie, elemlen);
+ pBSSEntry->rsn_ie, elemlen);
break;
case TIM:
break;
@@ -1745,30 +1726,24 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
/* Add new value to event */
current_val = current_ev + IW_EV_LCP_LEN;
- if (adapter->scantable[i].wpa2_supplicant.wpa_ie[0] == WPA2_IE) {
+ if (adapter->scantable[i].rsn_ie[0] == WPA2_IE) {
memset(&iwe, 0, sizeof(iwe));
memset(buf, 0, sizeof(buf));
- memcpy(buf, adapter->scantable[i].
- wpa2_supplicant.wpa_ie,
- adapter->scantable[i].wpa2_supplicant.
- wpa_ie_len);
+ memcpy(buf, adapter->scantable[i].rsn_ie,
+ adapter->scantable[i].rsn_ie_len);
iwe.cmd = IWEVGENIE;
- iwe.u.data.length = adapter->scantable[i].
- wpa2_supplicant.wpa_ie_len;
+ iwe.u.data.length = adapter->scantable[i].rsn_ie_len;
iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
current_ev = iwe_stream_add_point(current_ev, end_buf,
&iwe, buf);
}
- if (adapter->scantable[i].wpa_supplicant.wpa_ie[0] == WPA_IE) {
+ if (adapter->scantable[i].wpa_ie[0] == WPA_IE) {
memset(&iwe, 0, sizeof(iwe));
memset(buf, 0, sizeof(buf));
- memcpy(buf, adapter->scantable[i].
- wpa_supplicant.wpa_ie,
- adapter->scantable[i].wpa_supplicant.
- wpa_ie_len);
+ memcpy(buf, adapter->scantable[i].wpa_ie,
+ adapter->scantable[i].wpa_ie_len);
iwe.cmd = IWEVGENIE;
- iwe.u.data.length = adapter->scantable[i].
- wpa_supplicant.wpa_ie_len;
+ iwe.u.data.length = adapter->scantable[i].wpa_ie_len;
iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
current_ev = iwe_stream_add_point(current_ev, end_buf,
&iwe, buf);
diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h
index d93aa7f..1a8756e 100644
--- a/drivers/net/wireless/libertas/scan.h
+++ b/drivers/net/wireless/libertas/scan.h
@@ -10,6 +10,7 @@
#ifndef _WLAN_SCAN_H
#define _WLAN_SCAN_H
+#include <net/ieee80211.h>
#include "hostcmd.h"
/**
@@ -170,9 +171,10 @@ struct bss_descriptor {
struct ieeetypes_countryinfofullset countryinfo;
- struct WPA_SUPPLICANT wpa_supplicant;
- struct WPA_SUPPLICANT wpa2_supplicant;
-
+ u8 wpa_ie[MAX_WPA_IE_LEN];
+ size_t wpa_ie_len;
+ u8 rsn_ie[MAX_WPA_IE_LEN];
+ size_t rsn_ie_len;
};
extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1,
--
1.5.0.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure
2007-05-11 2:50 [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure Dan Williams
@ 2007-05-11 2:53 ` Dan Williams
0 siblings, 0 replies; 3+ messages in thread
From: Dan Williams @ 2007-05-11 2:53 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless
On Thu, 2007-05-10 at 22:50 -0400, Dan Williams wrote:
> Start to normalize bss_descriptor with ieee80211_network so we can
> eventually replace bss_descriptor more easily.
Ignore this one, accidentally sent outside the thread.
> Signed-off-by: Dan Williams <dcbw@redhat.com>
> ---
> drivers/net/wireless/libertas/scan.c | 115 +++++++++++++--------------------
> drivers/net/wireless/libertas/scan.h | 8 ++-
> 2 files changed, 50 insertions(+), 73 deletions(-)
>
> diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
> index e187062..400558a 100644
> --- a/drivers/net/wireless/libertas/scan.c
> +++ b/drivers/net/wireless/libertas/scan.c
> @@ -95,10 +95,9 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
> if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
> && !adapter->secinfo.WPAenabled
> && !adapter->secinfo.WPA2enabled
> - && adapter->scantable[index].wpa_supplicant.wpa_ie[0] !=
> - WPA_IE
> - && adapter->scantable[index].wpa2_supplicant.wpa_ie[0] !=
> - WPA2_IE && adapter->secinfo.Encryptionmode == CIPHER_NONE
> + && adapter->scantable[index].wpa_ie[0] != WPA_IE
> + && adapter->scantable[index].rsn_ie[0] != WPA2_IE
> + && adapter->secinfo.Encryptionmode == CIPHER_NONE
> && !adapter->scantable[index].privacy) {
> /* no security */
> LEAVE();
> @@ -113,21 +112,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
> } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
> && adapter->secinfo.WPAenabled
> && !adapter->secinfo.WPA2enabled
> - && (adapter->scantable[index].wpa_supplicant.
> - wpa_ie[0]
> - == WPA_IE)
> + && (adapter->scantable[index].wpa_ie[0] == WPA_IE)
> /* privacy bit may NOT be set in some APs like LinkSys WRT54G
> && adapter->scantable[index].privacy */
> ) {
> /* WPA enabled */
> - lbs_pr_debug(1,
> + lbs_pr_debug(1,
> "is_network_compatible() WPA: index=%d wpa_ie=%#x "
> "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
> "privacy=%#x\n", index,
> - adapter->scantable[index].wpa_supplicant.
> - wpa_ie[0],
> - adapter->scantable[index].wpa2_supplicant.
> - wpa_ie[0],
> + adapter->scantable[index].wpa_ie[0],
> + adapter->scantable[index].rsn_ie[0],
> (adapter->secinfo.WEPstatus ==
> wlan802_11WEPenabled) ? "e" : "d",
> (adapter->secinfo.WPAenabled) ? "e" : "d",
> @@ -139,21 +134,17 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
> } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
> && !adapter->secinfo.WPAenabled
> && adapter->secinfo.WPA2enabled
> - && (adapter->scantable[index].wpa2_supplicant.
> - wpa_ie[0]
> - == WPA2_IE)
> + && (adapter->scantable[index].rsn_ie[0] == WPA2_IE)
> /* privacy bit may NOT be set in some APs like LinkSys WRT54G
> && adapter->scantable[index].privacy */
> ) {
> /* WPA2 enabled */
> - lbs_pr_debug(1,
> + lbs_pr_debug(1,
> "is_network_compatible() WPA2: index=%d wpa_ie=%#x "
> "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
> "privacy=%#x\n", index,
> - adapter->scantable[index].wpa_supplicant.
> - wpa_ie[0],
> - adapter->scantable[index].wpa2_supplicant.
> - wpa_ie[0],
> + adapter->scantable[index].wpa_ie[0],
> + adapter->scantable[index].rsn_ie[0],
> (adapter->secinfo.WEPstatus ==
> wlan802_11WEPenabled) ? "e" : "d",
> (adapter->secinfo.WPAenabled) ? "e" : "d",
> @@ -165,35 +156,30 @@ static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
> } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
> && !adapter->secinfo.WPAenabled
> && !adapter->secinfo.WPA2enabled
> - && (adapter->scantable[index].wpa_supplicant.
> - wpa_ie[0]
> - != WPA_IE)
> - && (adapter->scantable[index].wpa2_supplicant.
> - wpa_ie[0]
> - != WPA2_IE)
> + && (adapter->scantable[index].wpa_ie[0] != WPA_IE)
> + && (adapter->scantable[index].rsn_ie[0] != WPA2_IE)
> && adapter->secinfo.Encryptionmode != CIPHER_NONE
> && adapter->scantable[index].privacy) {
> /* dynamic WEP enabled */
> - lbs_pr_debug(1,
> + lbs_pr_debug(1,
> "is_network_compatible() dynamic WEP: index=%d "
> "wpa_ie=%#x wpa2_ie=%#x Encmode=%#x privacy=%#x\n",
> index,
> - adapter->scantable[index].wpa_supplicant.
> - wpa_ie[0],
> - adapter->scantable[index].wpa2_supplicant.
> - wpa_ie[0], adapter->secinfo.Encryptionmode,
> + adapter->scantable[index].wpa_ie[0],
> + adapter->scantable[index].rsn_ie[0],
> + adapter->secinfo.Encryptionmode,
> adapter->scantable[index].privacy);
> LEAVE();
> return index;
> }
>
> /* security doesn't match */
> - lbs_pr_debug(1,
> + lbs_pr_debug(1,
> "is_network_compatible() FAILED: index=%d wpa_ie=%#x "
> "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x privacy=%#x\n",
> index,
> - adapter->scantable[index].wpa_supplicant.wpa_ie[0],
> - adapter->scantable[index].wpa2_supplicant.wpa_ie[0],
> + adapter->scantable[index].wpa_ie[0],
> + adapter->scantable[index].rsn_ie[0],
> (adapter->secinfo.WEPstatus ==
> wlan802_11WEPenabled) ? "e" : "d",
> (adapter->secinfo.WPAenabled) ? "e" : "d",
> @@ -924,8 +910,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
> u8 founddatarateie;
> int bytesleftforcurrentbeacon;
>
> - struct WPA_SUPPLICANT *pwpa_supplicant;
> - struct WPA_SUPPLICANT *pwpa2_supplicant;
> struct IE_WPA *pIe;
> const u8 oui01[4] = { 0x00, 0x50, 0xf2, 0x01 };
>
> @@ -962,9 +946,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
>
> bytesleftforcurrentbeacon = beaconsize;
>
> - pwpa_supplicant = &pBSSEntry->wpa_supplicant;
> - pwpa2_supplicant = &pBSSEntry->wpa2_supplicant;
> -
> memcpy(pBSSEntry->macaddress, pcurrentptr, ETH_ALEN);
> lbs_pr_debug(1, "InterpretIE: AP MAC Addr-%x:%x:%x:%x:%x:%x\n",
> pBSSEntry->macaddress[0], pBSSEntry->macaddress[1],
> @@ -1160,27 +1141,27 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
> #define IE_ID_LEN_FIELDS_BYTES 2
> pIe = (struct IE_WPA *)pcurrentptr;
>
> - if (!memcmp(pIe->oui, oui01, sizeof(oui01))) {
> - pwpa_supplicant->wpa_ie_len
> - = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
> - sizeof(pwpa_supplicant->wpa_ie));
> - memcpy(pwpa_supplicant->wpa_ie,
> - pcurrentptr,
> - pwpa_supplicant->wpa_ie_len);
> - lbs_dbg_hex("InterpretIE: Resp WPA_IE",
> - pwpa_supplicant->wpa_ie, elemlen);
> - }
> + if (memcmp(pIe->oui, oui01, sizeof(oui01)))
> + break;
> +
> + pBSSEntry->wpa_ie_len = min_t(size_t,
> + elemlen + IE_ID_LEN_FIELDS_BYTES,
> + sizeof(pBSSEntry->wpa_ie));
> + memcpy(pBSSEntry->wpa_ie, pcurrentptr,
> + pBSSEntry->wpa_ie_len);
> + lbs_dbg_hex("InterpretIE: Resp WPA_IE",
> + pBSSEntry->wpa_ie, elemlen);
> break;
> case WPA2_IE:
> pIe = (struct IE_WPA *)pcurrentptr;
> - pwpa2_supplicant->wpa_ie_len
> - = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
> - sizeof(pwpa2_supplicant->wpa_ie));
> - memcpy(pwpa2_supplicant->wpa_ie,
> - pcurrentptr, pwpa2_supplicant->wpa_ie_len);
> -
> +
> + pBSSEntry->rsn_ie_len = min_t(size_t,
> + elemlen + IE_ID_LEN_FIELDS_BYTES,
> + sizeof(pBSSEntry->rsn_ie));
> + memcpy(pBSSEntry->rsn_ie, pcurrentptr,
> + pBSSEntry->rsn_ie_len);
> lbs_dbg_hex("InterpretIE: Resp WPA2_IE",
> - pwpa2_supplicant->wpa_ie, elemlen);
> + pBSSEntry->rsn_ie, elemlen);
> break;
> case TIM:
> break;
> @@ -1745,30 +1726,24 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
> /* Add new value to event */
> current_val = current_ev + IW_EV_LCP_LEN;
>
> - if (adapter->scantable[i].wpa2_supplicant.wpa_ie[0] == WPA2_IE) {
> + if (adapter->scantable[i].rsn_ie[0] == WPA2_IE) {
> memset(&iwe, 0, sizeof(iwe));
> memset(buf, 0, sizeof(buf));
> - memcpy(buf, adapter->scantable[i].
> - wpa2_supplicant.wpa_ie,
> - adapter->scantable[i].wpa2_supplicant.
> - wpa_ie_len);
> + memcpy(buf, adapter->scantable[i].rsn_ie,
> + adapter->scantable[i].rsn_ie_len);
> iwe.cmd = IWEVGENIE;
> - iwe.u.data.length = adapter->scantable[i].
> - wpa2_supplicant.wpa_ie_len;
> + iwe.u.data.length = adapter->scantable[i].rsn_ie_len;
> iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
> current_ev = iwe_stream_add_point(current_ev, end_buf,
> &iwe, buf);
> }
> - if (adapter->scantable[i].wpa_supplicant.wpa_ie[0] == WPA_IE) {
> + if (adapter->scantable[i].wpa_ie[0] == WPA_IE) {
> memset(&iwe, 0, sizeof(iwe));
> memset(buf, 0, sizeof(buf));
> - memcpy(buf, adapter->scantable[i].
> - wpa_supplicant.wpa_ie,
> - adapter->scantable[i].wpa_supplicant.
> - wpa_ie_len);
> + memcpy(buf, adapter->scantable[i].wpa_ie,
> + adapter->scantable[i].wpa_ie_len);
> iwe.cmd = IWEVGENIE;
> - iwe.u.data.length = adapter->scantable[i].
> - wpa_supplicant.wpa_ie_len;
> + iwe.u.data.length = adapter->scantable[i].wpa_ie_len;
> iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
> current_ev = iwe_stream_add_point(current_ev, end_buf,
> &iwe, buf);
> diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h
> index d93aa7f..1a8756e 100644
> --- a/drivers/net/wireless/libertas/scan.h
> +++ b/drivers/net/wireless/libertas/scan.h
> @@ -10,6 +10,7 @@
> #ifndef _WLAN_SCAN_H
> #define _WLAN_SCAN_H
>
> +#include <net/ieee80211.h>
> #include "hostcmd.h"
>
> /**
> @@ -170,9 +171,10 @@ struct bss_descriptor {
>
> struct ieeetypes_countryinfofullset countryinfo;
>
> - struct WPA_SUPPLICANT wpa_supplicant;
> - struct WPA_SUPPLICANT wpa2_supplicant;
> -
> + u8 wpa_ie[MAX_WPA_IE_LEN];
> + size_t wpa_ie_len;
> + u8 rsn_ie[MAX_WPA_IE_LEN];
> + size_t rsn_ie_len;
> };
>
> extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1,
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-05-11 2:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-11 2:50 [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure Dan Williams
2007-05-11 2:53 ` Dan Williams
-- strict thread matches above, loose matches on Subject: below --
2007-05-10 20:30 [PATCH 00/19] libertas cleanups (for 2.6.22) Dan Williams
2007-05-11 2:51 ` [PATCH 01/19] libertas: remove WPA_SUPPLICANT structure Dan Williams
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).