Johannes Berg wrote:
ieee80211_ioctl_siwauth in ieee80211_ioctl.c sets the
key_management_enabled variable if the value passed to the ioctl is not
0 to true:
sdata->u.sta.key_management_enabled = !!data->value;
why !!data->value ? that should be the same as data->value ...
Nope. Think again :) !! normalises to 0/1 rather than 0/!=0
oh.. ok ;)
now to wpa_supplicant:
wpa_driver_wext_keymgmt2wext in driver_wext.c returns
IW_AUTH_KEY_MGMT_802_1 (which is defined as 1) (when dynamic wep is
used) wpa_driver_wext_set_auth_param than passes the value using
ioctl(drv->ioctl_sock, SIOCSIWAUTH, &iwr) to mac80211.
Are you sure it returns IW_AUTH_KEY_MGMT_802_1(X)? My assumption was
that this is what goes wrong.
as I said before I don't have access to the ap right now but here:
static int wpa_driver_wext_keymgmt2wext(int keymgmt)
{
switch (keymgmt) {
case KEY_MGMT_802_1X:
return IW_AUTH_KEY_MGMT_802_1X;
that should be tha case for dynamic wep. (key_mgmt=IEEE8021X needed in
wpa_supplicant.conf)
ieee80211_privacy_mismatch checks for
if (!ifsta || (ifsta->flags & IEEE80211_STA_MIXED_CELL) ||
ifsta->key_management_enabled)
and returns 0 because ifsta->key_management_enabled true in this case
!!1 -> 1
Which is fine, privacy_mismatch() returns 0 if there's no "mismatch" and
we should hence proceed with the association.
That's bogus, you misunderstood the return value of privacy_mismatch()
ok thx for explaing it.
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html