diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-02-12 12:16:38 +0100 |
---|---|---|
committer | Kai Blin <kai@samba.org> | 2008-02-12 12:49:43 +0100 |
commit | e08a78abcd7cf55322cc720f47fa3a2bfe491c31 (patch) | |
tree | 1ef99ebef026a396d8b0fa59aa7662903c7a0ea2 /source4/libcli/composite | |
parent | 69d6dd1923a511a883e9f562b8ffa2762a671fe0 (diff) | |
download | samba-e08a78abcd7cf55322cc720f47fa3a2bfe491c31.tar.gz samba-e08a78abcd7cf55322cc720f47fa3a2bfe491c31.tar.bz2 samba-e08a78abcd7cf55322cc720f47fa3a2bfe491c31.zip |
[PATCH] composite: make it possible to call composite_is_ok() without callback fn
metze
(This used to be commit 4e459f1fb3ab60c586df9a08cdc57db424a30b18)
Diffstat (limited to 'source4/libcli/composite')
-rw-r--r-- | source4/libcli/composite/composite.c | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/source4/libcli/composite/composite.c b/source4/libcli/composite/composite.c index 67d5885497..aab7487a42 100644 --- a/source4/libcli/composite/composite.c +++ b/source4/libcli/composite/composite.c @@ -64,23 +64,6 @@ _PUBLIC_ NTSTATUS composite_wait(struct composite_context *c) return c->status; } - -/* - * Some composite helpers that are handy if you write larger composite - * functions. - */ -_PUBLIC_ bool composite_is_ok(struct composite_context *ctx) -{ - if (NT_STATUS_IS_OK(ctx->status)) { - return true; - } - ctx->state = COMPOSITE_STATE_ERROR; - if (ctx->async.fn != NULL) { - ctx->async.fn(ctx); - } - return false; -} - /* callback from composite_done() and composite_error() @@ -110,7 +93,10 @@ _PUBLIC_ void composite_error(struct composite_context *ctx, NTSTATUS status) event_add_timed(ctx->event_ctx, ctx, timeval_zero(), composite_trigger, ctx); } ctx->status = status; - SMB_ASSERT(!composite_is_ok(ctx)); + ctx->state = COMPOSITE_STATE_ERROR; + if (ctx->async.fn != NULL) { + ctx->async.fn(ctx); + } } _PUBLIC_ bool composite_nomem(const void *p, struct composite_context *ctx) @@ -122,6 +108,15 @@ _PUBLIC_ bool composite_nomem(const void *p, struct composite_context *ctx) return true; } +_PUBLIC_ bool composite_is_ok(struct composite_context *ctx) +{ + if (NT_STATUS_IS_OK(ctx->status)) { + return true; + } + composite_error(ctx, ctx->status); + return false; +} + _PUBLIC_ void composite_done(struct composite_context *ctx) { if (!ctx->used_wait && !ctx->async.fn) { |