summaryrefslogtreecommitdiff
path: root/source/rpc_parse/parse_samr.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-01-27 02:43:36 +0000
committerLuke Leighton <lkcl@samba.org>2000-01-27 02:43:36 +0000
commit43bb099ff437f3b90974287cc851f56e7c0f0fac (patch)
tree48aad95b0b510a74cf29c34ccec2ee6eb06f052d /source/rpc_parse/parse_samr.c
parente4ee437d11970614b436a0a06b1816ee952d5cda (diff)
downloadsamba-43bb099ff437f3b90974287cc851f56e7c0f0fac.tar.gz
samr srv api conversion
Diffstat (limited to 'source/rpc_parse/parse_samr.c')
-rw-r--r--source/rpc_parse/parse_samr.c113
1 files changed, 60 insertions, 53 deletions
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index 6a045fbb971..38d28a032f1 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -5746,35 +5746,79 @@ BOOL samr_io_r_set_userinfo(char *desc, SAMR_R_SET_USERINFO *r_u, prs_struct *p
return True;
}
+
/*******************************************************************
-makes a SAMR_Q_SET_USERINFO2 structure.
+reads or writes a structure.
********************************************************************/
-BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u,
- POLICY_HND *hnd,
- uint16 switch_value, void *info)
+BOOL samr_io_userinfo2_ctr(char *desc, SAM_USERINFO2_CTR *ctr, prs_struct *ps, int depth)
{
- if (q_u == NULL || hnd == NULL) return False;
+ if (ctr == NULL) return False;
- DEBUG(5,("make_samr_q_set_userinfo2\n"));
+ prs_debug(ps, depth, desc, "samr_io_userinfo2_ctr");
+ depth++;
- memcpy(&(q_u->pol), hnd, sizeof(q_u->pol));
- q_u->switch_value = switch_value;
- q_u->switch_value2 = switch_value;
- q_u->info.id = info;
+ prs_uint16("switch_value", ps, depth, &(ctr->switch_value));
+ prs_align(ps);
- switch (switch_value)
+ switch (ctr->switch_value)
{
- case 0x10:
+ case 16:
{
+ if (ps->io)
+ {
+ /* reading */
+ ctr->info.id = (SAM_USER_INFO_16*)Realloc(NULL,
+ sizeof(*ctr->info.id16));
+ }
+ if (ctr->info.id == NULL)
+ {
+ DEBUG(2,("samr_io_q_query_userinfo2: info pointer not initialised\n"));
+ return False;
+ }
+ sam_io_user_info16("", ctr->info.id16, ps, depth);
break;
}
default:
{
- DEBUG(4,("make_samr_q_set_userinfo2: unsupported switch level\n"));
- return False;
+ DEBUG(2,("samr_io_userinfo2_ctr: unknown switch level\n"));
+ break;
}
+
}
+ prs_align(ps);
+
+ return True;
+}
+
+/*******************************************************************
+frees a structure.
+********************************************************************/
+void free_samr_userinfo2_ctr(SAM_USERINFO2_CTR *ctr)
+{
+ if (ctr->info.id == NULL)
+ {
+ free(ctr->info.id);
+ }
+ ctr->info.id = NULL;
+}
+
+/*******************************************************************
+makes a SAMR_Q_SET_USERINFO2 structure.
+********************************************************************/
+BOOL make_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u,
+ POLICY_HND *hnd,
+ uint16 switch_value,
+ SAM_USERINFO2_CTR *ctr)
+{
+ if (q_u == NULL || hnd == NULL) return False;
+
+ DEBUG(5,("make_samr_q_set_userinfo2\n"));
+
+ memcpy(&(q_u->pol), hnd, sizeof(q_u->pol));
+ q_u->switch_value = switch_value;
+ q_u->ctr = ctr;
+
return True;
}
@@ -5795,40 +5839,7 @@ BOOL samr_io_q_set_userinfo2(char *desc, SAMR_Q_SET_USERINFO2 *q_u, prs_struct *
prs_align(ps);
prs_uint16("switch_value ", ps, depth, &(q_u->switch_value ));
- prs_uint16("switch_value2", ps, depth, &(q_u->switch_value2));
-
- prs_align(ps);
-
- switch (q_u->switch_value)
- {
- case 0:
- {
- break;
- }
- case 16:
- {
- if (ps->io)
- {
- /* reading */
- q_u->info.id = (SAM_USER_INFO_16*)Realloc(NULL,
- sizeof(*q_u->info.id16));
- }
- if (q_u->info.id == NULL)
- {
- DEBUG(2,("samr_io_q_query_userinfo2: info pointer not initialised\n"));
- return False;
- }
- sam_io_user_info16("", q_u->info.id16, ps, depth);
- break;
- }
- default:
- {
- DEBUG(2,("samr_io_q_query_userinfo2: unknown switch level\n"));
- break;
- }
-
- }
- prs_align(ps);
+ samr_io_userinfo2_ctr("ctr", q_u->ctr, ps, depth);
if (!ps->io)
{
@@ -5844,11 +5855,7 @@ frees a structure.
********************************************************************/
void free_samr_q_set_userinfo2(SAMR_Q_SET_USERINFO2 *q_u)
{
- if (q_u->info.id == NULL)
- {
- free(q_u->info.id);
- }
- q_u->info.id = NULL;
+ free_samr_userinfo2_ctr(q_u->ctr);
}
/*******************************************************************