summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-02-07 18:50:54 +0100
committerThomas Haller <thaller@redhat.com>2022-02-09 19:13:03 +0100
commit7ad14b86f80f0dc106e1c5756fb90ce1c96a3758 (patch)
tree973770555969ff4e3f717b4992128645d79fb5ec
parentd4ad9666bd4b94c1186bb2dc3f81e4efa5d0e94c (diff)
downloadNetworkManager-7ad14b86f80f0dc106e1c5756fb90ce1c96a3758.tar.gz
platform: add nm_platform_route_type_is_nodev() helper
-rw-r--r--src/core/platform/tests/test-platform-general.c26
-rw-r--r--src/libnm-platform/nm-platform.h6
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.