summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-01-26 17:29:25 +0100
committerThomas Haller <thaller@redhat.com>2015-01-26 17:56:03 +0100
commit11ccf949a331c77e14a0d4115c7242e8732878c8 (patch)
treefa23ecc41604767e25de36b4ea58ca9cbc3d7c5c
parentddac52a61e838b6f2b7e103e2f94276c6dc41037 (diff)
downloadNetworkManager-11ccf949a331c77e14a0d4115c7242e8732878c8.tar.gz
core: fix nm_ip_config_intersect() only to remove addresses, routes and gateway
Otherwise we remove the DNS configuration during platform events. Fixes: 557667df12fc05b76326d6406553985effeeb2ac
-rw-r--r--src/nm-ip4-config.c48
-rw-r--r--src/nm-ip6-config.c28
2 files changed, 8 insertions, 68 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
index 97ca718a5e..111f6cc361 100644
--- a/src/nm-ip4-config.c
+++ b/src/nm-ip4-config.c
@@ -760,14 +760,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)
@@ -783,41 +776,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));
}
diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c
index a148d826e6..abb35367ab 100644
--- a/src/nm-ip6-config.c
+++ b/src/nm-ip6-config.c
@@ -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));
}