mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-07 04:58:01 +02:00
core: merge branch 'bg/assume'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/852
(cherry picked from commit aeea0203b4)
This commit is contained in:
commit
57dd1281fa
3 changed files with 26 additions and 20 deletions
|
|
@ -5414,11 +5414,11 @@ device_link_changed(NMDevice *self)
|
||||||
/* Ensure the assume check is queued before any queued state changes
|
/* Ensure the assume check is queued before any queued state changes
|
||||||
* from the transition to UNAVAILABLE.
|
* from the transition to UNAVAILABLE.
|
||||||
*/
|
*/
|
||||||
nm_device_queue_recheck_assume(self);
|
|
||||||
reason = NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED;
|
reason = NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nm_device_queue_recheck_assume(self);
|
||||||
nm_device_set_unmanaged_by_flags(self, NM_UNMANAGED_PLATFORM_INIT, FALSE, reason);
|
nm_device_set_unmanaged_by_flags(self, NM_UNMANAGED_PLATFORM_INIT, FALSE, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -627,27 +627,28 @@ void nm_device_copy_ip6_dns_config(NMDevice *self, NMDevice *from_device);
|
||||||
* setting the NM_UNMANAGED_IS_SLAVE to %TRUE makes no sense, this flag has only
|
* setting the NM_UNMANAGED_IS_SLAVE to %TRUE makes no sense, this flag has only
|
||||||
* meaning to set a slave device as managed if the parent is managed too.
|
* meaning to set a slave device as managed if the parent is managed too.
|
||||||
*/
|
*/
|
||||||
typedef enum { /*< skip >*/
|
typedef enum {
|
||||||
NM_UNMANAGED_NONE = 0,
|
NM_UNMANAGED_NONE = 0,
|
||||||
|
|
||||||
/* these flags are authoritative. If one of them is set,
|
/* these flags are authoritative. If one of them is set,
|
||||||
* the device cannot be managed. */
|
* the device cannot be managed. */
|
||||||
NM_UNMANAGED_SLEEPING = (1LL << 0),
|
NM_UNMANAGED_SLEEPING = (1LL << 0),
|
||||||
NM_UNMANAGED_QUITTING = (1LL << 1),
|
NM_UNMANAGED_QUITTING = (1LL << 1),
|
||||||
NM_UNMANAGED_PARENT = (1LL << 2),
|
NM_UNMANAGED_PARENT = (1LL << 2),
|
||||||
NM_UNMANAGED_BY_TYPE = (1LL << 3),
|
NM_UNMANAGED_BY_TYPE = (1LL << 3),
|
||||||
NM_UNMANAGED_PLATFORM_INIT = (1LL << 4),
|
NM_UNMANAGED_PLATFORM_INIT = (1LL << 4),
|
||||||
NM_UNMANAGED_USER_EXPLICIT = (1LL << 5),
|
NM_UNMANAGED_USER_EXPLICIT = (1LL << 5),
|
||||||
NM_UNMANAGED_USER_SETTINGS = (1LL << 6),
|
NM_UNMANAGED_USER_SETTINGS = (1LL << 6),
|
||||||
|
|
||||||
/* These flags can be non-effective and be overwritten
|
/* These flags can be non-effective and be overwritten
|
||||||
* by other flags. */
|
* by other flags. */
|
||||||
NM_UNMANAGED_BY_DEFAULT = (1LL << 8),
|
NM_UNMANAGED_BY_DEFAULT = (1LL << 7),
|
||||||
NM_UNMANAGED_USER_CONF = (1LL << 9),
|
NM_UNMANAGED_USER_CONF = (1LL << 8),
|
||||||
NM_UNMANAGED_USER_UDEV = (1LL << 10),
|
NM_UNMANAGED_USER_UDEV = (1LL << 9),
|
||||||
NM_UNMANAGED_EXTERNAL_DOWN = (1LL << 11),
|
NM_UNMANAGED_EXTERNAL_DOWN = (1LL << 10),
|
||||||
NM_UNMANAGED_IS_SLAVE = (1LL << 12),
|
NM_UNMANAGED_IS_SLAVE = (1LL << 11),
|
||||||
|
|
||||||
|
NM_UNMANAGED_ALL = ((1LL << 12) - 1),
|
||||||
} NMUnmanagedFlags;
|
} NMUnmanagedFlags;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
||||||
|
|
@ -2839,14 +2839,16 @@ recheck_assume_connection(NMManager *self, NMDevice *device)
|
||||||
g_return_val_if_fail(NM_IS_DEVICE(device), FALSE);
|
g_return_val_if_fail(NM_IS_DEVICE(device), FALSE);
|
||||||
|
|
||||||
if (!nm_device_get_managed(device, FALSE)) {
|
if (!nm_device_get_managed(device, FALSE)) {
|
||||||
nm_device_assume_state_reset(device);
|
/* If the device is only unmanaged by NM_UNMANAGED_PLATFORM_INIT,
|
||||||
|
* don't reset the state now but wait until it becomes managed. */
|
||||||
|
if (nm_device_get_unmanaged_flags(device, NM_UNMANAGED_ALL) != NM_UNMANAGED_PLATFORM_INIT)
|
||||||
|
nm_device_assume_state_reset(device);
|
||||||
_LOG2D(LOGD_DEVICE, device, "assume: don't assume because %s", "not managed");
|
_LOG2D(LOGD_DEVICE, device, "assume: don't assume because %s", "not managed");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
state = nm_device_get_state(device);
|
state = nm_device_get_state(device);
|
||||||
if (state > NM_DEVICE_STATE_DISCONNECTED) {
|
if (state > NM_DEVICE_STATE_DISCONNECTED) {
|
||||||
nm_device_assume_state_reset(device);
|
|
||||||
_LOG2D(LOGD_DEVICE,
|
_LOG2D(LOGD_DEVICE,
|
||||||
device,
|
device,
|
||||||
"assume: don't assume due to device state %s",
|
"assume: don't assume due to device state %s",
|
||||||
|
|
@ -3161,7 +3163,10 @@ _device_realize_finish(NMManager *self, NMDevice *device, const NMPlatformLink *
|
||||||
nm_device_realize_finish(device, plink);
|
nm_device_realize_finish(device, plink);
|
||||||
|
|
||||||
if (!nm_device_get_managed(device, FALSE)) {
|
if (!nm_device_get_managed(device, FALSE)) {
|
||||||
nm_device_assume_state_reset(device);
|
/* If the device is only unmanaged by NM_UNMANAGED_PLATFORM_INIT,
|
||||||
|
* don't reset the state now but wait until it becomes managed. */
|
||||||
|
if (nm_device_get_unmanaged_flags(device, NM_UNMANAGED_ALL) != NM_UNMANAGED_PLATFORM_INIT)
|
||||||
|
nm_device_assume_state_reset(device);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue