summaryrefslogtreecommitdiffstats
path: root/source3/rpc_parse
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2006-01-14 12:37:25 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:06:08 -0500
commita02415bf363e3c1b6863b135bdae3b2e2708db3b (patch)
treed49ef69be6c2179d11f93fe47bb02cba30fd6670 /source3/rpc_parse
parentae4a576f680f1c0507ec73f606154ff8ff36a1dd (diff)
downloadsamba-a02415bf363e3c1b6863b135bdae3b2e2708db3b.tar.gz
samba-a02415bf363e3c1b6863b135bdae3b2e2708db3b.tar.xz
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.c42
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);