summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_lsa.c
diff options
context:
space:
mode:
authorJean-François Micouleau <jfm@samba.org>2001-12-14 17:31:48 +0000
committerJean-François Micouleau <jfm@samba.org>2001-12-14 17:31:48 +0000
commit689144c631da01b4532ade7feb222e94bd8678ac (patch)
treecbf49ee1288aba2871f31469305dfd18c01412a8 /source3/rpc_server/srv_lsa.c
parent968e2a2976c29b5f40d91cf81e921bc30e5f0b9f (diff)
downloadsamba-689144c631da01b4532ade7feb222e94bd8678ac.tar.gz
samba-689144c631da01b4532ade7feb222e94bd8678ac.tar.bz2
samba-689144c631da01b4532ade7feb222e94bd8678ac.zip
add lsa_query_secobj server code. level 4 is the ACL, level 1 is the
owner. that's basic stuff. got the POLICY_ define from TNG but they are also in an include file in the NT SDK. J.F. (This used to be commit 84289a9bf42847981926e198ad36c050904fa9ed)
Diffstat (limited to 'source3/rpc_server/srv_lsa.c')
-rw-r--r--source3/rpc_server/srv_lsa.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_lsa.c b/source3/rpc_server/srv_lsa.c
index d2b2c60f45..b05fb972be 100644
--- a/source3/rpc_server/srv_lsa.c
+++ b/source3/rpc_server/srv_lsa.c
@@ -574,6 +574,36 @@ static BOOL api_lsa_removeprivs(pipes_struct *p)
return True;
}
+/***************************************************************************
+ api_lsa_query_secobj
+ ***************************************************************************/
+
+static BOOL api_lsa_query_secobj(pipes_struct *p)
+{
+ LSA_Q_QUERY_SEC_OBJ q_u;
+ LSA_R_QUERY_SEC_OBJ r_u;
+
+ prs_struct *data = &p->in_data.data;
+ prs_struct *rdata = &p->out_data.rdata;
+
+ ZERO_STRUCT(q_u);
+ ZERO_STRUCT(r_u);
+
+ if(!lsa_io_q_query_sec_obj("", &q_u, data, 0)) {
+ DEBUG(0,("api_lsa_query_secobj: failed to unmarshall LSA_Q_QUERY_SEC_OBJ.\n"));
+ return False;
+ }
+
+ r_u.status = _lsa_query_secobj(p, &q_u, &r_u);
+
+ /* store the response in the SMB stream */
+ if(!lsa_io_r_query_sec_obj("", &r_u, rdata, 0)) {
+ DEBUG(0,("api_lsa_query_secobj: Failed to marshall LSA_R_QUERY_SEC_OBJ.\n"));
+ return False;
+ }
+
+ return True;
+}
/***************************************************************************
\PIPE\ntlsa commands
@@ -599,6 +629,7 @@ static struct api_struct api_lsa_cmds[] =
{ "LSA_SETSYSTEMACCOUNT", LSA_SETSYSTEMACCOUNT, api_lsa_setsystemaccount },
{ "LSA_ADDPRIVS" , LSA_ADDPRIVS , api_lsa_addprivs },
{ "LSA_REMOVEPRIVS" , LSA_REMOVEPRIVS , api_lsa_removeprivs },
+ { "LSA_QUERYSECOBJ" , LSA_QUERYSECOBJ , api_lsa_query_secobj },
{ NULL , 0 , NULL }
};