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