diff options
author | Justin Stephenson <jstephen@redhat.com> | 2016-08-10 11:42:28 -0400 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-08-16 20:21:21 +0200 |
commit | 00f3fbb66e882213a78a7ad0a4f9190d0838c830 (patch) | |
tree | acec75ebd67e482f8d2703aa4bc74e280cb00b51 | |
parent | f31610a9ba26b46de9eeab2b0719ff6ad8961104 (diff) | |
download | sssd-00f3fbb66e882213a78a7ad0a4f9190d0838c830.tar.gz sssd-00f3fbb66e882213a78a7ad0a4f9190d0838c830.tar.xz sssd-00f3fbb66e882213a78a7ad0a4f9190d0838c830.zip |
Make resolv_is_address() function public and create some basic tests
Resolves:
https://fedorahosted.org/sssd/ticket/2789
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
-rw-r--r-- | src/resolv/async_resolv.c | 4 | ||||
-rw-r--r-- | src/resolv/async_resolv.h | 2 | ||||
-rw-r--r-- | 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 <resolv.h> +#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. */ |