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:
committed by
Gerald (Jerry) Carter
parent
cee012c570
commit
a16180f202
@@ -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 *),
|
||||
|
||||
Reference in New Issue
Block a user