summaryrefslogtreecommitdiffstats
path: root/src/resolv/async_resolv.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-05-27 11:44:16 +0200
committerStephen Gallagher <sgallagh@redhat.com>2011-06-02 15:23:33 -0400
commit807402e4e9ac43d0fe7a7533698102a74e23844b (patch)
tree4b434d4f4613412b4a5280697fe5f687974b04f4 /src/resolv/async_resolv.c
parent9e082d13d8b1b66092747db8454de3a0d50ce51f (diff)
downloadsssd-807402e4e9ac43d0fe7a7533698102a74e23844b.tar.gz
sssd-807402e4e9ac43d0fe7a7533698102a74e23844b.tar.xz
sssd-807402e4e9ac43d0fe7a7533698102a74e23844b.zip
Properly support IPv6 in LDAP URIs for IPA and LDAP providers
Add utility function to return IP address as string Add a utility function to escape IPv6 address for use in URIs Use escaped IP addresses in LDAP provider Escape IPv6 IP addresses in the IPA provider https://fedorahosted.org/sssd/ticket/880 Fix bad merge We merged in a patch, but missed that it missed a dependency added by another earlier patch.
Diffstat (limited to 'src/resolv/async_resolv.c')
-rw-r--r--src/resolv/async_resolv.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/resolv/async_resolv.c b/src/resolv/async_resolv.c
index ff53aa441..13232097f 100644
--- a/src/resolv/async_resolv.c
+++ b/src/resolv/async_resolv.c
@@ -648,6 +648,30 @@ resolv_gethostbyname_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
return EOK;
}
+char *
+resolv_get_string_address(TALLOC_CTX *mem_ctx, struct hostent *hostent)
+{
+ char *address;
+
+ if (!hostent) return NULL;
+
+ address = talloc_zero_size(mem_ctx, 128);
+ if (address == NULL) {
+ DEBUG(1, ("talloc_zero failed.\n"));
+ return NULL;
+ }
+
+ errno = 0;
+ if (inet_ntop(hostent->h_addrtype, hostent->h_addr_list[0],
+ address, 128) == NULL) {
+ DEBUG(1, ("inet_ntop failed [%d][%s].\n", errno, strerror(errno)));
+ talloc_free(address);
+ return NULL;
+ }
+
+ return address;
+}
+
static void
ares_gethostbyname_wakeup(struct tevent_req *subreq)
{