about summary refs log tree commit diff
path: root/src/devices/wifi
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2020-01-07 16:53:57 +0100
committerSebastien Bacher <seb128@ubuntu.com>2020-01-07 16:56:18 +0100
commit5035d260cb1cde38bfdc732e0d1ff8b3ca78135c (patch)
tree1433995e753effc7cfa4f63266691bdc8b5ad6b3 /src/devices/wifi
parent21add8edb7927d06f038208fd6271202063d5293 (diff)
parent121343423a2e75e15e16988e664a8b32a629f2ba (diff)
Merge tag 'debian/1.20.6-1'
network-manager Debian release 1.20.6-1
Diffstat (limited to 'src/devices/wifi')
-rw-r--r--src/devices/wifi/nm-iwd-manager.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/devices/wifi/nm-iwd-manager.c b/src/devices/wifi/nm-iwd-manager.c
index 5b550ea4..c79f6cc6 100644
--- a/src/devices/wifi/nm-iwd-manager.c
+++ b/src/devices/wifi/nm-iwd-manager.c
@@ -150,6 +150,11 @@ agent_dbus_method_cb (GDBusConnection *connection,
 	network = g_dbus_object_manager_get_interface (priv->object_manager,
 	                                               network_path,
 	                                               NM_IWD_NETWORK_INTERFACE);
+	if (!network) {
+		_LOGE ("unable to find the network object");
+		return;
+	}
+
 
 	device_path = get_property_string_or_null (G_DBUS_PROXY (network), "Device");
 	if (!device_path) {
@@ -271,9 +276,22 @@ register_agent (NMIwdManager *self)
 	GDBusInterface *agent_manager;
 
 	agent_manager = g_dbus_object_manager_get_interface (priv->object_manager,
-	                                                     "/",
+	                                                     "/net/connman/iwd",
 	                                                     NM_IWD_AGENT_MANAGER_INTERFACE);
 
+	if (!agent_manager) {
+		/* IWD prior to 1.0 dated 30 October, 2019 has the agent manager on a
+		 * different path. */
+		agent_manager = g_dbus_object_manager_get_interface (priv->object_manager,
+		                                                     "/",
+		                                                     NM_IWD_AGENT_MANAGER_INTERFACE);
+	}
+
+	if (!agent_manager) {
+		_LOGE ("unable to register the IWD Agent: PSK/8021x Wi-Fi networks may not work");
+		return;
+	}
+
 	/* Register our agent */
 	g_dbus_proxy_call (G_DBUS_PROXY (agent_manager),
 	                   "RegisterAgent",