From 09c7c911d702fbe906c5c97435551416d27a2bf9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 21 Jul 2020 13:51:17 +0200 Subject: [PATCH 1/2] core: only expose "type unicast" routes on D-Bus Currently, we would not mark non-unicast routes with their type, so they would wrongly appear as unicast routes in the D-Bus API. That is wrong. For now, just hide them. Fixes: 5d0d13f57010 ('platform: add support for local routes') (cherry picked from commit 5035687a7be4c67e32b4e08319f2e66c76b42212) (cherry picked from commit cf3cff4f12e78615c18fd829b1f32eac4f607c0b) --- src/nm-ip4-config.c | 3 +++ src/nm-ip6-config.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index f017a3e809f4..9ad811642317 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -3227,6 +3227,9 @@ out_addresses_cached: nm_assert (_route_valid (route)); + if (route->type_coerced != nm_platform_route_type_coerce (RTN_UNICAST)) + continue; + g_variant_builder_init (&route_builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_add (&route_builder, "{sv}", "dest", diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 1589cad004af..deb30e77d757 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -2682,6 +2682,9 @@ out_addresses_cached: nm_assert (_route_valid (route)); + if (route->type_coerced != nm_platform_route_type_coerce (RTN_UNICAST)) + continue; + g_variant_builder_init (&route_builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_add (&route_builder, "{sv}", "dest", -- 2.26.2 From 52fe9dec97eb7d57594141732694453ce2db08d5 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 21 Jul 2020 18:06:21 +0200 Subject: [PATCH 2/2] core: fix selecting of best-default-route to consider only unicast routes Fixes: 5d0d13f57010 ('platform: add support for local routes') (cherry picked from commit 2a1bac6b8a7d107f33bbdb9d91eaf924fa67b64a) (cherry picked from commit 99b362c9443591b2b643aa09980f1a5dd42b1f6b) --- src/nm-ip4-config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index dc8222fd5a7b..ea0617497607 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -83,7 +83,8 @@ nm_ip_config_best_default_route_is (const NMPObject *obj) * Note that this only considers the main routing table. */ return r && NM_PLATFORM_IP_ROUTE_IS_DEFAULT (r) - && nm_platform_route_table_is_main (r->table_coerced); + && nm_platform_route_table_is_main (r->table_coerced) + && r->type_coerced == nm_platform_route_type_coerce (1 /*RTN_UNICAST*/); } const NMPObject *_nm_ip_config_best_default_route_find_better (const NMPObject *obj_cur, const NMPObject *obj_cmp); -- 2.26.2