summaryrefslogtreecommitdiff
path: root/source4/libcli/ldap
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-10-28 11:02:42 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:45:27 -0500
commit134b2488c82ae13392121f71e4960178a38f3e01 (patch)
treef002f6d68b66654d18f53a46df5459fbfd241b1e /source4/libcli/ldap
parent3dc75cc84f92af9a72d52e7c9299b47c01368544 (diff)
downloadsamba-134b2488c82ae13392121f71e4960178a38f3e01.tar.gz
samba-134b2488c82ae13392121f71e4960178a38f3e01.tar.bz2
samba-134b2488c82ae13392121f71e4960178a38f3e01.zip
r11369: Implement socket_connect_multi: Connect to multiple ipv4 tcp ports in
sequence, with a 2-millisecond timeout between firing the syn packets. Build smbcli_sock_connect_send upon that. Volker (This used to be commit 5718df44d90d113304c5deed1e2e7f82ff9e928f)
Diffstat (limited to 'source4/libcli/ldap')
-rw-r--r--source4/libcli/ldap/ldap_client.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/source4/libcli/ldap/ldap_client.c b/source4/libcli/ldap/ldap_client.c
index d7cfd7c7e5..3b801ca225 100644
--- a/source4/libcli/ldap/ldap_client.c
+++ b/source4/libcli/ldap/ldap_client.c
@@ -428,17 +428,8 @@ struct composite_context *ldap_connect_send(struct ldap_connection *conn,
return result;
}
- state->ctx->status = socket_create("ipv4", SOCKET_TYPE_STREAM,
- &conn->sock, 0);
- if (!NT_STATUS_IS_OK(state->ctx->status)) {
- composite_trigger_error(state->ctx);
- return result;
- }
-
- talloc_steal(conn, conn->sock);
-
- ctx = socket_connect_send(conn->sock, NULL, 0, conn->host,
- conn->port, 0, conn->event.event_ctx);
+ ctx = socket_connect_multi_send(state, conn->host, 1, &conn->port,
+ conn->event.event_ctx);
if (ctx == NULL) goto failed;
ctx->async.fn = ldap_connect_recv_conn;
@@ -456,8 +447,10 @@ static void ldap_connect_recv_conn(struct composite_context *ctx)
talloc_get_type(ctx->async.private_data,
struct ldap_connect_state);
struct ldap_connection *conn = state->conn;
+ uint16_t port;
- state->ctx->status = socket_connect_recv(ctx);
+ state->ctx->status = socket_connect_multi_recv(ctx, state, &conn->sock,
+ &port);
if (!composite_is_ok(state->ctx)) return;
/* setup a handler for events on this socket */