mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 21:00:10 +01:00
core: fix nm_ip_config_intersect() only to remove addresses, routes and gateway
Otherwise we remove the DNS configuration during platform events. Fixes:557667df12(cherry picked from commit11ccf949a3)
This commit is contained in:
parent
43b77d7c32
commit
bfe2fd271b
2 changed files with 8 additions and 68 deletions
|
|
@ -755,14 +755,7 @@ nm_ip4_config_intersect (NMIP4Config *dst, const NMIP4Config *src)
|
|||
i++;
|
||||
}
|
||||
|
||||
/* nameservers */
|
||||
for (i = 0; i < nm_ip4_config_get_num_nameservers (dst); ) {
|
||||
idx = _nameservers_get_index (src, nm_ip4_config_get_nameserver (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip4_config_del_nameserver (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
/* ignore nameservers */
|
||||
|
||||
/* default gateway */
|
||||
if ( !nm_ip4_config_get_num_addresses (dst)
|
||||
|
|
@ -778,41 +771,10 @@ nm_ip4_config_intersect (NMIP4Config *dst, const NMIP4Config *src)
|
|||
i++;
|
||||
}
|
||||
|
||||
/* domains */
|
||||
for (i = 0; i < nm_ip4_config_get_num_domains (dst); ) {
|
||||
idx = _domains_get_index (src, nm_ip4_config_get_domain (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip4_config_del_domain (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
|
||||
/* dns searches */
|
||||
for (i = 0; i < nm_ip4_config_get_num_searches (dst); ) {
|
||||
idx = _searches_get_index (src, nm_ip4_config_get_search (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip4_config_del_search (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
|
||||
/* NIS */
|
||||
for (i = 0; i < nm_ip4_config_get_num_nis_servers (dst); ) {
|
||||
idx = _nis_servers_get_index (src, nm_ip4_config_get_nis_server (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip4_config_del_nis_server (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
|
||||
/* WINS */
|
||||
for (i = 0; i < nm_ip4_config_get_num_wins (dst); ) {
|
||||
idx = _wins_get_index (src, nm_ip4_config_get_wins (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip4_config_del_wins (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
/* ignore domains */
|
||||
/* ignore dns searches */
|
||||
/* ignore NIS */
|
||||
/* ignore WINS */
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (dst));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -822,14 +822,7 @@ nm_ip6_config_intersect (NMIP6Config *dst, const NMIP6Config *src)
|
|||
i++;
|
||||
}
|
||||
|
||||
/* nameservers */
|
||||
for (i = 0; i < nm_ip6_config_get_num_nameservers (dst); ) {
|
||||
idx = _nameservers_get_index (src, nm_ip6_config_get_nameserver (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip6_config_del_nameserver (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
/* ignore nameservers */
|
||||
|
||||
/* default gateway */
|
||||
dst_tmp = nm_ip6_config_get_gateway (dst);
|
||||
|
|
@ -850,23 +843,8 @@ nm_ip6_config_intersect (NMIP6Config *dst, const NMIP6Config *src)
|
|||
i++;
|
||||
}
|
||||
|
||||
/* domains */
|
||||
for (i = 0; i < nm_ip6_config_get_num_domains (src); ) {
|
||||
idx = _domains_get_index (src, nm_ip6_config_get_domain (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip6_config_del_domain (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
|
||||
/* dns searches */
|
||||
for (i = 0; i < nm_ip6_config_get_num_searches (src); i++) {
|
||||
idx = _searches_get_index (src, nm_ip6_config_get_search (dst, i));
|
||||
if (idx < 0)
|
||||
nm_ip6_config_del_search (dst, i);
|
||||
else
|
||||
i++;
|
||||
}
|
||||
/* ignore domains */
|
||||
/* ignore dns searches */
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (dst));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue