diff options
author | Thomas Haller <thaller@redhat.com> | 2014-11-07 16:34:13 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-11-07 16:35:00 +0100 |
commit | 2cfd1647d3723baa42ea48f50f0c8a97c3d96d2f (patch) | |
tree | ef3790540ce332c8226b2b195e4023eea83fdc3c | |
parent | d4417e34606b1f08c361709ff9567055a1d6859e (diff) | |
download | NetworkManager-2cfd1647d3723baa42ea48f50f0c8a97c3d96d2f.tar.gz |
core: ensure generated connections has no gateway if it has no addresses
Fixes: f17699f4e3dacb9358a8503c8b15efe3cb852b48
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | src/nm-ip4-config.c | 6 | ||||
-rw-r--r-- | src/nm-ip6-config.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 5fddc73798..34d613437d 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -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); diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 9423d8a0f9..5ad16b3249 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -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); |