summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Stephenson <jstephen@redhat.com>2016-08-10 11:42:28 -0400
committerJakub Hrozek <jhrozek@redhat.com>2016-08-16 20:21:21 +0200
commit00f3fbb66e882213a78a7ad0a4f9190d0838c830 (patch)
treeacec75ebd67e482f8d2703aa4bc74e280cb00b51
parentf31610a9ba26b46de9eeab2b0719ff6ad8961104 (diff)
downloadsssd-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.c4
-rw-r--r--src/resolv/async_resolv.h2
-rw-r--r--src/tests/cmocka/test_resolv_fake.c25
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. */