diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-01-14 12:11:17 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2014-01-16 16:22:52 +0100 |
commit | 0fdf392e6ace8deb14b5b12faaf27deb5545ac1b (patch) | |
tree | 3b2d1a104fa7efdbf1e7930d14c58594cbd422f9 /source4/libnet | |
parent | adef841a59d50badc8e5d357a24c617303705f5b (diff) | |
download | samba-0fdf392e6ace8deb14b5b12faaf27deb5545ac1b.tar.gz samba-0fdf392e6ace8deb14b5b12faaf27deb5545ac1b.tar.xz samba-0fdf392e6ace8deb14b5b12faaf27deb5545ac1b.zip |
s4:libnet: let libnet_rpc_userdel_send() take tevent_context/dcerpc_binding_handle
This avoids usage/dereferencing 'struct dcerpc_pipe'.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Diffstat (limited to 'source4/libnet')
-rw-r--r-- | source4/libnet/libnet_user.c | 8 | ||||
-rw-r--r-- | source4/libnet/userman.c | 20 |
2 files changed, 17 insertions, 11 deletions
diff --git a/source4/libnet/libnet_user.c b/source4/libnet/libnet_user.c index 3eea71d196..2d35dc81c1 100644 --- a/source4/libnet/libnet_user.c +++ b/source4/libnet/libnet_user.c @@ -260,7 +260,9 @@ 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, &s->user_del, monitor); + delete_req = libnet_rpc_userdel_send(s, s->ctx->event_ctx, + ctx->samr.samr_handle, + &s->user_del, monitor); if (composite_nomem(delete_req, c)) return c; /* set the next stage */ @@ -295,7 +297,9 @@ 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, &s->user_del, s->monitor_fn); + delete_req = libnet_rpc_userdel_send(s, s->ctx->event_ctx, + s->ctx->samr.samr_handle, + &s->user_del, s->monitor_fn); if (composite_nomem(delete_req, c)) return; /* set the next stage */ diff --git a/source4/libnet/userman.c b/source4/libnet/userman.c index 2e1dff7540..7e6bedf27c 100644 --- a/source4/libnet/userman.c +++ b/source4/libnet/userman.c @@ -197,7 +197,7 @@ NTSTATUS libnet_rpc_useradd(struct tevent_context *ev, struct userdel_state { - struct dcerpc_pipe *pipe; + struct dcerpc_binding_handle *binding_handle; struct policy_handle domain_handle; struct policy_handle user_handle; struct samr_LookupNames lookupname; @@ -269,7 +269,7 @@ static void continue_userdel_name_found(struct tevent_req *subreq) /* send rpc request */ subreq = dcerpc_samr_OpenUser_r_send(s, c->event_ctx, - s->pipe->binding_handle, + s->binding_handle, &s->openuser); if (composite_nomem(subreq, c)) return; @@ -319,7 +319,7 @@ static void continue_userdel_user_opened(struct tevent_req *subreq) /* send rpc request */ subreq = dcerpc_samr_DeleteUser_r_send(s, c->event_ctx, - s->pipe->binding_handle, + s->binding_handle, &s->deleteuser); if (composite_nomem(subreq, c)) return; @@ -372,8 +372,9 @@ static void continue_userdel_deleted(struct tevent_req *subreq) * @param monitor monitor function for providing information about the progress */ -struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p, - TALLOC_CTX *mem_ctx, +struct composite_context *libnet_rpc_userdel_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *b, struct libnet_rpc_userdel *io, void (*monitor)(struct monitor_msg*)) { @@ -382,7 +383,7 @@ struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p, struct tevent_req *subreq; /* composite context allocation and setup */ - c = composite_create(mem_ctx, dcerpc_event_context(p)); + c = composite_create(mem_ctx, ev); if (c == NULL) return NULL; s = talloc_zero(c, struct userdel_state); @@ -391,7 +392,7 @@ struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p, c->private_data = s; /* store function parameters in the state structure */ - s->pipe = p; + s->binding_handle= b; s->domain_handle = io->in.domain_handle; s->monitor_fn = monitor; @@ -407,7 +408,7 @@ struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p, /* send the request */ subreq = dcerpc_samr_LookupNames_r_send(s, c->event_ctx, - p->binding_handle, + s->binding_handle, &s->lookupname); if (composite_nomem(subreq, c)) return c; @@ -457,7 +458,8 @@ NTSTATUS libnet_rpc_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct libnet_rpc_userdel *io) { - struct composite_context *c = libnet_rpc_userdel_send(p, mem_ctx, io, NULL); + struct composite_context *c = libnet_rpc_userdel_send(mem_ctx, p->conn->event_ctx, + p->binding_handle, io, NULL); return libnet_rpc_userdel_recv(c, mem_ctx, io); } |