device: don't update applied connection for generated assumed devices
The applied connection must describe the configuration that was initially activated on the device. Even if the IP configuration changes, we shouldn't reset the applied connection for devices using a generated-assumed connection, otherwise we would lose information on the IP method we're trying on the device.
This commit is contained in:
@@ -7925,23 +7925,16 @@ nm_device_set_ip4_config (NMDevice *self,
|
|||||||
nm_exported_object_clear_and_unexport (&old_config);
|
nm_exported_object_clear_and_unexport (&old_config);
|
||||||
|
|
||||||
if (nm_device_uses_generated_assumed_connection (self)) {
|
if (nm_device_uses_generated_assumed_connection (self)) {
|
||||||
NMConnection *connection = nm_device_get_applied_connection (self);
|
|
||||||
NMConnection *settings_connection = NM_CONNECTION (nm_device_get_settings_connection (self));
|
NMConnection *settings_connection = NM_CONNECTION (nm_device_get_settings_connection (self));
|
||||||
NMSetting *s_ip4;
|
NMSetting *s_ip4;
|
||||||
|
|
||||||
g_object_freeze_notify (G_OBJECT (connection));
|
|
||||||
g_object_freeze_notify (G_OBJECT (settings_connection));
|
g_object_freeze_notify (G_OBJECT (settings_connection));
|
||||||
|
|
||||||
nm_connection_remove_setting (settings_connection, NM_TYPE_SETTING_IP4_CONFIG);
|
nm_connection_remove_setting (settings_connection, NM_TYPE_SETTING_IP4_CONFIG);
|
||||||
s_ip4 = nm_ip4_config_create_setting (priv->ip4_config);
|
s_ip4 = nm_ip4_config_create_setting (priv->ip4_config);
|
||||||
nm_connection_add_setting (settings_connection, s_ip4);
|
nm_connection_add_setting (settings_connection, s_ip4);
|
||||||
|
|
||||||
nm_connection_remove_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
|
|
||||||
s_ip4 = nm_ip4_config_create_setting (priv->ip4_config);
|
|
||||||
nm_connection_add_setting (connection, s_ip4);
|
|
||||||
|
|
||||||
g_object_thaw_notify (G_OBJECT (settings_connection));
|
g_object_thaw_notify (G_OBJECT (settings_connection));
|
||||||
g_object_thaw_notify (G_OBJECT (connection));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nm_device_queue_recheck_assume (self);
|
nm_device_queue_recheck_assume (self);
|
||||||
@@ -8090,23 +8083,16 @@ nm_device_set_ip6_config (NMDevice *self,
|
|||||||
nm_exported_object_clear_and_unexport (&old_config);
|
nm_exported_object_clear_and_unexport (&old_config);
|
||||||
|
|
||||||
if (nm_device_uses_generated_assumed_connection (self)) {
|
if (nm_device_uses_generated_assumed_connection (self)) {
|
||||||
NMConnection *connection = nm_device_get_applied_connection (self);
|
|
||||||
NMConnection *settings_connection = NM_CONNECTION (nm_device_get_settings_connection (self));
|
NMConnection *settings_connection = NM_CONNECTION (nm_device_get_settings_connection (self));
|
||||||
NMSetting *s_ip6;
|
NMSetting *s_ip6;
|
||||||
|
|
||||||
g_object_freeze_notify (G_OBJECT (connection));
|
|
||||||
g_object_freeze_notify (G_OBJECT (settings_connection));
|
g_object_freeze_notify (G_OBJECT (settings_connection));
|
||||||
|
|
||||||
nm_connection_remove_setting (settings_connection, NM_TYPE_SETTING_IP6_CONFIG);
|
nm_connection_remove_setting (settings_connection, NM_TYPE_SETTING_IP6_CONFIG);
|
||||||
s_ip6 = nm_ip6_config_create_setting (priv->ip6_config);
|
s_ip6 = nm_ip6_config_create_setting (priv->ip6_config);
|
||||||
nm_connection_add_setting (settings_connection, s_ip6);
|
nm_connection_add_setting (settings_connection, s_ip6);
|
||||||
|
|
||||||
nm_connection_remove_setting (connection, NM_TYPE_SETTING_IP6_CONFIG);
|
|
||||||
s_ip6 = nm_ip6_config_create_setting (priv->ip6_config);
|
|
||||||
nm_connection_add_setting (connection, s_ip6);
|
|
||||||
|
|
||||||
g_object_thaw_notify (G_OBJECT (settings_connection));
|
g_object_thaw_notify (G_OBJECT (settings_connection));
|
||||||
g_object_thaw_notify (G_OBJECT (connection));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nm_device_queue_recheck_assume (self);
|
nm_device_queue_recheck_assume (self);
|
||||||
|
Reference in New Issue
Block a user