summaryrefslogtreecommitdiff
path: root/src/nm-ip6-config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-ip6-config.c')
-rw-r--r--src/nm-ip6-config.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c
index 19552e0339..13db237cc6 100644
--- a/src/nm-ip6-config.c
+++ b/src/nm-ip6-config.c
@@ -287,7 +287,7 @@ nm_ip6_config_capture (int ifindex, gboolean capture_resolv_conf, NMSettingIP6Co
NMIP6Config *config;
NMIP6ConfigPrivate *priv;
guint i;
- guint lowest_metric = G_MAXUINT;
+ guint32 lowest_metric = G_MAXUINT32;
struct in6_addr old_gateway = IN6ADDR_ANY_INIT;
gboolean has_gateway = FALSE;
gboolean notify_nameservers = FALSE;
@@ -463,9 +463,10 @@ nm_ip6_config_merge_setting (NMIP6Config *config, NMSettingIPConfig *setting, in
nm_ip_route_get_dest_binary (s_route, &route.network);
route.plen = nm_ip_route_get_prefix (s_route);
nm_ip_route_get_next_hop_binary (s_route, &route.gateway);
- route.metric = nm_ip_route_get_metric (s_route);
- if (!route.metric)
+ if (nm_ip_route_get_metric (s_route) == -1)
route.metric = default_route_metric;
+ else
+ route.metric = nm_ip_route_get_metric (s_route);
route.source = NM_IP_CONFIG_SOURCE_USER;
nm_ip6_config_add_route (config, &route);
@@ -1695,8 +1696,8 @@ get_property (GObject *object, guint prop_id,
g_value_array_append (array, &val);
g_value_unset (&val);
- g_value_init (&val, G_TYPE_UINT);
- g_value_set_uint (&val, route->metric);
+ g_value_init (&val, G_TYPE_INT64);
+ g_value_set_int64 (&val, route->metric);
g_value_array_append (array, &val);
g_value_unset (&val);