diff options
author | Dan Williams <dcbw@redhat.com> | 2014-04-01 14:45:00 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-04-07 09:52:07 -0500 |
commit | de5c91ea0f3870a922acbda228ccc4e62041c4cd (patch) | |
tree | 76870bd04f62797f254731a4e4093c52a8e02c21 | |
parent | 6c299bc19be01a0ed0e4c89f1b8141fdfc338818 (diff) | |
download | NetworkManager-de5c91ea0f3870a922acbda228ccc4e62041c4cd.tar.gz |
core: split user managed preference (unmanaged specs) out from internal management
We'll want to track internal management separately in the future, so split out
user management (eg, whether the device has been explicitly marked unmanaged
by the user).
-rw-r--r-- | src/devices/nm-device.h | 6 | ||||
-rw-r--r-- | src/nm-manager.c | 14 |
2 files changed, 9 insertions, 11 deletions
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h index 6a6a4e165a..a253fd425c 100644 --- a/src/devices/nm-device.h +++ b/src/devices/nm-device.h @@ -299,13 +299,15 @@ RfKillType nm_device_get_rfkill_type (NMDevice *device); * NMUnmanagedFlags: * @NM_UNMANAGED_NONE: placeholder value * @NM_UNMANAGED_DEFAULT: %TRUE when unmanaged by default (ie, Generic devices) - * @NM_UNMANAGED_INTERNAL: %TRUE when unmanaged by internal decision (ie, for - * devices in unmanaged specs or when NM is sleeping) + * @NM_UNMANAGED_INTERNAL: %TRUE when unmanaged by internal decision (ie, + * because NM is sleeping or not managed for some other reason) + * @NM_UNMANAGED_USER: %TRUE when unmanaged by user decision (via unmanaged-specs) */ typedef enum { NM_UNMANAGED_NONE = 0x00, NM_UNMANAGED_DEFAULT = 0x01, NM_UNMANAGED_INTERNAL = 0x02, + NM_UNMANAGED_USER = 0x04, /* Boundary value */ __NM_UNMANAGED_LAST, diff --git a/src/nm-manager.c b/src/nm-manager.c index 3857da6c3f..ea0663f5be 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -1203,7 +1203,7 @@ system_unmanaged_devices_changed_cb (NMSettings *settings, unmanaged = nm_device_spec_match_list (device, unmanaged_specs); nm_device_set_unmanaged (device, - NM_UNMANAGED_INTERNAL, + NM_UNMANAGED_USER, unmanaged, unmanaged ? NM_DEVICE_STATE_REASON_NOW_UNMANAGED : NM_DEVICE_STATE_REASON_NOW_MANAGED); @@ -1845,8 +1845,10 @@ add_device (NMManager *self, NMDevice *device, gboolean generate_con) unmanaged_specs = nm_settings_get_unmanaged_specs (priv->settings); user_unmanaged = nm_device_spec_match_list (device, unmanaged_specs); + nm_device_set_initial_unmanaged_flag (device, NM_UNMANAGED_USER, user_unmanaged); + sleeping = manager_sleeping (self); - nm_device_set_initial_unmanaged_flag (device, NM_UNMANAGED_INTERNAL, sleeping || user_unmanaged); + nm_device_set_initial_unmanaged_flag (device, NM_UNMANAGED_INTERNAL, sleeping); path = g_strdup_printf ("/org/freedesktop/NetworkManager/Devices/%d", devcount++); nm_device_set_path (device, path); @@ -3594,7 +3596,6 @@ static void do_sleep_wake (NMManager *self) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - const GSList *unmanaged_specs; GSList *iter; if (manager_sleeping (self)) { @@ -3613,8 +3614,6 @@ do_sleep_wake (NMManager *self) } else { nm_log_info (LOGD_SUSPEND, "waking up and re-enabling..."); - unmanaged_specs = nm_settings_get_unmanaged_specs (priv->settings); - /* Ensure rfkill state is up-to-date since we don't respond to state * changes during sleep. */ @@ -3647,10 +3646,7 @@ do_sleep_wake (NMManager *self) g_object_set (G_OBJECT (device), NM_DEVICE_AUTOCONNECT, TRUE, NULL); - if (nm_device_spec_match_list (device, unmanaged_specs)) - nm_device_set_unmanaged (device, NM_UNMANAGED_INTERNAL, TRUE, NM_DEVICE_STATE_REASON_NOW_UNMANAGED); - else - nm_device_set_unmanaged (device, NM_UNMANAGED_INTERNAL, FALSE, NM_DEVICE_STATE_REASON_NOW_MANAGED); + nm_device_set_unmanaged (device, NM_UNMANAGED_INTERNAL, FALSE, NM_DEVICE_STATE_REASON_NOW_MANAGED); } } |