diff options
author | Matthew Chapman <matty@samba.org> | 1999-02-01 02:37:45 +0000 |
---|---|---|
committer | Matthew Chapman <matty@samba.org> | 1999-02-01 02:37:45 +0000 |
commit | 960c760be0b84c4348288eb3bec6dd33e9c5c9b4 (patch) | |
tree | 314799452cb75631c4d68db81c4a324c3c90cfd7 | |
parent | 90b708473887ac11ca81f5a056ae5d2c854cf616 (diff) | |
download | samba-960c760be0b84c4348288eb3bec6dd33e9c5c9b4.tar.gz samba-960c760be0b84c4348288eb3bec6dd33e9c5c9b4.tar.bz2 samba-960c760be0b84c4348288eb3bec6dd33e9c5c9b4.zip |
Fixed a domain functionality problem where NT clients would start
endlessly repeating a network SAMLOGON (hoping it to change, hmmm...).
( Guess what I found in pwdb_init_sam...
unix_to_nt_time(&user->logon_time, (time_t)-1);
unix_to_nt_time(&user->logoff_time, (time_t)-1);
unix_to_nt_time(&user->kickoff_time, (time_t)-1);
... )
(This used to be commit e9c79c85e6d1352693ab13e907b07d4706975891)
-rw-r--r-- | source3/passdb/sampassdb.c | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/source3/passdb/sampassdb.c b/source3/passdb/sampassdb.c index a76701a367..25be7b9ec5 100644 --- a/source3/passdb/sampassdb.c +++ b/source3/passdb/sampassdb.c @@ -290,12 +290,13 @@ void pwdb_init_sam(struct sam_passwd *user) { if (user == NULL) return; bzero(user, sizeof(*user)); - unix_to_nt_time(&user->logon_time , (time_t)-1); - unix_to_nt_time(&user->logoff_time , (time_t)-1); - unix_to_nt_time(&user->kickoff_time , (time_t)-1); - unix_to_nt_time(&user->pass_last_set_time , (time_t)-1); - unix_to_nt_time(&user->pass_can_change_time , (time_t)-1); - unix_to_nt_time(&user->pass_must_change_time , (time_t)-1); + + init_nt_time(&user->logon_time); + init_nt_time(&user->logoff_time); + init_nt_time(&user->kickoff_time); + init_nt_time(&user->pass_last_set_time); + init_nt_time(&user->pass_can_change_time); + init_nt_time(&user->pass_must_change_time); user->unix_uid = (uid_t)-1; user->unix_gid = (gid_t)-1; @@ -360,8 +361,6 @@ struct sam_passwd *pwdb_smb_to_sam(struct smb_passwd *user) static struct sam_passwd pw_buf; static fstring nt_name; static fstring unix_name; - static time_t t; - static int time_count = 0; if (user == NULL) return NULL; @@ -377,29 +376,11 @@ struct sam_passwd *pwdb_smb_to_sam(struct smb_passwd *user) pw_buf.smb_nt_passwd = user->smb_nt_passwd; pw_buf.acct_ctrl = user->acct_ctrl; - /* Just update the time counter every 1,000 times though this function */ - switch (time_count) { - case 0: - DEBUG(3, ("Called time() in smb_to_sam function\n")); - time (&t); - time_count++; - break; - case 1000: - time_count = 0; - break; - default: - time_count++; - break; - } - - if ( user->pass_last_set_time == (time_t)-1 ) + if ( user->pass_last_set_time != (time_t)-1 ) { - user->pass_last_set_time = t; - } - unix_to_nt_time(&pw_buf.pass_last_set_time, user->pass_last_set_time); - unix_to_nt_time(&pw_buf.pass_can_change_time , user->pass_last_set_time); - unix_to_nt_time(&pw_buf.pass_must_change_time, t+3628800); - + unix_to_nt_time(&pw_buf.pass_last_set_time, user->pass_last_set_time); + unix_to_nt_time(&pw_buf.pass_can_change_time, user->pass_last_set_time); + } return &pw_buf; } |