diff options
| author | Volker Lendecke <vl@samba.org> | 2009-06-27 18:14:25 +0200 | 
|---|---|---|
| committer | Volker Lendecke <vl@samba.org> | 2009-06-27 23:17:49 +0200 | 
| commit | f5321ffea8fd9e3b4cbf236883664832a0425075 (patch) | |
| tree | 0fc20b8bf99734cc5c615c1ceb09b0c231106ca6 /source3/lib | |
| parent | 55dae4469c1c2ba571bfaeb93de7494480e0d72b (diff) | |
| download | samba-f5321ffea8fd9e3b4cbf236883664832a0425075.tar.gz samba-f5321ffea8fd9e3b4cbf236883664832a0425075.tar.bz2 samba-f5321ffea8fd9e3b4cbf236883664832a0425075.zip  | |
Convert tldap to tstream
Diffstat (limited to 'source3/lib')
| -rw-r--r-- | source3/lib/tldap.c | 28 | 
1 files changed, 17 insertions, 11 deletions
diff --git a/source3/lib/tldap.c b/source3/lib/tldap.c index 0f9e67869c..8f6e3a246e 100644 --- a/source3/lib/tldap.c +++ b/source3/lib/tldap.c @@ -54,7 +54,7 @@ struct tldap_context {  	int ld_deref;  	int ld_sizelimit;  	int ld_timelimit; -	int fd; +	struct tstream_context *conn;  	int msgid;  	struct tevent_queue *outgoing;  	struct tevent_req **pending; @@ -132,12 +132,17 @@ static int tldap_next_msgid(struct tldap_context *ld)  struct tldap_context *tldap_context_create(TALLOC_CTX *mem_ctx, int fd)  {  	struct tldap_context *ctx; +	int ret;  	ctx = talloc_zero(mem_ctx, struct tldap_context);  	if (ctx == NULL) {  		return NULL;  	} -	ctx->fd = fd; +	ret = tstream_bsd_existing_socket(ctx, fd, &ctx->conn); +	if (ret == -1) { +		TALLOC_FREE(ctx); +		return NULL; +	}  	ctx->msgid = 1;  	ctx->ld_version = 3;  	ctx->outgoing = tevent_queue_create(ctx, "tldap_outgoing"); @@ -274,7 +279,7 @@ static void read_ldap_done(struct tevent_req *subreq);  static struct tevent_req *read_ldap_send(TALLOC_CTX *mem_ctx,  					 struct tevent_context *ev, -					 int fd) +					 struct tstream_context *conn)  {  	struct tevent_req *req, *subreq;  	struct read_ldap_state *state; @@ -285,7 +290,8 @@ static struct tevent_req *read_ldap_send(TALLOC_CTX *mem_ctx,  	}  	state->done = false; -	subreq = read_packet_send(state, ev, fd, 2, read_ldap_more, state); +	subreq = tstream_read_packet_send(state, ev, conn, 2, read_ldap_more, +					  state);  	if (tevent_req_nomem(subreq, req)) {  		return tevent_req_post(req, ev);  	} @@ -302,7 +308,7 @@ static void read_ldap_done(struct tevent_req *subreq)  	ssize_t nread;  	int err; -	nread = read_packet_recv(subreq, state, &state->buf, &err); +	nread = tstream_read_packet_recv(subreq, state, &state->buf, &err);  	TALLOC_FREE(subreq);  	if (nread == -1) {  		tevent_req_error(req, err); @@ -400,8 +406,8 @@ static struct tevent_req *tldap_msg_send(TALLOC_CTX *mem_ctx,  	state->iov.iov_base = blob.data;  	state->iov.iov_len = blob.length; -	subreq = writev_send(state, ev, ld->outgoing, ld->fd, false, -			     &state->iov, 1); +	subreq = tstream_writev_queue_send(state, ev, ld->conn, ld->outgoing, +					   &state->iov, 1);  	if (tevent_req_nomem(subreq, req)) {  		return tevent_req_post(req, ev);  	} @@ -487,7 +493,7 @@ static bool tldap_msg_set_pending(struct tevent_req *req)  	 * We're the first ones, add the read_ldap request that waits for the  	 * answer from the server  	 */ -	subreq = read_ldap_send(ld->pending, state->ev, ld->fd); +	subreq = read_ldap_send(ld->pending, state->ev, ld->conn);  	if (subreq == NULL) {  		tldap_msg_unset_pending(req);  		return false; @@ -503,7 +509,7 @@ static void tldap_msg_sent(struct tevent_req *subreq)  	ssize_t nwritten;  	int err; -	nwritten = writev_recv(subreq, &err); +	nwritten = tstream_writev_queue_recv(subreq, &err);  	TALLOC_FREE(subreq);  	if (nwritten == -1) {  		tevent_req_error(req, TLDAP_SERVER_DOWN); @@ -610,8 +616,8 @@ static void tldap_msg_received(struct tevent_req *subreq)  		return;  	} -	state = tevent_req_data(ld->pending[0], struct tldap_msg_state); -	subreq = read_ldap_send(ld->pending, state->ev, ld->fd); +	state = tevent_req_data(ld->pending[0],	struct tldap_msg_state); +	subreq = read_ldap_send(ld->pending, state->ev, ld->conn);  	if (subreq == NULL) {  		status = TLDAP_NO_MEMORY;  		goto fail;  | 
