summaryrefslogtreecommitdiff
path: root/COPYING.LGPL
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-01-21 15:05:16 +0100
committerThomas Haller <thaller@redhat.com>2020-03-12 10:16:22 +0100
commitb83f07916a540d482dfabbb13744083b0b6ab8b0 (patch)
tree84d22311943381df7df54c2b85a04984a6ed40d9 /COPYING.LGPL
parent0586e9700d8cf47aff9a4a5148c431d2decce7c6 (diff)
downloadNetworkManager-b83f07916a540d482dfabbb13744083b0b6ab8b0.tar.gz
supplicant: large rework of wpa_supplicant handling
Avoid GDBusProxy, instead use GDBusConnection directly. I very much prefer this because that way we have explicit control over what happens on D-Bus. With GDBusProxy this is hidden under another layer of complex code. The hardest part when using a D-Bus interface is to manage the state via an asynchronous medium. GDBusProxy contains state about the D-Bus interface and duplicate the state that we track. This makes it hard to reason about things. Rework creation of NMSupplicantInterface. Previously, a NMSupplicantInterface had multiple initialization states. In particular, the first state would not yet tie the interface to a certain D-Bus object path. Instead, NMSupplicantInterface would try and retry to create the D-Bus object. Now, NMSupplicantManager has an asynchronous method to create interface instances. The manager only creates an interface instance after the D-Bus path is known. That means, a NMSupplicantInterface instance is now strongly tied to a name-owner and D-Bus path. It follows that the state of NMSupplicantInterface can only go from STARTING, via the supplicant states, to DOWN. Never back. That was already previously the case that the state from DOWN was final and once the 3 initial states were passed, the interface's state would never go back to the initial state. Now this is more strict and more formalized. The 3 initialization states are combined. I think the tighter state handling simplifies users of NMSupplicantInterface. See for example "nm-device-ethernet.c". It's still complicated, because handling state is fundamentally difficult. NMSupplicantManager will take care to D-Bus activate wpa_supplicant only when necessary (poke). Previously, creating the manager instance would always start suppliant service. Now, it's started on demand.
Diffstat (limited to 'COPYING.LGPL')
0 files changed, 0 insertions, 0 deletions