1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-13 08:23:49 +03:00

r17317: - add a composite_create() function that allocates and initialize

the composite_context structue, we should try to convert all code
  to use this because there're a lot of places where the we have
  bugs with this task...
- add a composite_continue_smb2() helper

We should try to hide the internals of the composite code from the users
to avoid errors (and I found a lot of them... and will fix then step by step)

metze
This commit is contained in:
Stefan Metzmacher
2006-07-30 16:48:41 +00:00
committed by Gerald (Jerry) Carter
parent cee012c570
commit a16180f202
2 changed files with 29 additions and 0 deletions

View File

@@ -24,11 +24,29 @@
#include "includes.h"
#include "lib/events/events.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/smb2/smb2.h"
#include "libcli/composite/composite.h"
#include "lib/messaging/irpc.h"
#include "librpc/rpc/dcerpc.h"
#include "libcli/nbt/libnbt.h"
/*
create a new composite_context structure
and initialize it
*/
_PUBLIC_ struct composite_context *composite_create(TALLOC_CTX *mem_ctx,
struct event_context *ev)
{
struct composite_context *c;
c = talloc_zero(mem_ctx, struct composite_context);
if (!c) return NULL;
c->state = COMPOSITE_STATE_IN_PROGRESS;
c->event_ctx = ev;
return c;
}
/*
block until a composite function has completed, then return the status
*/
@@ -156,6 +174,16 @@ _PUBLIC_ void composite_continue_smb(struct composite_context *ctx,
new_req->async.private = private_data;
}
_PUBLIC_ void composite_continue_smb2(struct composite_context *ctx,
struct smb2_request *new_req,
void (*continuation)(struct smb2_request *),
void *private_data)
{
if (composite_nomem(new_req, ctx)) return;
new_req->async.fn = continuation;
new_req->async.private = private_data;
}
_PUBLIC_ void composite_continue_nbt(struct composite_context *ctx,
struct nbt_name_request *new_req,
void (*continuation)(struct nbt_name_request *),