diff options
Diffstat (limited to 'source4/libnet')
-rw-r--r-- | source4/libnet/libnet.c | 23 | ||||
-rw-r--r-- | source4/libnet/libnet.h | 4 | ||||
-rw-r--r-- | source4/libnet/libnet_rpc.c | 2 | ||||
-rw-r--r-- | source4/libnet/libnet_vampire.c | 2 |
4 files changed, 15 insertions, 16 deletions
diff --git a/source4/libnet/libnet.c b/source4/libnet/libnet.c index 56b55426c0..5d66005a27 100644 --- a/source4/libnet/libnet.c +++ b/source4/libnet/libnet.c @@ -20,27 +20,26 @@ #include "includes.h" #include "libnet/libnet.h" +#include "lib/events/events.h" -struct libnet_context *libnet_context_init(void) +struct libnet_context *libnet_context_init(struct event_context *ev) { - TALLOC_CTX *mem_ctx; struct libnet_context *ctx; - mem_ctx = talloc_init("libnet_context"); - - ctx = talloc(mem_ctx, struct libnet_context); + ctx = talloc(NULL, struct libnet_context); if (!ctx) { return NULL; } - ctx->mem_ctx = mem_ctx; + if (ev == NULL) { + ev = event_context_init(ctx); + if (ev == NULL) { + talloc_free(ctx); + return NULL; + } + } + ctx->event_ctx = ev; return ctx; } -void libnet_context_destroy(struct libnet_context **libnetctx) -{ - talloc_free((*libnetctx)->mem_ctx); - - (*libnetctx) = NULL; -} diff --git a/source4/libnet/libnet.h b/source4/libnet/libnet.h index b26ce72ba6..092d09599f 100644 --- a/source4/libnet/libnet.h +++ b/source4/libnet/libnet.h @@ -19,8 +19,6 @@ */ struct libnet_context { - TALLOC_CTX *mem_ctx; - /* here we need: * a client env context * a user env context @@ -33,6 +31,8 @@ struct libnet_context { /* opened handles */ struct policy_handle domain_handle; struct policy_handle user_handle; + + struct event_context *event_ctx; }; diff --git a/source4/libnet/libnet_rpc.c b/source4/libnet/libnet_rpc.c index 30f7784361..9ed398b3af 100644 --- a/source4/libnet/libnet_rpc.c +++ b/source4/libnet/libnet_rpc.c @@ -100,7 +100,7 @@ static NTSTATUS libnet_rpc_connect_standard(struct libnet_context *ctx, TALLOC_C binding, r->standard.in.dcerpc_iface_uuid, r->standard.in.dcerpc_iface_version, - ctx->cred); + ctx->cred, ctx->event_ctx); if (!NT_STATUS_IS_OK(status)) { r->standard.out.error_string = talloc_asprintf(mem_ctx, diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c index 69bacb7951..79f07c05f3 100644 --- a/source4/libnet/libnet_vampire.c +++ b/source4/libnet/libnet_vampire.c @@ -221,7 +221,7 @@ static NTSTATUS libnet_SamSync_netlogon(struct libnet_context *ctx, TALLOC_CTX * nt_status = dcerpc_pipe_connect_b(mem_ctx, &p, b, DCERPC_NETLOGON_UUID, DCERPC_NETLOGON_VERSION, - machine_account); + machine_account, ctx->event_ctx); if (!NT_STATUS_IS_OK(nt_status)) { return nt_status; |