diff options
author | Dan Williams <dcbw@redhat.com> | 2008-08-07 13:41:04 +0000 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2008-08-07 13:41:04 +0000 |
commit | 2dbd644fe924345aae6edf74278ba428ad0a478a (patch) | |
tree | 924d331123eff1b00f5e2c69bf35c4357d65e9dc /src/NetworkManagerUtils.c | |
parent | 6d7474e565046b360e2b7ff1b84b6b1b30c71caa (diff) | |
download | NetworkManager-modem-manager.tar.gz |
Merge from trunk r3901modem-manager
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/branches/modem-manager@3902 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src/NetworkManagerUtils.c')
-rw-r--r-- | src/NetworkManagerUtils.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index a4a56448eb..66fe990795 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -278,11 +278,14 @@ nm_utils_merge_ip4_config (NMIP4Config *ip4_config, NMSettingIP4Config *setting) if (!setting) return; /* Defaults are just fine */ - if (setting->ignore_dhcp_dns) { + if (setting->ignore_auto_dns) { nm_ip4_config_reset_nameservers (ip4_config); nm_ip4_config_reset_searches (ip4_config); } + if (setting->ignore_auto_routes) + nm_ip4_config_reset_routes (ip4_config); + if (setting->dns) { int i, j; @@ -344,25 +347,27 @@ nm_utils_merge_ip4_config (NMIP4Config *ip4_config, NMSettingIP4Config *setting) nm_ip4_config_add_address (ip4_config, setting_addr); } - /* IPv4 static routes */ + /* IPv4 routes */ for (iter = setting->routes; iter; iter = g_slist_next (iter)) { - NMSettingIP4Address *setting_route = (NMSettingIP4Address *) iter->data; + NMSettingIP4Route *setting_route = (NMSettingIP4Route *) iter->data; guint32 i, num; - num = nm_ip4_config_get_num_static_routes (ip4_config); + num = nm_ip4_config_get_num_routes (ip4_config); for (i = 0; i < num; i++) { - const NMSettingIP4Address *cfg_route; - - cfg_route = nm_ip4_config_get_static_route (ip4_config, i); - /* Dupe, override with user-specified address */ - if (cfg_route->address == setting_route->address) { - nm_ip4_config_replace_static_route (ip4_config, i, setting_route); + const NMSettingIP4Route *cfg_route; + + cfg_route = nm_ip4_config_get_route (ip4_config, i); + /* Dupe, override with user-specified route */ + if ( (cfg_route->address == setting_route->address) + && (cfg_route->prefix == setting_route->prefix) + && (cfg_route->next_hop == setting_route->next_hop)) { + nm_ip4_config_replace_route (ip4_config, i, setting_route); break; } } if (i == num) - nm_ip4_config_add_static_route (ip4_config, setting_route); + nm_ip4_config_add_route (ip4_config, setting_route); } } |