diff options
author | Thomas Haller <thaller@redhat.com> | 2014-11-19 15:17:32 +0100 |
---|---|---|
committer | Dan Winship <danw@redhat.com> | 2014-11-24 10:52:56 -0500 |
commit | 13d9b2832341f376cf8ca6b9e467ade040c7b680 (patch) | |
tree | 388434e6f20990aba140f83861c3a9899213acc4 | |
parent | 9013fd42d6d3cf2ed458043744611c3a996b0c66 (diff) | |
download | NetworkManager-13d9b2832341f376cf8ca6b9e467ade040c7b680.tar.gz |
dhcp: pass device specific route metric to nm_dhcp_systemd_get_lease_ip_configs()
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | src/devices/nm-device.c | 3 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-client.h | 3 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-dhclient.c | 3 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-manager.c | 5 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-manager.h | 3 | ||||
-rw-r--r-- | src/dhcp-manager/nm-dhcp-systemd.c | 5 |
6 files changed, 14 insertions, 8 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 56ecfcaf4b..8e7e710d2e 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -6281,7 +6281,8 @@ find_ip4_lease_config (NMDevice *self, leases = nm_dhcp_manager_get_lease_ip_configs (nm_dhcp_manager_get (), ip_iface, nm_connection_get_uuid (connection), - FALSE); + FALSE, + nm_device_get_ip4_route_metric (self)); for (liter = leases; liter && !found; liter = liter->next) { NMIP4Config *lease_config = liter->data; const NMPlatformIP4Address *address = nm_ip4_config_get_address (lease_config, 0); diff --git a/src/dhcp-manager/nm-dhcp-client.h b/src/dhcp-manager/nm-dhcp-client.h index 3329fe38f3..0876061f8a 100644 --- a/src/dhcp-manager/nm-dhcp-client.h +++ b/src/dhcp-manager/nm-dhcp-client.h @@ -101,7 +101,8 @@ typedef const char *(*NMDhcpClientGetPathFunc) (void); typedef GSList * (*NMDhcpClientGetLeaseConfigsFunc) (const char *iface, const char *uuid, - gboolean ipv6); + gboolean ipv6, + guint32 default_route_metric); void _nm_dhcp_client_register (GType gtype, const char *name, diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c index 31e48331ec..504e8d5d17 100644 --- a/src/dhcp-manager/nm-dhcp-dhclient.c +++ b/src/dhcp-manager/nm-dhcp-dhclient.c @@ -127,7 +127,8 @@ get_dhclient_leasefile (const char *iface, static GSList * nm_dhcp_dhclient_get_lease_ip_configs (const char *iface, const char *uuid, - gboolean ipv6) + gboolean ipv6, + guint32 default_route_metric) { char *contents = NULL; char *leasefile; diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c index 9d3ff9a9b2..f936f45c58 100644 --- a/src/dhcp-manager/nm-dhcp-manager.c +++ b/src/dhcp-manager/nm-dhcp-manager.c @@ -354,7 +354,8 @@ GSList * nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self, const char *iface, const char *uuid, - gboolean ipv6) + gboolean ipv6, + guint32 default_route_metric) { ClientDesc *desc; @@ -364,7 +365,7 @@ nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self, desc = find_client_desc (NULL, NM_DHCP_MANAGER_GET_PRIVATE (self)->client_type); if (desc && desc->get_lease_configs_func) - return desc->get_lease_configs_func (iface, uuid, ipv6); + return desc->get_lease_configs_func (iface, uuid, ipv6, default_route_metric); return NULL; } diff --git a/src/dhcp-manager/nm-dhcp-manager.h b/src/dhcp-manager/nm-dhcp-manager.h index cf5519fbf8..bf6cc7786a 100644 --- a/src/dhcp-manager/nm-dhcp-manager.h +++ b/src/dhcp-manager/nm-dhcp-manager.h @@ -80,7 +80,8 @@ NMDhcpClient * nm_dhcp_manager_start_ip6 (NMDhcpManager *manager, GSList * nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self, const char *iface, const char *uuid, - gboolean ipv6); + gboolean ipv6, + guint32 default_route_metric); /* For testing only */ extern const char* nm_dhcp_helper_path; diff --git a/src/dhcp-manager/nm-dhcp-systemd.c b/src/dhcp-manager/nm-dhcp-systemd.c index a20a089afa..c0c0c91471 100644 --- a/src/dhcp-manager/nm-dhcp-systemd.c +++ b/src/dhcp-manager/nm-dhcp-systemd.c @@ -372,7 +372,8 @@ get_leasefile_path (const char *iface, const char *uuid, gboolean ipv6) static GSList * nm_dhcp_systemd_get_lease_ip_configs (const char *iface, const char *uuid, - gboolean ipv6) + gboolean ipv6, + guint32 default_route_metric) { GSList *leases = NULL; gs_free char *path = NULL; @@ -386,7 +387,7 @@ nm_dhcp_systemd_get_lease_ip_configs (const char *iface, path = get_leasefile_path (iface, uuid, FALSE); r = sd_dhcp_lease_load (&lease, path); if (r == 0 && lease) { - ip4_config = lease_to_ip4_config (lease, NULL, 0, FALSE, NULL); + ip4_config = lease_to_ip4_config (lease, NULL, default_route_metric, FALSE, NULL); if (ip4_config) leases = g_slist_append (leases, ip4_config); } |