diff options
author | Alexander Bokovoy <ab@samba.org> | 2006-01-14 12:37:25 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:06:08 -0500 |
commit | a02415bf363e3c1b6863b135bdae3b2e2708db3b (patch) | |
tree | d49ef69be6c2179d11f93fe47bb02cba30fd6670 /source3/rpc_parse | |
parent | ae4a576f680f1c0507ec73f606154ff8ff36a1dd (diff) | |
download | samba-a02415bf363e3c1b6863b135bdae3b2e2708db3b.tar.gz samba-a02415bf363e3c1b6863b135bdae3b2e2708db3b.tar.bz2 samba-a02415bf363e3c1b6863b135bdae3b2e2708db3b.zip |
r12935: After discussion with Volker fix bug #3397 using a variant of the patch by Alex Deiter (tiamat@komi.mts.ru).
Introduces level 9 of getuserinfo and allows to successfully install MS SMS2003
on a member of a Samba domain. Also added support for this level in rpcclient.
The code for infolevel 9 is modelled upon Samba-TNG by Alex Deiter.
Jerry, we need this in 3.0.21b.
(This used to be commit 93461646ce2ad6e2f8b11d40ce98722d56a83b43)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r-- | source3/rpc_parse/parse_samr.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_samr.c b/source3/rpc_parse/parse_samr.c index 0a055ff826..6c2b4f4ea7 100644 --- a/source3/rpc_parse/parse_samr.c +++ b/source3/rpc_parse/parse_samr.c @@ -5183,6 +5183,39 @@ static BOOL sam_io_user_info7(const char *desc, SAM_USER_INFO_7 * usr, } /******************************************************************* +inits a SAM_USER_INFO_9 structure. +********************************************************************/ + +void init_sam_user_info9(SAM_USER_INFO_9 * usr, uint32 rid_group) +{ + DEBUG(5, ("init_sam_user_info9\n")); + + usr->rid_group = rid_group; +} + +/******************************************************************* +reads or writes a structure. +********************************************************************/ + +static BOOL sam_io_user_info9(const char *desc, SAM_USER_INFO_9 * usr, + prs_struct *ps, int depth) +{ + if (usr == NULL) + return False; + + prs_debug(ps, depth, desc, "samr_io_r_user_info9"); + depth++; + + if(!prs_align(ps)) + return False; + + if(!prs_uint32("rid_group", ps, depth, &usr->rid_group)) + return False; + + return True; +} + +/******************************************************************* inits a SAM_USER_INFO_16 structure. ********************************************************************/ @@ -6354,6 +6387,15 @@ static BOOL samr_io_userinfo_ctr(const char *desc, SAM_USERINFO_CTR **ppctr, } ret = sam_io_user_info7("", ctr->info.id7, ps, depth); break; + case 9: + if (UNMARSHALLING(ps)) + ctr->info.id9 = PRS_ALLOC_MEM(ps,SAM_USER_INFO_9,1); + if (ctr->info.id9 == NULL) { + DEBUG(2,("samr_io_userinfo_ctr: info pointer not initialised\n")); + return False; + } + ret = sam_io_user_info9("", ctr->info.id9, ps, depth); + break; case 16: if (UNMARSHALLING(ps)) ctr->info.id16 = PRS_ALLOC_MEM(ps,SAM_USER_INFO_16,1); |