diff options
author | Jeremy Allison <jra@samba.org> | 2009-06-08 15:21:48 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-06-08 15:21:48 -0700 |
commit | 4b0658d4486d60c82c989ed0b6c806dfc45edbac (patch) | |
tree | 8fc190a7d3a4368750417640f734f5c24c3f770d | |
parent | 89bd09e7f3247b02223bd06a68be43b8954f5b97 (diff) | |
download | samba-4b0658d4486d60c82c989ed0b6c806dfc45edbac.tar.gz samba-4b0658d4486d60c82c989ed0b6c806dfc45edbac.tar.bz2 samba-4b0658d4486d60c82c989ed0b6c806dfc45edbac.zip |
Replace the "ipv4" specific strings in libcli/cldap/cldap.c with "ip". CLDAP can
run over IPv4/IPv6, even though some of the netlogon messages are IPv4 specific.
Fix the new ads_cldap_netlogon() to be IPv6/IPv4 agnostic. This compiles but
I don't have a good test env. for this (although as the previous code was
*completely* broken over IPv6 this will expose previously hidden bugs if it's broken :-).
Jeremy.
-rw-r--r-- | libcli/cldap/cldap.c | 4 | ||||
-rw-r--r-- | source3/libads/cldap.c | 21 |
2 files changed, 8 insertions, 17 deletions
diff --git a/libcli/cldap/cldap.c b/libcli/cldap/cldap.c index 8a0c2eec5e..191d0eeee4 100644 --- a/libcli/cldap/cldap.c +++ b/libcli/cldap/cldap.c @@ -320,7 +320,7 @@ NTSTATUS cldap_socket_init(TALLOC_CTX *mem_ctx, c->event.ctx = ev; if (!local_addr) { - ret = tsocket_address_inet_from_strings(c, "ipv4", + ret = tsocket_address_inet_from_strings(c, "ip", NULL, 0, &any); if (ret != 0) { @@ -550,7 +550,7 @@ struct tevent_req *cldap_search_send(TALLOC_CTX *mem_ctx, goto post; } ret = tsocket_address_inet_from_strings(state, - "ipv4", + "ip", io->in.dest_address, io->in.dest_port, &state->request.dest); diff --git a/source3/libads/cldap.c b/source3/libads/cldap.c index 4c3716a470..523020797b 100644 --- a/source3/libads/cldap.c +++ b/source3/libads/cldap.c @@ -38,29 +38,20 @@ bool ads_cldap_netlogon(TALLOC_CTX *mem_ctx, struct cldap_netlogon io; struct netlogon_samlogon_response *reply; NTSTATUS status; - struct in_addr addr; - char addrstr[INET_ADDRSTRLEN]; + struct sockaddr_storage ss; + char addrstr[INET6_ADDRSTRLEN]; const char *dest_str; int ret; struct tsocket_address *dest_addr; - /* TODO: support ipv6 */ - - addr = interpret_addr2(server); - if (is_zero_ip_v4(addr)) { - DEBUG(2,("Failed to resolve[%s] into an address for cldap\n", - server)); - return false; - } - dest_str = inet_ntop(AF_INET, &addr, - addrstr, sizeof(addrstr)); - if (!dest_str) { + if (!interpret_string_addr(&ss, server, 0)) { DEBUG(2,("Failed to resolve[%s] into an address for cldap\n", - server)); + server)); return false; } + dest_str = print_sockaddr(addrstr, sizeof(addrstr), &ss); - ret = tsocket_address_inet_from_strings(mem_ctx, "ipv4", + ret = tsocket_address_inet_from_strings(mem_ctx, "ip", dest_str, LDAP_PORT, &dest_addr); if (ret != 0) { |