[gnome-control-center/gnome-3-14] network: Don't save hidden configuration options
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/gnome-3-14] network: Don't save hidden configuration options
- Date: Thu, 19 Mar 2015 19:47:19 +0000 (UTC)
commit aa1d34c3455f7c22daf33fe9797824497f870b7f
Author: Bastien Nocera <hadess hadess net>
Date: Wed Aug 13 18:26:19 2014 +0200
network: Don't save hidden configuration options
When switching from a particular IPv4 or IPv6 "addresses" method to
another, make sure that "address", "DNS" and "routes" are applied or
ignored depending on that method's capabilities.
For example, when switching from manual to automatic IPv4 "addresses"
method, we need to make sure that the old IP address, gateway, etc.
aren't actually used in the new setting.
https://bugzilla.gnome.org/show_bug.cgi?id=734337
panels/network/connection-editor/ce-page-ip4.c | 21 +++++++++++++++++----
panels/network/connection-editor/ce-page-ip6.c | 22 +++++++++++++++++++---
2 files changed, 36 insertions(+), 7 deletions(-)
---
diff --git a/panels/network/connection-editor/ce-page-ip4.c b/panels/network/connection-editor/ce-page-ip4.c
index f33e197..d60b738 100644
--- a/panels/network/connection-editor/ce-page-ip4.c
+++ b/panels/network/connection-editor/ce-page-ip4.c
@@ -705,7 +705,11 @@ ui_to_setting (CEPageIP4 *page)
}
addresses = g_ptr_array_new_with_free_func (free_addr);
- children = gtk_container_get_children (GTK_CONTAINER (page->address_list));
+ if (g_str_equal (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->address_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
@@ -775,7 +779,12 @@ ui_to_setting (CEPageIP4 *page)
}
dns_servers = g_array_new (FALSE, FALSE, sizeof (guint));
- children = gtk_container_get_children (GTK_CONTAINER (page->dns_list));
+ if (g_str_equal (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO) ||
+ g_str_equal (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->dns_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
@@ -803,9 +812,13 @@ ui_to_setting (CEPageIP4 *page)
}
g_list_free (children);
-
routes = g_ptr_array_new_with_free_func (free_addr);
- children = gtk_container_get_children (GTK_CONTAINER (page->routes_list));
+ if (g_str_equal (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO) ||
+ g_str_equal (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->routes_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
diff --git a/panels/network/connection-editor/ce-page-ip6.c b/panels/network/connection-editor/ce-page-ip6.c
index 5bc5af8..e5cffc1 100644
--- a/panels/network/connection-editor/ce-page-ip6.c
+++ b/panels/network/connection-editor/ce-page-ip6.c
@@ -682,7 +682,11 @@ ui_to_setting (CEPageIP6 *page)
}
nm_setting_ip6_config_clear_addresses (page->setting);
- children = gtk_container_get_children (GTK_CONTAINER (page->address_list));
+ if (g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->address_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
@@ -753,7 +757,13 @@ ui_to_setting (CEPageIP6 *page)
g_list_free (children);
nm_setting_ip6_config_clear_dns (page->setting);
- children = gtk_container_get_children (GTK_CONTAINER (page->dns_list));
+ if (g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_AUTO) ||
+ g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_DHCP) ||
+ g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->dns_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
@@ -782,7 +792,13 @@ ui_to_setting (CEPageIP6 *page)
g_list_free (children);
nm_setting_ip6_config_clear_routes (page->setting);
- children = gtk_container_get_children (GTK_CONTAINER (page->routes_list));
+ if (g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_AUTO) ||
+ g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_DHCP) ||
+ g_str_equal (method, NM_SETTING_IP6_CONFIG_METHOD_MANUAL))
+ children = gtk_container_get_children (GTK_CONTAINER (page->routes_list));
+ else
+ children = NULL;
+
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
GtkEntry *entry;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]