summaryrefslogtreecommitdiff
path: root/source4/libcli/composite
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-02-12 12:16:38 +0100
committerKai Blin <kai@samba.org>2008-02-12 12:49:43 +0100
commite08a78abcd7cf55322cc720f47fa3a2bfe491c31 (patch)
tree1ef99ebef026a396d8b0fa59aa7662903c7a0ea2 /source4/libcli/composite
parent69d6dd1923a511a883e9f562b8ffa2762a671fe0 (diff)
downloadsamba-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.c31
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) {