From 00f3fbb66e882213a78a7ad0a4f9190d0838c830 Mon Sep 17 00:00:00 2001 From: Justin Stephenson Date: Wed, 10 Aug 2016 11:42:28 -0400 Subject: Make resolv_is_address() function public and create some basic tests Resolves: https://fedorahosted.org/sssd/ticket/2789 Reviewed-by: Jakub Hrozek --- src/resolv/async_resolv.c | 4 +--- src/resolv/async_resolv.h | 2 ++ src/tests/cmocka/test_resolv_fake.c | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/resolv/async_resolv.c b/src/resolv/async_resolv.c index 58d5c6e55..e85955677 100644 --- a/src/resolv/async_resolv.c +++ b/src/resolv/async_resolv.c @@ -1062,8 +1062,6 @@ resolv_gethostbyname_address(TALLOC_CTX *mem_ctx, const char *address, struct resolv_hostent **_rhostent); static inline int resolv_gethostbyname_family_init(enum restrict_family family_order); -static bool -resolv_is_address(const char *name); static errno_t resolv_gethostbyname_step(struct tevent_req *req); @@ -1133,7 +1131,7 @@ fail: return NULL; } -static bool +bool resolv_is_address(const char *name) { struct addrinfo hints; diff --git a/src/resolv/async_resolv.h b/src/resolv/async_resolv.h index 876abff14..b602a425c 100644 --- a/src/resolv/async_resolv.h +++ b/src/resolv/async_resolv.h @@ -189,4 +189,6 @@ errno_t resolv_discover_srv_recv(TALLOC_CTX *mem_ctx, uint32_t *_ttl, char **_dns_domain); +bool +resolv_is_address(const char *name); #endif /* __ASYNC_RESOLV_H__ */ diff --git a/src/tests/cmocka/test_resolv_fake.c b/src/tests/cmocka/test_resolv_fake.c index a1e9ee4cb..bd0d77fd6 100644 --- a/src/tests/cmocka/test_resolv_fake.c +++ b/src/tests/cmocka/test_resolv_fake.c @@ -32,6 +32,7 @@ #include +#include "resolv/async_resolv.h" #include "tests/cmocka/common_mock.h" #include "tests/cmocka/common_mock_resp.h" @@ -333,6 +334,29 @@ void test_resolv_fake_srv(void **state) assert_int_equal(ret, ERR_OK); } +void test_resolv_is_address(void **state) +{ + bool ret; + + ret = resolv_is_address("10.192.211.37"); + assert_true(ret); + + ret = resolv_is_address("127.0.0.1"); + assert_true(ret); + + ret = resolv_is_address("2001:0db8:85a3:0000:0000:8a2e:0370:7334"); + assert_true(ret); + + ret = resolv_is_address("sssd.ldap.com"); + assert_false(ret); + + ret = resolv_is_address("testhostname"); + assert_false(ret); + + ret = resolv_is_address("localhost"); + assert_false(ret); +} + int main(int argc, const char *argv[]) { int rv; @@ -348,6 +372,7 @@ int main(int argc, const char *argv[]) cmocka_unit_test_setup_teardown(test_resolv_fake_srv, test_resolv_fake_setup, test_resolv_fake_teardown), + cmocka_unit_test(test_resolv_is_address), }; /* Set debug level to invalid value so we can deside if -d 0 was used. */ -- cgit