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

Reply via email to