core: ensure generated connections has no gateway if it has no addresses

Fixes: f17699f4e3
Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Thomas Haller
2014-11-07 16:34:13 +01:00
parent d4417e3460
commit 2cfd1647d3
2 changed files with 10 additions and 2 deletions

View File

@@ -430,7 +430,8 @@ nm_ip4_config_create_setting (const NMIP4Config *config)
}
/* Gateway */
if (gateway) {
if ( gateway
&& nm_setting_ip_config_get_num_addresses (s_ip4) > 0) {
g_object_set (s_ip4,
NM_SETTING_IP_CONFIG_GATEWAY, nm_utils_inet4_ntop (gateway, NULL),
NULL);
@@ -586,6 +587,9 @@ nm_ip4_config_subtract (NMIP4Config *dst, const NMIP4Config *src)
if (nm_ip4_config_get_gateway (src) == nm_ip4_config_get_gateway (dst))
nm_ip4_config_set_gateway (dst, 0);
if (!nm_ip4_config_get_num_addresses (dst))
nm_ip4_config_set_gateway (dst, 0);
/* routes */
for (i = 0; i < nm_ip4_config_get_num_routes (src); i++) {
const NMPlatformIP4Route *src_route = nm_ip4_config_get_route (src, i);

View File

@@ -538,7 +538,8 @@ nm_ip6_config_create_setting (const NMIP6Config *config)
}
/* Gateway */
if (gateway) {
if ( gateway
&& nm_setting_ip_config_get_num_addresses (s_ip6) > 0) {
g_object_set (s_ip6,
NM_SETTING_IP_CONFIG_GATEWAY, nm_utils_inet6_ntop (gateway, NULL),
NULL);
@@ -700,6 +701,9 @@ nm_ip6_config_subtract (NMIP6Config *dst, const NMIP6Config *src)
if (src_tmp && dst_tmp && IN6_ARE_ADDR_EQUAL (src_tmp, dst_tmp))
nm_ip6_config_set_gateway (dst, NULL);
if (!nm_ip6_config_get_num_addresses (dst))
nm_ip6_config_set_gateway (dst, NULL);
/* routes */
for (i = 0; i < nm_ip6_config_get_num_routes (src); i++) {
const NMPlatformIP6Route *src_route = nm_ip6_config_get_route (src, i);