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