svn commit: samba r17319 - in branches/SAMBA_4_0/source/libcli: .

metze at samba.org metze at samba.org
Sun Jul 30 17:31:13 GMT 2006


Author: metze
Date: 2006-07-30 17:31:12 +0000 (Sun, 30 Jul 2006)
New Revision: 17319

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17319

Log:
make better usage of the composite api

metze
Modified:
   branches/SAMBA_4_0/source/libcli/finddcs.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/finddcs.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/finddcs.c	2006-07-30 17:29:02 UTC (rev 17318)
+++ branches/SAMBA_4_0/source/libcli/finddcs.c	2006-07-30 17:31:12 UTC (rev 17319)
@@ -66,44 +66,36 @@
 				       struct event_context *event_ctx,
 				       struct messaging_context *msg_ctx)
 {
-	struct composite_context *result, *ctx;
+	struct composite_context *c, *creq;
 	struct finddcs_state *state;
 	struct nbt_name name;
 
-	result = talloc_zero(mem_ctx, struct composite_context);
-	if (result == NULL) goto failed;
-	result->state = COMPOSITE_STATE_IN_PROGRESS;
-	result->async.fn = NULL;
-	result->event_ctx = event_ctx;
+	c = composite_create(mem_ctx, event_ctx);
+	if (c == NULL) return NULL;
 
-	state = talloc(result, struct finddcs_state);
-	if (state == NULL) goto failed;
-	state->ctx = result;
-	result->private_data = state;
+	state = talloc(c, struct finddcs_state);
+	if (composite_nomem(state, c)) return c;
+	c->private_data = state;
 
+	state->ctx = c;
+
 	state->domain_name = talloc_strdup(state, domain_name);
-	if (state->domain_name == NULL) goto failed;
-	state->domain_sid = domain_sid;
-	if (domain_sid != NULL) {
-		if (talloc_reference(state, domain_sid) == NULL) {
-			goto failed;
-		}
+	if (composite_nomem(state->domain_name, c)) return c;
+
+	if (domain_sid) {
+		state->domain_sid = talloc_reference(state, domain_sid);
+		if (composite_nomem(state->domain_sid, c)) return c;
+	} else {
+		state->domain_sid = NULL;
 	}
+
 	state->msg_ctx = msg_ctx;
 
 	make_nbt_name(&name, state->domain_name, name_type);
-	ctx = resolve_name_send(&name, result->event_ctx,
-				methods);
-
-	if (ctx == NULL) goto failed;
-	ctx->async.fn = finddcs_name_resolved;
-	ctx->async.private_data = state;
-
-	return result;
-
-failed:
-	talloc_free(result);
-	return NULL;
+	creq = resolve_name_send(&name, event_ctx,
+				 methods);
+	composite_continue(c, creq, finddcs_name_resolved, state);
+	return c;
 }
 
 /* Having got an name query answer, fire off a GetDC request, so we



More information about the samba-cvs mailing list