Search Linux Wireless

Re: mac80211 does not support WPA when used with wext

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Saturday 31 March 2007 20:55, Dan Williams wrote:
> wpa_supplicant works fine with it because it parses the custom events.
>
> NetworkManager will not parse custom events by design, in the same way
> that it will not allow WPA to be used on a card unless the driver
> explicitly advertises WPA support, and requires the use of the
> wpa_supplicant WEXT driver.  I'm not going to spend my time implementing
> stuff 3 different ways; we need to standardize this stuff and stick with
> it.
>
> Draw a line in the sand and all that.  Sure, it's made some people's
> lives harder, but NetworkManager was the reason madwifi added WE-19
> support, for example.
>
NetworkManager doesn't parse custom events? I'm pretty sure WPA/WPA2 was 
reported correctly in the scan results before.. maybe because of this little 
bit of code?

NetworkManager-0.6.4/src/nm-device-802-11-wireless.c:
case IWEVCUSTOM:
    clen = iwe->u.data.length;
    if (custom + clen > end)
        break;
    if (clen > 7 && ((strncmp (custom, "wpa_ie=", 7) == 0) || (strncmp 
(custom, "rsn_ie=", 7) == 0)))
...

But that's besides the point. It is true that proper events should be used, 
but that issue has nothing to do with why WPA isn't working with 
NetworkManager. That was my point.

> Patch looks good though; thanks!  One thing I just thought of, which no
> drivers probably do.  Should mac80211 check that there's enough space
> left in the WE stream to actually add the IE?  There are usually checks
> to ensure that there's enough space to add the next whole BSS, but I
> don't know if we do checks to during the addition of each BSS.  Maybe
> I'm wrong and this isn't an issue.
>
iwe_stream_add_point(char *     stream,         /* Stream of events */
                     char *     ends,           /* End of stream */
                     struct iw_event *iwe,      /* Payload length + flags */
                     char *     extra)          /* More payload */
{
        int     event_len = IW_EV_POINT_LEN + iwe->u.data.length;
        /* Check if it's possible */
        if(likely((stream + event_len) < ends)) {

-Michael Wu

Attachment: pgpAiODJ1oQVb.pgp
Description: PGP signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux