diff options
author | Thomas Haller <thaller@redhat.com> | 2022-02-07 18:50:54 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2022-02-09 19:13:03 +0100 |
commit | 7ad14b86f80f0dc106e1c5756fb90ce1c96a3758 (patch) | |
tree | 973770555969ff4e3f717b4992128645d79fb5ec | |
parent | d4ad9666bd4b94c1186bb2dc3f81e4efa5d0e94c (diff) | |
download | NetworkManager-7ad14b86f80f0dc106e1c5756fb90ce1c96a3758.tar.gz |
platform: add nm_platform_route_type_is_nodev() helper
-rw-r--r-- | src/core/platform/tests/test-platform-general.c | 26 | ||||
-rw-r--r-- | src/libnm-platform/nm-platform.h | 6 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/core/platform/tests/test-platform-general.c b/src/core/platform/tests/test-platform-general.c index 7597f4f13e..9629326aa3 100644 --- a/src/core/platform/tests/test-platform-general.c +++ b/src/core/platform/tests/test-platform-general.c @@ -748,6 +748,31 @@ test_platform_ip_address_pretty_sort_cmp(gconstpointer test_data) /*****************************************************************************/ +static void +test_route_type_is_nodev(void) +{ + int i; + + for (i = -1; i <= 257; i++) { + gboolean is_nodev; + + switch ((guint8) i) { + case RTN_BLACKHOLE: + case RTN_UNREACHABLE: + case RTN_PROHIBIT: + is_nodev = TRUE; + break; + default: + is_nodev = FALSE; + break; + } + + g_assert_cmpint(is_nodev, ==, nm_platform_route_type_is_nodev(i)); + } +} + +/*****************************************************************************/ + NMTST_DEFINE(); int @@ -767,6 +792,7 @@ main(int argc, char **argv) g_test_add_data_func("/general/platform_ip_address_pretty_sort_cmp/6/2", GINT_TO_POINTER(2), test_platform_ip_address_pretty_sort_cmp); + g_test_add_func("/general/test_route_type_is_nodev", test_route_type_is_nodev); return g_test_run(); } diff --git a/src/libnm-platform/nm-platform.h b/src/libnm-platform/nm-platform.h index e55610260d..0882f240e3 100644 --- a/src/libnm-platform/nm-platform.h +++ b/src/libnm-platform/nm-platform.h @@ -1408,6 +1408,12 @@ _nm_platform_link_get_inet6_addr_gen_mode(const NMPlatformLink *pllink) return _nm_platform_uint8_inv(pllink->inet6_addr_gen_mode_inv); } +static inline gboolean +nm_platform_route_type_is_nodev(guint8 type) +{ + return NM_IN_SET(type, 6 /* RTN_BLACKHOLE */, 7 /* RTN_UNREACHABLE */, 8 /* RTN_PROHIBIT */); +} + /** * nm_platform_route_type_coerce: * @table: the route type, in its original value. |