Commit graph

18 commits

Author SHA1 Message Date
Dan Williams
47d8db57b5 trivial: plug some memory leaks
(review+ danw)
2013-02-25 16:07:03 +01:00
Dan Williams
6cba496a4f wifi: don't warn on unknown nl80211 ciphers 2013-02-11 15:38:04 -06:00
Dan Winship
fc700e9213 core: add NM_WIFI_DEVICE_CAP_ADHOC
Some wireless devices don't support Ad-Hoc mode. Expose this fact in
the wireless capabilities so that clients can disable the hot-spot
option if neither CAP_ADHOC nor CAP_AP is available.

https://bugzilla.gnome.org/show_bug.cgi?id=692869
2013-02-11 12:39:28 -05:00
Pavel Šimerda
663859c180 build: drop libnl 1.x and 2.x support, require libnl >= 3.2.7 2013-01-24 19:47:53 +01:00
Dan Williams
25f9801ebd wifi: implement nl80211 set_mode hook
We do need it to ensure the device is in Infrastructure mode when
deactivating a Hotspot.
2012-10-17 14:07:37 -05:00
Jan Luebbe
f9c72dee3e wifi: support ap-mode with wpa_supplicant
A new value for NM80211Mode is introduced (NM_802_11_MODE_AP) and the
new mode is passed to wpa_supplicant analogous to adhoc-mode.
The places which need to know the interface mode have been extended to
handle the new mode.

If the configuration does not contain a fixed frequency, a channel is
selected the same way as with adhoc-mode before.
2012-10-17 12:08:11 -05:00
Dan Williams
50435e1d5d wifi: attempt to use same kernel API wpa_supplicant does (bgo #675017)
Some drivers (ipw2x00) support capabilities reporting via nl80211 but
absolutely nothing else.  NM was only checking for capabilities
when deciding whether or not to use nl80211 to communicate with the
driver for associated AP, signal strength, and channel info, and that
clearly fails with half-implementations of nl80211 in the kernel.

Instead, match the logic that wpa_supplicant uses to determine whether
to stick with nl80211 or fall back to WEXT.  For these drivers
NM will now fall back to WEXT and should return to the behavior we
had with 0.9.2 for these devices.
2012-05-04 14:26:10 -05:00
Mathieu Trudel-Lapierre
de3353d58c wifi: check the driver reports any encryption caps with nl80211 (bgo #673717)
Some drivers, such as ipw2200 doesn't report any encryption with newer kernels.
See also https://bugs.launchpad.net/ubuntu/+source/linux/+bug/973241
2012-04-12 12:21:01 +02:00
Dan Williams
ce6b667a68 wifi: make sure we're connected to netlink before using it
This should fix the warning "failed to allocate link cache" when a
new device is added.  It doesn't affect WiFi operation, and the
code would fall back to non-nl80211 mechanisms of detecting whether
a device was wifi or not, so it corrects this check and quiets the
error message.
2012-03-19 16:09:46 -05:00
Dan Williams
04b2a74336 wifi: yet another nl80211 processing fix
Make the meaning of done actually reflect what's happening,
and make sure that when we get an error in the error handler,
that the processing loop breaks out and returns that error.
This wasn't happening for Ad-Hoc connections, which apparently
return various errors for things, leading to blocking in
recv() in the kernel waiting for more data that would never
come, because we'd already gotten an error.
2012-03-15 15:01:30 -05:00
Dan Williams
6f19e1e18c wifi: fix typo in wifi detection code (bgo #671276)
Would affect non-nl80211 drivers since all nl80211 drivers have the
phyX link in sysfs and thus this code wouldn't get run for them.

Found by Dmitri <mitya@mageia.org>
2012-03-09 11:10:32 -06:00
Dan Williams
bba834f842 wifi: fix entering possible endless loop
Clarify how we're supposed to break out of the nl_recvmsgs() loop
and also break out if we get an error from nl_recvmsgs().  What's
supposed to happen is that one of the callbacks we've registered
figures out that we're done and sets the 'done' flag, which then
breaks out of the recvmsgs() loop.  Using 'err' there previously
was pretty unclear.
2012-03-08 12:48:46 -06:00
Dan Williams
25e011b5cf Revert "wifi: fix entering an endless loop"
This reverts commit 84403ab84a.

It appears we want to loop until one of the callback says we're
done, while this patch would exit too early (possibly before we'd
received a reply) since nl_recvmsgs() returns 0 on success.  What
we really want do do here is wait for one of the callbacks we've
registered to tell us that they've successfully handled the message
and gotten a reply.
2012-03-08 12:41:15 -06:00
Jiří Klimeš
84403ab84a wifi: fix entering an endless loop 2012-03-07 15:31:19 +01:00
Dan Williams
0d2aac2021 wifi: remove unused nl80211 attributes that break build on older kernels 2012-03-06 00:38:57 -06:00
Colin Walters
a3ca1f8e17 build: wifi: add missing builddir to INCLUDES
Necessary when building from git srcdir != builddir.
2012-03-01 13:54:49 -06:00
Dan Williams
57d8ab0ae7 wifi: add forgotten makefile 2012-03-01 08:52:08 -06:00
Dan Williams
ca3c39abd3 wifi: let WEXT be disabled with --with-wext=no
It's still enabled by default if you don't pass --with-wext=no.
But now it's possible to build without WEXT entirely.
2012-02-29 23:11:04 -06:00