diff options
-rw-r--r-- | source4/libnet/composite.h | 43 | ||||
-rw-r--r-- | source4/libnet/userinfo.c | 23 |
2 files changed, 45 insertions, 21 deletions
diff --git a/source4/libnet/composite.h b/source4/libnet/composite.h new file mode 100644 index 0000000000..f4f5c456fe --- /dev/null +++ b/source4/libnet/composite.h @@ -0,0 +1,43 @@ +/* + Unix SMB/CIFS implementation. + + Copyright (C) Rafal Szczesniak 2005 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + composite function definitions +*/ + +enum userinfo_stage { USERINFO_OPENUSER, USERINFO_GETUSER, USERINFO_CLOSEUSER }; + +struct rpc_composite_userinfo { + struct { + struct policy_handle domain_handle; + const char *sid; + uint16_t level; + } in; + struct { + union samr_UserInfo info; + } out; +}; + +struct userinfo_state { + enum userinfo_stage stage; + struct dcerpc_pipe *pipe; + struct rpc_request *req; + struct rpc_composite_userinfo io; +}; diff --git a/source4/libnet/userinfo.c b/source4/libnet/userinfo.c index fe740f8472..350bc26202 100644 --- a/source4/libnet/userinfo.c +++ b/source4/libnet/userinfo.c @@ -26,26 +26,7 @@ #include "libcli/raw/libcliraw.h" #include "libcli/composite/composite.h" #include "librpc/gen_ndr/ndr_samr.h" - -enum userinfo_stage { USERINFO_OPENUSER, USERINFO_GETUSER, USERINFO_CLOSEUSER }; - -struct rpc_composite_userinfo { - struct { - struct policy_handle domain_handle; - const char *sid; - uint16_t level; - } in; - struct { - union samr_UserInfo info; - } out; -}; - -struct userinfo_state { - enum userinfo_stage stage; - struct dcerpc_pipe *pipe; - struct rpc_request *req; - struct rpc_composite_userinfo io; -}; +#include "libnet/composite.h" static void userinfo_handler(struct rpc_request *req); @@ -187,7 +168,7 @@ struct composite_context* rpc_composite_userinfo_send(struct dcerpc_pipe *p, /* preparing parameters to send rpc request */ r = talloc_zero(p, struct samr_OpenUser); r->in.domain_handle = &s->io.in.domain_handle; - r->in.access_mask = 0; + r->in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; r->in.rid = sid->sub_auths[sid->num_auths - 1]; /* send request */ |