mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-26 04:10:14 +01:00
device: reset @con_ip6_config on failure before RA
If the commit of static connection parameters fails before starting
RA, we should reset @con_ip6_config; otherwise any external update
arriving before the commit of RA parameters will remove from
@con_ip6_config all parameters not present externally, because in
update_ip6_config() we do:
/* This function was called upon external changes. Remove the configuration
* (addresses,routes) that is no longer present externally from the internal
* config. This way, we don't re-add addresses that were manually removed
* by the user. */
if (priv->con_ip6_config)
nm_ip6_config_intersect (priv->con_ip6_config, priv->ext_ip6_config);
Instead if @con_ip6_config is cleared it will be rebuilt from the
connection setting at the next commit.
Fixes-test: @ipv6_preserve_cached_routes
This commit is contained in:
parent
7dc1f8b479
commit
7070d17ced
1 changed files with 3 additions and 1 deletions
|
|
@ -7421,8 +7421,10 @@ addrconf6_start_with_link_ready (NMDevice *self)
|
|||
}
|
||||
|
||||
/* Apply any manual configuration before starting RA */
|
||||
if (!ip6_config_merge_and_apply (self, TRUE))
|
||||
if (!ip6_config_merge_and_apply (self, TRUE)) {
|
||||
_LOGW (LOGD_IP6, "failed to apply manual IPv6 configuration");
|
||||
g_clear_object (&priv->con_ip6_config);
|
||||
}
|
||||
|
||||
/* XXX: These sysctls would probably be better set by the lndp ndisc itself. */
|
||||
switch (nm_ndisc_get_node_type (priv->ndisc)) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue