mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-29 23:10:18 +01:00
device: don't reapply IP config on link up for disconnected devices
Only reapply the IP configuration on link up if the IP state is CONF or DONE. Previously we also reapplied it when the device was disconnected (IP state NONE) and this could lead to a situation where an incomplete config was applied; then we intersected the desired configuration with the external - incomplete - one, causing the removal of part of desired configuration (for example the default route). Fixes:d0b16b9283('device: unconditionally reapply IP configuration on link up') https://bugzilla.redhat.com/show_bug.cgi?id=1754511 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/291 (cherry picked from commit64a9dd3804) (cherry picked from commit722cddfad8)
This commit is contained in:
parent
97e89e7d34
commit
f754f97900
1 changed files with 10 additions and 4 deletions
|
|
@ -3885,12 +3885,18 @@ device_link_changed (NMDevice *self)
|
|||
if (priv->up && (!was_up || seen_down)) {
|
||||
/* the link was down and just came up. That happens for example, while changing MTU.
|
||||
* We must restore IP configuration. */
|
||||
if (!ip_config_merge_and_apply (self, AF_INET, TRUE))
|
||||
_LOGW (LOGD_IP4, "failed applying IP4 config after link comes up again");
|
||||
if (NM_IN_SET (priv->ip_state_4, NM_DEVICE_IP_STATE_CONF,
|
||||
NM_DEVICE_IP_STATE_DONE)) {
|
||||
if (!ip_config_merge_and_apply (self, AF_INET, TRUE))
|
||||
_LOGW (LOGD_IP4, "failed applying IP4 config after link comes up again");
|
||||
}
|
||||
|
||||
priv->linklocal6_dad_counter = 0;
|
||||
if (!ip_config_merge_and_apply (self, AF_INET6, TRUE))
|
||||
_LOGW (LOGD_IP6, "failed applying IP6 config after link comes up again");
|
||||
if (NM_IN_SET (priv->ip_state_6, NM_DEVICE_IP_STATE_CONF,
|
||||
NM_DEVICE_IP_STATE_DONE)) {
|
||||
if (!ip_config_merge_and_apply (self, AF_INET6, TRUE))
|
||||
_LOGW (LOGD_IP6, "failed applying IP6 config after link comes up again");
|
||||
}
|
||||
}
|
||||
|
||||
if (update_unmanaged_specs)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue