diff options
| author | Beniamino Galvani <bgalvani@redhat.com> | 2017-05-09 11:22:27 +0200 |
|---|---|---|
| committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-05-09 11:22:27 +0200 |
| commit | c8dbe90f428fbc58b22f1d86b29d63e565d2ed91 (patch) | |
| tree | 160c2bd328d46dc0c0f80581cf2cc7236d1c9c16 | |
| parent | b6b7d909f7023ef1830fe5a072b64e109397f609 (diff) | |
| download | NetworkManager-c8dbe90f428fbc58b22f1d86b29d63e565d2ed91.tar.gz | |
wip
| -rw-r--r-- | src/devices/nm-device.c | 2 | ||||
| -rw-r--r-- | src/dhcp/nm-dhcp-utils.c | 2 | ||||
| -rw-r--r-- | src/nm-ip4-config.c | 4 | ||||
| -rw-r--r-- | src/nm-ip4-config.h | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 1b6fc97f2d..d105082f64 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -5565,7 +5565,7 @@ ip4_config_merge_and_apply (NMDevice *self, has_direct_route = ( gateway == 0 || nm_ip4_config_destination_is_direct (composite, gateway, 32) - || nm_ip4_config_get_direct_route_for_host (composite, gateway)); + || nm_ip4_config_get_route_for_host (composite, gateway, TRUE)); priv->default_route.v4_has = TRUE; memset (&priv->default_route.v4, 0, sizeof (priv->default_route.v4)); diff --git a/src/dhcp/nm-dhcp-utils.c b/src/dhcp/nm-dhcp-utils.c index e020ca3318..9d644f6d2e 100644 --- a/src/dhcp/nm-dhcp-utils.c +++ b/src/dhcp/nm-dhcp-utils.c @@ -468,7 +468,7 @@ nm_dhcp_utils_ip4_config_from_options (int ifindex, _LOG2I (LOGD_DHCP4, iface, " server identifier %s", str); if ( nm_utils_ip4_address_clear_host_address(tmp_addr, address.plen) != nm_utils_ip4_address_clear_host_address(address.address, address.plen) - && !nm_ip4_config_get_direct_route_for_host (ip4_config, tmp_addr)) { + && !nm_ip4_config_get_route_for_host (ip4_config, tmp_addr, TRUE)) { /* DHCP server not on assigned subnet and the no direct route was returned. Add route */ NMPlatformIP4Route route = { 0 }; diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 20532e8607..0ceb6f18c6 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -1678,7 +1678,7 @@ nm_ip4_config_get_route (const NMIP4Config *config, guint i) } const NMPlatformIP4Route * -nm_ip4_config_get_direct_route_for_host (const NMIP4Config *config, guint32 host) +nm_ip4_config_get_route_for_host (const NMIP4Config *config, guint32 host, gboolean direct_only) { const NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (config); guint i; @@ -1689,7 +1689,7 @@ nm_ip4_config_get_direct_route_for_host (const NMIP4Config *config, guint32 host for (i = 0; i < priv->routes->len; i++) { NMPlatformIP4Route *item = &g_array_index (priv->routes, NMPlatformIP4Route, i); - if (item->gateway != 0) + if (direct_only && item->gateway != 0) continue; if (best_route && best_route->plen > item->plen) diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index ceb52ac547..e741a3fc69 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -94,7 +94,7 @@ void nm_ip4_config_del_route (NMIP4Config *config, guint i); guint nm_ip4_config_get_num_routes (const NMIP4Config *config); const NMPlatformIP4Route *nm_ip4_config_get_route (const NMIP4Config *config, guint i); -const NMPlatformIP4Route *nm_ip4_config_get_direct_route_for_host (const NMIP4Config *config, guint32 host); +const NMPlatformIP4Route *nm_ip4_config_get_route_for_host (const NMIP4Config *config, guint32 host, gboolean direct_only); void nm_ip4_config_reset_nameservers (NMIP4Config *config); void nm_ip4_config_add_nameserver (NMIP4Config *config, guint32 nameserver); |
