diff --git a/src/nm-manager.c b/src/nm-manager.c index 9ccb7e44d2..b3935c213a 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2263,6 +2263,17 @@ nm_manager_get_devices (NMManager *manager) return NM_MANAGER_GET_PRIVATE (manager)->devices; } +static NMDevice * +nm_manager_get_connection_device (NMManager *self, + NMConnection *connection) +{ + NMActiveConnection *ac = find_ac_for_connection (self, connection); + if (ac == NULL) + return NULL; + + return nm_active_connection_get_device (ac); +} + static gboolean impl_manager_get_devices (NMManager *manager, GPtrArray **devices, GError **err) { @@ -3107,7 +3118,10 @@ validate_activation_request (NMManager *self, "Device not found"); goto error; } - } else { + } else + device = nm_manager_get_connection_device (self, connection); + + if (!device) { gboolean is_software = nm_connection_is_virtual (connection); /* VPN and software-device connections don't need a device yet */