diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-02-10 11:31:23 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-02-10 11:31:23 +0000 |
commit | 6c66e42d2ccf025f57e652f7ae689f8a3c2ada59 (patch) | |
tree | 56c892e5817256759b9470f7186fbb74c6601430 /source3/rpc_parse/parse_misc.c | |
parent | baff308f169dc90449f55d207627135a44d14bbd (diff) | |
download | samba-6c66e42d2ccf025f57e652f7ae689f8a3c2ada59.tar.gz samba-6c66e42d2ccf025f57e652f7ae689f8a3c2ada59.tar.bz2 samba-6c66e42d2ccf025f57e652f7ae689f8a3c2ada59.zip |
added the 'lsaenumacctwithright' command to rpcclient. This allows you
to lookup what SIDs have a particular privilege (that is how
privileges are stored).
(This used to be commit 3ddb5fb0dd33992b7db54a661752551a3fefc0b4)
Diffstat (limited to 'source3/rpc_parse/parse_misc.c')
-rw-r--r-- | source3/rpc_parse/parse_misc.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_misc.c b/source3/rpc_parse/parse_misc.c index 43d26a691d..403a12ee53 100644 --- a/source3/rpc_parse/parse_misc.c +++ b/source3/rpc_parse/parse_misc.c @@ -1123,6 +1123,51 @@ BOOL smb_io_unistr2_array(const char *desc, UNISTR2_ARRAY *array, prs_struct *ps /******************************************************************* + Reads or writes a SID_ARRAY structure. +********************************************************************/ +BOOL smb_io_sid_array(const char *desc, SID_ARRAY *array, prs_struct *ps, int depth) +{ + int i; + + prs_debug(ps, depth, desc, "smb_io_sid_array"); + depth++; + + if(!prs_uint32("ref_id", ps, depth, &array->ref_id)) + return False; + + if (! array->ref_id) { + return True; + } + + if(!prs_uint32("count", ps, depth, &array->count)) + return False; + + if (array->count == 0) { + return True; + } + + if (UNMARSHALLING(ps)) { + array->sids = talloc_zero(get_talloc_ctx(), array->count * sizeof(array->sids[0])); + } + if (! array->sids) { + return False; + } + + for (i=0;i<array->count;i++) { + if(!prs_uint32("ref_id", ps, depth, &array->sids[i].ref_id)) + return False; + } + + for (i=0;i<array->count;i++) { + if (!smb_io_dom_sid2("sid", &array->sids[i].sid, ps, depth)) + return False; + } + + return True; +} + + +/******************************************************************* Inits a DOM_RID2 structure. ********************************************************************/ |