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

Reply via email to