The branch, master has been updated via 8874878 s4-libnet: Add mem_ctx to libnet_rpc_groupdel calls (bug #8889) via 566f066 s4-libnet: Add mem_ctx to libnet_rpc_groupadd calls (bug #8889) via b72597c s4-libnet: Add mem_ctx to libnet_rpc_usermod calls (bug #8889) via 08f8eb4 s4-libnet: Add mem_ctx to libnet_rpc_userdel calls (bug #8889) via fd2b21f s4-libnet: Add mem_ctx to libnet_rpc_useradd calls (bug #8889) via 081e790 s4-libnet: Add mem_ctx to libnet_rpc_groupinfo calls (bug #8889) via a6fa69c s4-libnet: Add mem_ctx to libnet_DomainClose calls (bug #8889) via 7468282 s4-libnet: Add mem_ctx to libnet_DomainOpen calls (bug #8889) via 2d8b6ce s4-libnet: Add mem_ctx to libnet_Lookup calls (bug #8889) from be8180e net: Let get*sid return error from passdb init
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 887487851f57bb5640992f25d9dbb5ecaf478603 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:29:56 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_groupdel calls (bug #8889) Autobuild-User: Andrew Bartlett <abart...@samba.org> Autobuild-Date: Mon Apr 30 14:41:36 CEST 2012 on sn-devel-104 commit 566f066a8dae5e2ac5ee633f781387cad6c686b7 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:27:33 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_groupadd calls (bug #8889) commit b72597c6e3174218e4b7e8546668542ac26d8f37 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:25:55 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_usermod calls (bug #8889) commit 08f8eb44076c30b2559184f788aff22e4acb24fb Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:23:07 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_userdel calls (bug #8889) commit fd2b21fc38bfb562de0a14b1b38a31b7bc62288a Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:14:42 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_useradd calls (bug #8889) commit 081e7909fc536cdee1c88016efa5d3a22e976926 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:09:58 2012 +1000 s4-libnet: Add mem_ctx to libnet_rpc_groupinfo calls (bug #8889) commit a6fa69c1b26cb80b3968cb5db4116412b285a333 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 20:02:42 2012 +1000 s4-libnet: Add mem_ctx to libnet_DomainClose calls (bug #8889) commit 74682826d946ae07881a5caade96f812292345d0 Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 19:57:45 2012 +1000 s4-libnet: Add mem_ctx to libnet_DomainOpen calls (bug #8889) commit 2d8b6ce1c112731de7e2ed89ee19864f2631883d Author: Andrew Bartlett <abart...@samba.org> Date: Mon Apr 30 19:35:25 2012 +1000 s4-libnet: Add mem_ctx to libnet_Lookup calls (bug #8889) ----------------------------------------------------------------------- Summary of changes: source4/libnet/groupinfo.c | 5 +++-- source4/libnet/groupman.c | 10 ++++++---- source4/libnet/libnet_domain.c | 26 ++++++++++++++++---------- source4/libnet/libnet_group.c | 18 +++++++++--------- source4/libnet/libnet_lookup.c | 12 +++++++----- source4/libnet/libnet_user.c | 22 +++++++++++----------- source4/libnet/prereq_domain.c | 10 ++++++---- source4/libnet/userman.c | 15 +++++++++------ source4/torture/libnet/userman.c | 2 +- 9 files changed, 68 insertions(+), 52 deletions(-) Changeset truncated at 500 lines: diff --git a/source4/libnet/groupinfo.c b/source4/libnet/groupinfo.c index 0bc0d9f..9060973 100644 --- a/source4/libnet/groupinfo.c +++ b/source4/libnet/groupinfo.c @@ -262,6 +262,7 @@ static void continue_groupinfo_closegroup(struct tevent_req *subreq) * @param io arguments and results of the call */ struct composite_context *libnet_rpc_groupinfo_send(struct dcerpc_pipe *p, + TALLOC_CTX *mem_ctx, struct libnet_rpc_groupinfo *io, void (*monitor)(struct monitor_msg*)) { @@ -272,7 +273,7 @@ struct composite_context *libnet_rpc_groupinfo_send(struct dcerpc_pipe *p, if (!p || !io) return NULL; - c = composite_create(p, dcerpc_event_context(p)); + c = composite_create(mem_ctx, dcerpc_event_context(p)); if (c == NULL) return c; s = talloc_zero(c, struct groupinfo_state); @@ -372,6 +373,6 @@ NTSTATUS libnet_rpc_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct libnet_rpc_groupinfo *io) { - struct composite_context *c = libnet_rpc_groupinfo_send(p, io, NULL); + struct composite_context *c = libnet_rpc_groupinfo_send(p, mem_ctx, io, NULL); return libnet_rpc_groupinfo_recv(c, mem_ctx, io); } diff --git a/source4/libnet/groupman.c b/source4/libnet/groupman.c index c8762f4..97236bd 100644 --- a/source4/libnet/groupman.c +++ b/source4/libnet/groupman.c @@ -42,6 +42,7 @@ static void continue_groupadd_created(struct tevent_req *subreq); struct composite_context* libnet_rpc_groupadd_send(struct dcerpc_pipe *p, + TALLOC_CTX *mem_ctx, struct libnet_rpc_groupadd *io, void (*monitor)(struct monitor_msg*)) { @@ -51,7 +52,7 @@ struct composite_context* libnet_rpc_groupadd_send(struct dcerpc_pipe *p, if (!p || !io) return NULL; - c = composite_create(p, dcerpc_event_context(p)); + c = composite_create(mem_ctx, dcerpc_event_context(p)); if (c == NULL) return NULL; s = talloc_zero(c, struct groupadd_state); @@ -125,7 +126,7 @@ NTSTATUS libnet_rpc_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, { struct composite_context *c; - c = libnet_rpc_groupadd_send(p, io, NULL); + c = libnet_rpc_groupadd_send(p, mem_ctx, io, NULL); return libnet_rpc_groupadd_recv(c, mem_ctx, io); } @@ -149,6 +150,7 @@ static void continue_groupdel_deleted(struct tevent_req *subreq); struct composite_context* libnet_rpc_groupdel_send(struct dcerpc_pipe *p, + TALLOC_CTX *mem_ctx, struct libnet_rpc_groupdel *io, void (*monitor)(struct monitor_msg*)) { @@ -157,7 +159,7 @@ struct composite_context* libnet_rpc_groupdel_send(struct dcerpc_pipe *p, struct tevent_req *subreq; /* composite context allocation and setup */ - c = composite_create(p, dcerpc_event_context(p)); + c = composite_create(mem_ctx, dcerpc_event_context(p)); if (c == NULL) return NULL; s = talloc_zero(c, struct groupdel_state); @@ -319,6 +321,6 @@ NTSTATUS libnet_rpc_groupdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, { struct composite_context *c; - c = libnet_rpc_groupdel_send(p, io, NULL); + c = libnet_rpc_groupdel_send(p, mem_ctx, io, NULL); return libnet_rpc_groupdel_recv(c, mem_ctx, io); } diff --git a/source4/libnet/libnet_domain.c b/source4/libnet/libnet_domain.c index acd2ece..70ed31d 100644 --- a/source4/libnet/libnet_domain.c +++ b/source4/libnet/libnet_domain.c @@ -268,6 +268,7 @@ static void continue_domain_open_open(struct tevent_req *subreq) */ struct composite_context *libnet_DomainOpenSamr_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainOpen *io, void (*monitor)(struct monitor_msg*)) { @@ -276,7 +277,7 @@ struct composite_context *libnet_DomainOpenSamr_send(struct libnet_context *ctx, struct composite_context *rpcconn_req; struct tevent_req *subreq; - c = composite_create(ctx, ctx->event_ctx); + c = composite_create(mem_ctx, ctx->event_ctx); if (c == NULL) return NULL; s = talloc_zero(c, struct domain_open_samr_state); @@ -414,6 +415,7 @@ static void continue_lsa_policy_open(struct tevent_req *subreq); */ struct composite_context* libnet_DomainOpenLsa_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainOpen *io, void (*monitor)(struct monitor_msg*)) { @@ -424,7 +426,7 @@ struct composite_context* libnet_DomainOpenLsa_send(struct libnet_context *ctx, struct lsa_QosInfo *qos; /* create composite context and state */ - c = composite_create(ctx, ctx->event_ctx); + c = composite_create(mem_ctx, ctx->event_ctx); if (c == NULL) return c; s = talloc_zero(c, struct domain_open_lsa_state); @@ -606,6 +608,7 @@ NTSTATUS libnet_DomainOpenLsa_recv(struct composite_context *c, struct libnet_co */ struct composite_context* libnet_DomainOpen_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainOpen *io, void (*monitor)(struct monitor_msg*)) { @@ -614,13 +617,13 @@ struct composite_context* libnet_DomainOpen_send(struct libnet_context *ctx, switch (io->in.type) { case DOMAIN_LSA: /* reques to open a policy handle on \pipe\lsarpc */ - c = libnet_DomainOpenLsa_send(ctx, io, monitor); + c = libnet_DomainOpenLsa_send(ctx, mem_ctx, io, monitor); break; case DOMAIN_SAMR: default: /* request to open a domain policy handle on \pipe\samr */ - c = libnet_DomainOpenSamr_send(ctx, io, monitor); + c = libnet_DomainOpenSamr_send(ctx, mem_ctx, io, monitor); break; } @@ -670,7 +673,7 @@ NTSTATUS libnet_DomainOpen(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct libnet_DomainOpen *io) { - struct composite_context *c = libnet_DomainOpen_send(ctx, io, NULL); + struct composite_context *c = libnet_DomainOpen_send(ctx, mem_ctx, io, NULL); return libnet_DomainOpen_recv(c, ctx, mem_ctx, io); } @@ -688,6 +691,7 @@ static void continue_lsa_close(struct tevent_req *subreq); struct composite_context* libnet_DomainCloseLsa_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainClose *io, void (*monitor)(struct monitor_msg*)) { @@ -696,7 +700,7 @@ struct composite_context* libnet_DomainCloseLsa_send(struct libnet_context *ctx, struct tevent_req *subreq; /* composite context and state structure allocation */ - c = composite_create(ctx, ctx->event_ctx); + c = composite_create(mem_ctx, ctx->event_ctx); if (c == NULL) return c; s = talloc_zero(c, struct domain_close_lsa_state); @@ -795,6 +799,7 @@ static void continue_samr_close(struct tevent_req *subreq); struct composite_context* libnet_DomainCloseSamr_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainClose *io, void (*monitor)(struct monitor_msg*)) { @@ -803,7 +808,7 @@ struct composite_context* libnet_DomainCloseSamr_send(struct libnet_context *ctx struct tevent_req *subreq; /* composite context and state structure allocation */ - c = composite_create(ctx, ctx->event_ctx); + c = composite_create(mem_ctx, ctx->event_ctx); if (c == NULL) return c; s = talloc_zero(c, struct domain_close_samr_state); @@ -892,6 +897,7 @@ NTSTATUS libnet_DomainCloseSamr_recv(struct composite_context *c, struct libnet_ struct composite_context* libnet_DomainClose_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_DomainClose *io, void (*monitor)(struct monitor_msg*)) { @@ -900,13 +906,13 @@ struct composite_context* libnet_DomainClose_send(struct libnet_context *ctx, switch (io->in.type) { case DOMAIN_LSA: /* request to close policy handle on \pipe\lsarpc */ - c = libnet_DomainCloseLsa_send(ctx, io, monitor); + c = libnet_DomainCloseLsa_send(ctx, mem_ctx, io, monitor); break; case DOMAIN_SAMR: default: /* request to close domain policy handle on \pipe\samr */ - c = libnet_DomainCloseSamr_send(ctx, io, monitor); + c = libnet_DomainCloseSamr_send(ctx, mem_ctx, io, monitor); break; } @@ -941,7 +947,7 @@ NTSTATUS libnet_DomainClose(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, { struct composite_context *c; - c = libnet_DomainClose_send(ctx, io, NULL); + c = libnet_DomainClose_send(ctx, mem_ctx, io, NULL); return libnet_DomainClose_recv(c, ctx, mem_ctx, io); } diff --git a/source4/libnet/libnet_group.c b/source4/libnet/libnet_group.c index 928ce69..c8a95d7 100644 --- a/source4/libnet/libnet_group.c +++ b/source4/libnet/libnet_group.c @@ -67,7 +67,7 @@ struct composite_context* libnet_CreateGroup_send(struct libnet_context *ctx, ZERO_STRUCT(s->r.out); /* prerequisite: make sure we have a valid samr domain handle */ - prereq_met = samr_domain_opened(ctx, s->r.in.domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(ctx, c, s->r.in.domain_name, &c, &s->domain_open, continue_domain_opened, monitor); if (!prereq_met) return c; @@ -76,7 +76,7 @@ struct composite_context* libnet_CreateGroup_send(struct libnet_context *ctx, s->group_add.in.domain_handle = ctx->samr.handle; /* send the request */ - create_req = libnet_rpc_groupadd_send(ctx->samr.pipe, &s->group_add, monitor); + create_req = libnet_rpc_groupadd_send(ctx->samr.pipe, s, &s->group_add, monitor); if (composite_nomem(create_req, c)) return c; composite_continue(c, create_req, continue_rpc_group_added, c); @@ -101,7 +101,7 @@ static void continue_domain_opened(struct composite_context *ctx) s->group_add.in.domain_handle = s->ctx->samr.handle; /* send the request */ - create_req = libnet_rpc_groupadd_send(s->ctx->samr.pipe, &s->group_add, + create_req = libnet_rpc_groupadd_send(s->ctx->samr.pipe, s, &s->group_add, s->monitor_fn); if (composite_nomem(create_req, c)) return; @@ -232,7 +232,7 @@ struct composite_context* libnet_GroupInfo_send(struct libnet_context *ctx, } /* prerequisite: make sure the domain is opened */ - prereq_met = samr_domain_opened(ctx, s->domain_name, &c, &s->domopen, + prereq_met = samr_domain_opened(ctx, c, s->domain_name, &c, &s->domopen, continue_domain_open_info, monitor); if (!prereq_met) return c; @@ -257,7 +257,7 @@ struct composite_context* libnet_GroupInfo_send(struct libnet_context *ctx, s->info.in.level = GROUPINFOALL; /* send the request */ - info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, &s->info, s->monitor_fn); + info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, s, &s->info, s->monitor_fn); if (composite_nomem(info_req, c)) return c; /* set the next stage */ @@ -306,7 +306,7 @@ static void continue_domain_open_info(struct composite_context *ctx) s->info.in.level = GROUPINFOALL; /* send the request */ - info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, &s->info, s->monitor_fn); + info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, s, &s->info, s->monitor_fn); if (composite_nomem(info_req, c)) return; /* set the next stage */ @@ -348,7 +348,7 @@ static void continue_name_found(struct composite_context *ctx) s->info.in.level = GROUPINFOALL; /* send the request */ - info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, &s->info, s->monitor_fn); + info_req = libnet_rpc_groupinfo_send(s->ctx->samr.pipe, s, &s->info, s->monitor_fn); if (composite_nomem(info_req, c)) return; /* set the next stage */ @@ -487,7 +487,7 @@ struct composite_context *libnet_GroupList_send(struct libnet_context *ctx, s->monitor_fn = monitor; /* make sure we have lsa domain handle before doing anything */ - prereq_met = lsa_domain_opened(ctx, s->domain_name, &c, &s->domain_open, + prereq_met = lsa_domain_opened(ctx, c, s->domain_name, &c, &s->domain_open, continue_lsa_domain_opened, monitor); if (!prereq_met) return c; @@ -563,7 +563,7 @@ static void continue_domain_queried(struct tevent_req *subreq) s->dominfo = (*s->query_domain.out.info)->domain; /* make sure we have samr domain handle before continuing */ - prereq_met = samr_domain_opened(s->ctx, s->domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(s->ctx, c, s->domain_name, &c, &s->domain_open, continue_samr_domain_opened, s->monitor_fn); if (!prereq_met) return; diff --git a/source4/libnet/libnet_lookup.c b/source4/libnet/libnet_lookup.c index f937940..31ac6e4 100644 --- a/source4/libnet/libnet_lookup.c +++ b/source4/libnet/libnet_lookup.c @@ -47,6 +47,7 @@ static void continue_name_resolved(struct composite_context *ctx); */ struct composite_context *libnet_Lookup_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_Lookup *io) { struct composite_context *c; @@ -55,7 +56,7 @@ struct composite_context *libnet_Lookup_send(struct libnet_context *ctx, struct resolve_context *resolve_ctx; /* allocate context and state structures */ - c = composite_create(ctx, ctx->event_ctx); + c = composite_create(mem_ctx, ctx->event_ctx); if (c == NULL) return NULL; s = talloc_zero(c, struct lookup_state); @@ -144,7 +145,7 @@ NTSTATUS libnet_Lookup_recv(struct composite_context *c, TALLOC_CTX *mem_ctx, NTSTATUS libnet_Lookup(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct libnet_Lookup *io) { - struct composite_context *c = libnet_Lookup_send(ctx, io); + struct composite_context *c = libnet_Lookup_send(ctx, mem_ctx, io); return libnet_Lookup_recv(c, mem_ctx, io); } @@ -159,10 +160,11 @@ NTSTATUS libnet_Lookup(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, * Sends asynchronous LookupHost request */ struct composite_context* libnet_LookupHost_send(struct libnet_context *ctx, + TALLOC_CTX *mem_ctx, struct libnet_Lookup *io) { io->in.type = NBT_NAME_SERVER; - return libnet_Lookup_send(ctx, io); + return libnet_Lookup_send(ctx, mem_ctx, io); } @@ -173,7 +175,7 @@ struct composite_context* libnet_LookupHost_send(struct libnet_context *ctx, NTSTATUS libnet_LookupHost(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct libnet_Lookup *io) { - struct composite_context *c = libnet_LookupHost_send(ctx, io); + struct composite_context *c = libnet_LookupHost_send(ctx, mem_ctx, io); return libnet_Lookup_recv(c, mem_ctx, io); } @@ -281,7 +283,7 @@ struct composite_context* libnet_LookupName_send(struct libnet_context *ctx, s->monitor_fn = monitor; s->ctx = ctx; - prereq_met = lsa_domain_opened(ctx, io->in.domain_name, &c, &s->domopen, + prereq_met = lsa_domain_opened(ctx, c, io->in.domain_name, &c, &s->domopen, continue_lookup_name, monitor); if (!prereq_met) return c; diff --git a/source4/libnet/libnet_user.c b/source4/libnet/libnet_user.c index eef480a..1a73652 100644 --- a/source4/libnet/libnet_user.c +++ b/source4/libnet/libnet_user.c @@ -79,7 +79,7 @@ struct composite_context* libnet_CreateUser_send(struct libnet_context *ctx, ZERO_STRUCT(s->r.out); /* prerequisite: make sure the domain is opened */ - prereq_met = samr_domain_opened(ctx, s->r.in.domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(ctx, c, s->r.in.domain_name, &c, &s->domain_open, continue_domain_open_create, monitor); if (!prereq_met) return c; @@ -88,7 +88,7 @@ struct composite_context* libnet_CreateUser_send(struct libnet_context *ctx, s->user_add.in.domain_handle = ctx->samr.handle; /* send the request */ - create_req = libnet_rpc_useradd_send(ctx->samr.pipe, &s->user_add, monitor); + create_req = libnet_rpc_useradd_send(ctx->samr.pipe, s, &s->user_add, monitor); if (composite_nomem(create_req, c)) return c; /* set the next stage */ @@ -123,7 +123,7 @@ static void continue_domain_open_create(struct composite_context *ctx) s->user_add.in.domain_handle = s->ctx->samr.handle; /* send the request */ - create_req = libnet_rpc_useradd_send(s->ctx->samr.pipe, &s->user_add, s->monitor_fn); + create_req = libnet_rpc_useradd_send(s->ctx->samr.pipe, s, &s->user_add, s->monitor_fn); if (composite_nomem(create_req, c)) return; /* set the next stage */ @@ -247,7 +247,7 @@ struct composite_context *libnet_DeleteUser_send(struct libnet_context *ctx, ZERO_STRUCT(s->r.out); /* prerequisite: make sure the domain is opened before proceeding */ - prereq_met = samr_domain_opened(ctx, s->r.in.domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(ctx, c, s->r.in.domain_name, &c, &s->domain_open, continue_domain_open_delete, monitor); if (!prereq_met) return c; @@ -256,7 +256,7 @@ struct composite_context *libnet_DeleteUser_send(struct libnet_context *ctx, s->user_del.in.domain_handle = ctx->samr.handle; /* send request */ - delete_req = libnet_rpc_userdel_send(ctx->samr.pipe, &s->user_del, monitor); + delete_req = libnet_rpc_userdel_send(ctx->samr.pipe, s, &s->user_del, monitor); if (composite_nomem(delete_req, c)) return c; /* set the next stage */ @@ -291,7 +291,7 @@ static void continue_domain_open_delete(struct composite_context *ctx) s->user_del.in.domain_handle = s->ctx->samr.handle; /* send request */ - delete_req = libnet_rpc_userdel_send(s->ctx->samr.pipe, &s->user_del, s->monitor_fn); + delete_req = libnet_rpc_userdel_send(s->ctx->samr.pipe, s, &s->user_del, s->monitor_fn); if (composite_nomem(delete_req, c)) return; /* set the next stage */ @@ -415,7 +415,7 @@ struct composite_context *libnet_ModifyUser_send(struct libnet_context *ctx, s->ctx = ctx; s->r = *r; - prereq_met = samr_domain_opened(ctx, s->r.in.domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(ctx, c, s->r.in.domain_name, &c, &s->domain_open, continue_domain_open_modify, monitor); if (!prereq_met) return c; @@ -483,7 +483,7 @@ static void continue_rpc_userinfo(struct composite_context *ctx) c->status = set_user_changes(c, &s->user_mod.in.change, &s->user_info, &s->r); - usermod_req = libnet_rpc_usermod_send(s->ctx->samr.pipe, &s->user_mod, s->monitor_fn); + usermod_req = libnet_rpc_usermod_send(s->ctx->samr.pipe, s, &s->user_mod, s->monitor_fn); if (composite_nomem(usermod_req, c)) return; composite_continue(c, usermod_req, continue_rpc_usermod, c); @@ -661,7 +661,7 @@ struct composite_context* libnet_UserInfo_send(struct libnet_context *ctx, } /* prerequisite: make sure the domain is opened */ - prereq_met = samr_domain_opened(ctx, s->domain_name, &c, &s->domopen, + prereq_met = samr_domain_opened(ctx, c, s->domain_name, &c, &s->domopen, continue_domain_open_info, monitor); if (!prereq_met) return c; @@ -953,7 +953,7 @@ struct composite_context* libnet_UserList_send(struct libnet_context *ctx, s->monitor_fn = monitor; /* make sure we have lsa domain handle before doing anything */ - prereq_met = lsa_domain_opened(ctx, s->domain_name, &c, &s->domain_open, + prereq_met = lsa_domain_opened(ctx, c, s->domain_name, &c, &s->domain_open, continue_lsa_domain_opened, monitor); if (!prereq_met) return c; @@ -1029,7 +1029,7 @@ static void continue_domain_queried(struct tevent_req *subreq) s->dominfo = (*s->query_domain.out.info)->domain; /* make sure we have samr domain handle before continuing */ - prereq_met = samr_domain_opened(s->ctx, s->domain_name, &c, &s->domain_open, + prereq_met = samr_domain_opened(s->ctx, c, s->domain_name, &c, &s->domain_open, continue_samr_domain_opened, s->monitor_fn); if (!prereq_met) return; diff --git a/source4/libnet/prereq_domain.c b/source4/libnet/prereq_domain.c index 039d99d..679669e 100644 --- a/source4/libnet/prereq_domain.c +++ b/source4/libnet/prereq_domain.c @@ -29,7 +29,8 @@ #include "librpc/gen_ndr/ndr_lsa.h" -bool samr_domain_opened(struct libnet_context *ctx, const char *domain_name, +bool samr_domain_opened(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, + const char *domain_name, struct composite_context **parent_ctx, struct libnet_DomainOpen *domain_open, void (*continue_fn)(struct composite_context*), @@ -76,7 +77,7 @@ bool samr_domain_opened(struct libnet_context *ctx, const char *domain_name, } /* send request to open the domain */ - domopen_req = libnet_DomainOpen_send(ctx, domain_open, monitor); + domopen_req = libnet_DomainOpen_send(ctx, mem_ctx, domain_open, monitor); if (composite_nomem(domopen_req, *parent_ctx)) return false; composite_continue(*parent_ctx, domopen_req, continue_fn, *parent_ctx); @@ -84,7 +85,8 @@ bool samr_domain_opened(struct libnet_context *ctx, const char *domain_name, } -bool lsa_domain_opened(struct libnet_context *ctx, const char *domain_name, +bool lsa_domain_opened(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, -- Samba Shared Repository