summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 dd1cad4806..470cb1c902 100644
--- a/src/devices/wifi/nm-iwd-manager.c
+++ b/src/devices/wifi/nm-iwd-manager.c
@@ -136,6 +136,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) {
@@ -257,9 +262,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",