Commit 46fa61f3 authored by Richard Kennedy's avatar Richard Kennedy Committed by Greg Kroah-Hartman

Staging: wlan-ng: p80211wext.c add latest changes & remove extra nulls from wext_handlers

add the latest changes from wlan-ng-devel
remove 2 stray nulls from the wext_handler table introduced
by the tidy up patch.
Signed-off-by: default avatarRichard Kennedy <richard@rsk.demon.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7b7e7e84
...@@ -548,10 +548,13 @@ static int p80211wext_giwencode(netdevice_t *dev, ...@@ -548,10 +548,13 @@ static int p80211wext_giwencode(netdevice_t *dev,
DBFENTER; DBFENTER;
i = (erq->flags & IW_ENCODE_INDEX) - 1;
erq->flags = 0;
if (wlandev->hostwep & HOSTWEP_PRIVACYINVOKED) if (wlandev->hostwep & HOSTWEP_PRIVACYINVOKED)
erq->flags = IW_ENCODE_ENABLED; erq->flags |= IW_ENCODE_ENABLED;
else else
erq->flags = IW_ENCODE_DISABLED; erq->flags |= IW_ENCODE_DISABLED;
if (wlandev->hostwep & HOSTWEP_EXCLUDEUNENCRYPTED) if (wlandev->hostwep & HOSTWEP_EXCLUDEUNENCRYPTED)
erq->flags |= IW_ENCODE_RESTRICTED; erq->flags |= IW_ENCODE_RESTRICTED;
...@@ -614,17 +617,24 @@ static int p80211wext_siwencode(netdevice_t *dev, ...@@ -614,17 +617,24 @@ static int p80211wext_siwencode(netdevice_t *dev,
err = -EFAULT; err = -EFAULT;
goto exit; goto exit;
} }
else {
enable = 1; /* Set current key number only if no keys are given */
if (erq->flags & IW_ENCODE_NOKEY) {
result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11WEPDefaultKeyID, i);
if (result) {
err = -EFAULT;
goto exit;
}
} }
} } else {
else { // Use defaultkey if no Key Index
// Do not thing when no Key Index i = wlandev->hostwep & HOSTWEP_DEFAULTKEY_MASK;
} }
/* Check if there is no key information in the iwconfig request */ /* Check if there is no key information in the iwconfig request */
if((erq->flags & IW_ENCODE_NOKEY) == 0 && enable == 1) { if((erq->flags & IW_ENCODE_NOKEY) == 0 ) {
/*------------------------------------------------------------ /*------------------------------------------------------------
* If there is WEP Key for setting, check the Key Information * If there is WEP Key for setting, check the Key Information
...@@ -679,8 +689,7 @@ static int p80211wext_siwencode(netdevice_t *dev, ...@@ -679,8 +689,7 @@ static int p80211wext_siwencode(netdevice_t *dev,
/* Check the PrivacyInvoked flag */ /* Check the PrivacyInvoked flag */
if (erq->flags & IW_ENCODE_DISABLED) { if (erq->flags & IW_ENCODE_DISABLED) {
result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11PrivacyInvoked, P80211ENUM_truth_false); result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11PrivacyInvoked, P80211ENUM_truth_false);
} } else {
else if((erq->flags & IW_ENCODE_ENABLED) || enable == 1) {
result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11PrivacyInvoked, P80211ENUM_truth_true); result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11PrivacyInvoked, P80211ENUM_truth_true);
} }
...@@ -689,7 +698,13 @@ static int p80211wext_siwencode(netdevice_t *dev, ...@@ -689,7 +698,13 @@ static int p80211wext_siwencode(netdevice_t *dev,
goto exit; goto exit;
} }
/* Check the ExcludeUnencrypted flag */ /* The security mode may be open or restricted, and its meaning
depends on the card used. With most cards, in open mode no
authentication is used and the card may also accept non-
encrypted sessions, whereas in restricted mode only encrypted
sessions are accepted and the card will use authentication if
available.
*/
if (erq->flags & IW_ENCODE_RESTRICTED) { if (erq->flags & IW_ENCODE_RESTRICTED) {
result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11ExcludeUnencrypted, P80211ENUM_truth_true); result = p80211wext_dorequest(wlandev, DIDmib_dot11smt_dot11PrivacyTable_dot11ExcludeUnencrypted, P80211ENUM_truth_true);
} }
...@@ -1746,8 +1761,6 @@ static iw_handler p80211wext_handlers[] = { ...@@ -1746,8 +1761,6 @@ static iw_handler p80211wext_handlers[] = {
(iw_handler) NULL, /* SIOCGIWAPLIST */ (iw_handler) NULL, /* SIOCGIWAPLIST */
(iw_handler) p80211wext_siwscan, /* SIOCSIWSCAN */ (iw_handler) p80211wext_siwscan, /* SIOCSIWSCAN */
(iw_handler) p80211wext_giwscan, /* SIOCGIWSCAN */ (iw_handler) p80211wext_giwscan, /* SIOCGIWSCAN */
(iw_handler) NULL, /* null */ /* SIOCSIWSCAN */
(iw_handler) NULL, /* null */ /* SIOCGIWSCAN */
(iw_handler) p80211wext_siwessid, /* SIOCSIWESSID */ (iw_handler) p80211wext_siwessid, /* SIOCSIWESSID */
(iw_handler) p80211wext_giwessid, /* SIOCGIWESSID */ (iw_handler) p80211wext_giwessid, /* SIOCGIWESSID */
(iw_handler) NULL, /* SIOCSIWNICKN */ (iw_handler) NULL, /* SIOCSIWNICKN */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment