diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 573270fcfb..22a235d40e 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -7759,6 +7759,25 @@ nm_device_set_unmanaged (NMDevice *self, } } +void +nm_device_set_unmanaged_by_device_spec (NMDevice *self, const GSList *unmanaged_specs) +{ + NMDevicePrivate *priv; + gboolean unmanaged; + + g_return_if_fail (NM_IS_DEVICE (self)); + + priv = NM_DEVICE_GET_PRIVATE (self); + + unmanaged = nm_device_spec_match_list (self, unmanaged_specs); + nm_device_set_unmanaged (self, + NM_UNMANAGED_USER, + unmanaged, + unmanaged + ? NM_DEVICE_STATE_REASON_NOW_UNMANAGED + : NM_DEVICE_STATE_REASON_NOW_MANAGED); +} + void nm_device_set_unmanaged_quitting (NMDevice *self) { diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h index 6d254d7330..00ea568e52 100644 --- a/src/devices/nm-device.h +++ b/src/devices/nm-device.h @@ -436,6 +436,7 @@ void nm_device_set_unmanaged (NMDevice *device, NMUnmanagedFlags flag, gboolean unmanaged, NMDeviceStateReason reason); +void nm_device_set_unmanaged_by_device_spec (NMDevice *self, const GSList *unmanaged_specs); void nm_device_set_unmanaged_quitting (NMDevice *device); void nm_device_set_initial_unmanaged_flag (NMDevice *device, NMUnmanagedFlags flag, diff --git a/src/nm-manager.c b/src/nm-manager.c index e72d705438..0e13f3b1e3 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -1084,17 +1084,8 @@ system_unmanaged_devices_changed_cb (NMSettings *settings, const GSList *unmanaged_specs, *iter; unmanaged_specs = nm_settings_get_unmanaged_specs (priv->settings); - for (iter = priv->devices; iter; iter = g_slist_next (iter)) { - NMDevice *device = NM_DEVICE (iter->data); - gboolean unmanaged; - - unmanaged = nm_device_spec_match_list (device, unmanaged_specs); - nm_device_set_unmanaged (device, - NM_UNMANAGED_USER, - unmanaged, - unmanaged ? NM_DEVICE_STATE_REASON_NOW_UNMANAGED : - NM_DEVICE_STATE_REASON_NOW_MANAGED); - } + for (iter = priv->devices; iter; iter = g_slist_next (iter)) + nm_device_set_unmanaged_by_device_spec (NM_DEVICE (iter->data), unmanaged_specs); } static void