summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-12-21 12:26:49 +0100
committerThomas Haller <thaller@redhat.com>2019-02-19 16:18:57 +0100
commit47123e493adf4c856ab69f328ed597b8177834d7 (patch)
tree473466864c30ac0847519841a300f5d6c0a93c67
parentc3f6356a39caf6bc7b159be81ebaa05b929b62f4 (diff)
downloadNetworkManager-47123e493adf4c856ab69f328ed597b8177834d7.tar.gz
shared: add nm_ip4_addr_is_localhost() util
-rw-r--r--shared/nm-utils/nm-shared-utils.h6
-rw-r--r--shared/nm-utils/tests/test-shared-general.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h
index 4758c4a083..4d9f20d073 100644
--- a/shared/nm-utils/nm-shared-utils.h
+++ b/shared/nm-utils/nm-shared-utils.h
@@ -140,6 +140,12 @@ nm_ip_addr_set (int addr_family, gpointer dst, gconstpointer src)
: sizeof (struct in6_addr));
}
+static inline gboolean
+nm_ip4_addr_is_localhost (in_addr_t addr4)
+{
+ return (addr4 & htonl (0xFF000000u)) == htonl (0x7F000000u);
+}
+
/*****************************************************************************/
#define NM_CMP_RETURN(c) \
diff --git a/shared/nm-utils/tests/test-shared-general.c b/shared/nm-utils/tests/test-shared-general.c
index 7d22e56d99..b262757879 100644
--- a/shared/nm-utils/tests/test-shared-general.c
+++ b/shared/nm-utils/tests/test-shared-general.c
@@ -204,6 +204,19 @@ test_nm_strndup_a (void)
/*****************************************************************************/
+static void
+test_nm_ip4_addr_is_localhost (void)
+{
+ g_assert ( nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("127.0.0.0")));
+ g_assert ( nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("127.0.0.1")));
+ g_assert ( nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("127.5.0.1")));
+ g_assert (!nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("126.5.0.1")));
+ g_assert (!nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("128.5.0.1")));
+ g_assert (!nm_ip4_addr_is_localhost (nmtst_inet4_from_string ("129.5.0.1")));
+}
+
+/*****************************************************************************/
+
NMTST_DEFINE ();
int main (int argc, char **argv)
@@ -215,6 +228,7 @@ int main (int argc, char **argv)
g_test_add_func ("/general/test_nm_make_strv", test_make_strv);
g_test_add_func ("/general/test_nm_strdup_int", test_nm_strdup_int);
g_test_add_func ("/general/test_nm_strndup_a", test_nm_strndup_a);
+ g_test_add_func ("/general/test_nm_ip4_addr_is_localhost", test_nm_ip4_addr_is_localhost);
return g_test_run ();
}