diff options
Diffstat (limited to 'src/nm-ip6-config.c')
-rw-r--r-- | src/nm-ip6-config.c | 11 |
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); |