summaryrefslogtreecommitdiffstats
path: root/source/rpc_server/srv_netlog_nt.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-01-26 05:52:20 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-01-26 05:52:20 +0000
commit4fc9e16ad7a77cf2e37b27640c0dec2052e9cda0 (patch)
treeefdbb2b8427a689bcaf91716e15575db989b08cc /source/rpc_server/srv_netlog_nt.c
parent3db417c2ebfda0d5872dee39e36edc4fb6299b9a (diff)
downloadsamba-4fc9e16ad7a77cf2e37b27640c0dec2052e9cda0.tar.gz
samba-4fc9e16ad7a77cf2e37b27640c0dec2052e9cda0.tar.xz
samba-4fc9e16ad7a77cf2e37b27640c0dec2052e9cda0.zip
Try to move towards slightly sane linking for Samba by removing some pdb_...()
calls from rpc_parse/parse_net.c - instead these values are passed as a paramater. Unfortunetly some there is still some samr work to be done before this is actually useful. Andrew Bartlett
Diffstat (limited to 'source/rpc_server/srv_netlog_nt.c')
-rw-r--r--source/rpc_server/srv_netlog_nt.c42
1 files changed, 30 insertions, 12 deletions
diff --git a/source/rpc_server/srv_netlog_nt.c b/source/rpc_server/srv_netlog_nt.c
index 75a64b3039b..7a1c69fb25d 100644
--- a/source/rpc_server/srv_netlog_nt.c
+++ b/source/rpc_server/srv_netlog_nt.c
@@ -505,6 +505,7 @@ NTSTATUS _net_sam_logon(pipes_struct *p, NET_Q_SAM_LOGON *q_u, NET_R_SAM_LOGON *
auth_usersupplied_info *user_info = NULL;
auth_serversupplied_info *server_info = NULL;
extern userdom_struct current_user_info;
+ SAM_ACCOUNT *sampw;
usr_info = (NET_USER_INFO_3 *)talloc(p->mem_ctx, sizeof(NET_USER_INFO_3));
if (!usr_info)
@@ -675,18 +676,35 @@ NTSTATUS _net_sam_logon(pipes_struct *p, NET_Q_SAM_LOGON *q_u, NET_R_SAM_LOGON *
gids = NULL;
get_domain_user_groups(p->mem_ctx, &num_gids, &gids, server_info->sam_account);
- init_net_user_info3(p->mem_ctx, usr_info, server_info->sam_account,
- 0, /* logon_count */
- 0, /* bad_pw_count */
- num_gids, /* uint32 num_groups */
- gids , /* DOM_GID *gids */
- 0x20 , /* uint32 user_flgs (?) */
- NULL, /* uchar sess_key[16] */
- my_name , /* char *logon_srv */
- my_workgroup, /* char *logon_dom */
- &global_sam_sid, /* DOM_SID *dom_sid */
- NULL); /* char *other_sids */
-
+ sampw = server_info->sam_account;
+
+ init_net_user_info3(p->mem_ctx, usr_info,
+ pdb_get_user_rid(sampw),
+ pdb_get_group_rid(sampw),
+
+ pdb_get_username(sampw),
+ pdb_get_fullname(sampw),
+ pdb_get_homedir(sampw),
+ pdb_get_dirdrive(sampw),
+ pdb_get_logon_script(sampw),
+ pdb_get_profile_path(sampw),
+ pdb_get_logon_time(sampw),
+ pdb_get_logoff_time(sampw),
+ pdb_get_kickoff_time(sampw),
+ pdb_get_pass_last_set_time(sampw),
+ pdb_get_pass_can_change_time(sampw),
+ pdb_get_pass_must_change_time(sampw),
+
+ 0, /* logon_count */
+ 0, /* bad_pw_count */
+ num_gids, /* uint32 num_groups */
+ gids , /* DOM_GID *gids */
+ 0x20 , /* uint32 user_flgs (?) */
+ NULL, /* uchar sess_key[16] */
+ my_name , /* char *logon_srv */
+ my_workgroup, /* char *logon_dom */
+ &global_sam_sid, /* DOM_SID *dom_sid */
+ NULL); /* char *other_sids */
}
free_server_info(&server_info);
return status;