mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-07 23:50:30 +01:00
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).
This commit is contained in:
parent
6c299bc19b
commit
de5c91ea0f
2 changed files with 9 additions and 11 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue