diff options
author | Luke Leighton <lkcl@samba.org> | 2000-01-27 02:43:36 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 2000-01-27 02:43:36 +0000 |
commit | 43bb099ff437f3b90974287cc851f56e7c0f0fac (patch) | |
tree | 48aad95b0b510a74cf29c34ccec2ee6eb06f052d /source/rpc_parse/parse_samr.c | |
parent | e4ee437d11970614b436a0a06b1816ee952d5cda (diff) | |
download | samba-43bb099ff437f3b90974287cc851f56e7c0f0fac.tar.gz |
samr srv api conversion
Diffstat (limited to 'source/rpc_parse/parse_samr.c')
-rw-r--r-- | source/rpc_parse/parse_samr.c | 113 |
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); } /******************************************************************* |