summaryrefslogtreecommitdiff
path: root/source/rpc_parse/parse_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/rpc_parse/parse_net.c')
-rw-r--r--source/rpc_parse/parse_net.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/rpc_parse/parse_net.c b/source/rpc_parse/parse_net.c
index ead0c87b778..3698ca87292 100644
--- a/source/rpc_parse/parse_net.c
+++ b/source/rpc_parse/parse_net.c
@@ -1356,6 +1356,66 @@ BOOL net_io_user_info2(char *desc, NET_USER_INFO_2 * usr, prs_struct * ps,
}
/*************************************************************************
+ net_user_info_3_copy_from_ctr
+ *************************************************************************/
+BOOL net_user_info_3_copy_from_ctr(NET_USER_INFO_3 * usr,
+ const NET_USER_INFO_CTR *ctr)
+{
+ ZERO_STRUCTP(usr);
+ if (ctr->ptr_user_info == 0)
+ {
+ return True;
+ }
+ switch (ctr->switch_value)
+ {
+ case 2:
+ {
+ const NET_USER_INFO_2 *usr2 = ctr->usr.id2;
+ if (!make_net_user_info3W(usr,
+ &usr2->logon_time,
+ &usr2->logoff_time,
+ &usr2->kickoff_time,
+ &usr2->pass_last_set_time,
+ &usr2->pass_can_change_time,
+ &usr2->pass_must_change_time,
+ &usr2->uni_user_name,
+ &usr2->uni_full_name,
+ &usr2->uni_logon_script,
+ &usr2->uni_profile_path,
+ &usr2->uni_home_dir,
+ &usr2->uni_dir_drive,
+ usr2->logon_count,
+ usr2->bad_pw_count,
+ usr2->user_id,
+ usr2->group_id,
+ usr2->num_groups,
+ usr2->gids,
+ usr2->user_flgs,
+ usr2->user_sess_key,
+ &usr2->uni_logon_srv,
+ &usr2->uni_logon_dom,
+ usr2->padding,
+ &usr2->dom_sid.sid, NULL))
+ {
+ return False;
+ }
+ break;
+ }
+ case 3:
+ {
+ memcpy(usr, ctr->usr.id3, sizeof(*usr));
+ break;
+ }
+ default:
+ {
+ DEBUG(0,("invalid NET_USER_INFO_X info class\n"));
+ return False;
+ }
+ }
+ return True;
+}
+
+/*************************************************************************
make_net_user_info3
*************************************************************************/
BOOL make_net_user_info3W(NET_USER_INFO_3 * usr,