summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-10-03 22:58:37 +0000
committerJeremy Allison <jra@samba.org>2001-10-03 22:58:37 +0000
commita71d9d98b013a6c30fd85524b7cdc929bdbd9bcb (patch)
tree91f2630ae56144330f305a56a59772eab3cb8851
parentd30939a091b48f4d77f7618c75668ae151a5592e (diff)
downloadsamba-a71d9d98b013a6c30fd85524b7cdc929bdbd9bcb.tar.gz
samba-a71d9d98b013a6c30fd85524b7cdc929bdbd9bcb.tar.xz
samba-a71d9d98b013a6c30fd85524b7cdc929bdbd9bcb.zip
Ensure accessing NT member servers works with a Samba PDC. Don't
change these timestamp settings without good reason. Remove CLEAR_IF_FIRST flag is tdb is read-only. Jeremy.
-rw-r--r--source/passdb/passdb.c4
-rw-r--r--source/passdb/pdb_nisplus.c8
-rw-r--r--source/passdb/pdb_smbpasswd.c2
-rw-r--r--source/tdb/tdb.c3
4 files changed, 9 insertions, 8 deletions
diff --git a/source/passdb/passdb.c b/source/passdb/passdb.c
index 86ee97d281b..0e1ebf8a284 100644
--- a/source/passdb/passdb.c
+++ b/source/passdb/passdb.c
@@ -77,10 +77,10 @@ static BOOL pdb_fill_default_sam(SAM_ACCOUNT *user)
ZERO_STRUCTP(user);
user->logon_time = (time_t)0;
+ user->pass_last_set_time = (time_t)0;
+ user->pass_can_change_time = (time_t)0;
user->logoff_time =
user->kickoff_time =
- user->pass_last_set_time =
- user->pass_can_change_time =
user->pass_must_change_time = get_time_t_max();
user->unknown_3 = 0x00ffffff; /* don't know */
diff --git a/source/passdb/pdb_nisplus.c b/source/passdb/pdb_nisplus.c
index b73072015b3..af4bf1b8238 100644
--- a/source/passdb/pdb_nisplus.c
+++ b/source/passdb/pdb_nisplus.c
@@ -209,7 +209,7 @@ static BOOL make_sam_from_nisp_object(SAM_ACCOUNT *pw_buf, nis_object *obj)
* time values. note: this code assumes 32bit time_t!
*/
- pdb_set_logon_time(pw_buf, get_time_t_max());
+ pdb_set_logon_time(pw_buf, (time_t)0);
ptr = (uchar *)ENTRY_VAL(obj, NPF_LOGON_T);
if(ptr && *ptr && (StrnCaseCmp(ptr, "LNT-", 4)==0)) {
int i;
@@ -251,7 +251,7 @@ static BOOL make_sam_from_nisp_object(SAM_ACCOUNT *pw_buf, nis_object *obj)
}
}
- pdb_set_pass_last_set_time(pw_buf, get_time_t_max());
+ pdb_set_pass_last_set_time(pw_buf, (time_t)0);
ptr = (uchar *)ENTRY_VAL(obj, NPF_PWDLSET_T);
if(ptr && *ptr && (StrnCaseCmp(ptr, "LCT-", 4)==0)) {
int i;
@@ -265,7 +265,7 @@ static BOOL make_sam_from_nisp_object(SAM_ACCOUNT *pw_buf, nis_object *obj)
}
}
- pdb_set_pass_can_change_time(pw_buf, get_time_t_max());
+ pdb_set_pass_can_change_time(pw_buf, (time_t)0);
ptr = (uchar *)ENTRY_VAL(obj, NPF_PWDCCHG_T);
if(ptr && *ptr && (StrnCaseCmp(ptr, "CCT-", 4)==0)) {
int i;
@@ -279,7 +279,7 @@ static BOOL make_sam_from_nisp_object(SAM_ACCOUNT *pw_buf, nis_object *obj)
}
}
- pdb_set_pass_must_change_time(pw_buf, get_time_t_max());
+ pdb_set_pass_must_change_time(pw_buf, get_time_t_max()); /* Password never expires. */
ptr = (uchar *)ENTRY_VAL(obj, NPF_PWDMCHG_T);
if(ptr && *ptr && (StrnCaseCmp(ptr, "MCT-", 4)==0)) {
int i;
diff --git a/source/passdb/pdb_smbpasswd.c b/source/passdb/pdb_smbpasswd.c
index 7d14d3e0e0a..45c983b1ca6 100644
--- a/source/passdb/pdb_smbpasswd.c
+++ b/source/passdb/pdb_smbpasswd.c
@@ -108,7 +108,7 @@ static void pdb_init_smb(struct smb_passwd *user)
return;
ZERO_STRUCTP (user);
- user->pass_last_set_time = get_time_t_max();
+ user->pass_last_set_time = (time_t)0;
}
/***************************************************************
diff --git a/source/tdb/tdb.c b/source/tdb/tdb.c
index b90c307ec6b..d0527919bc7 100644
--- a/source/tdb/tdb.c
+++ b/source/tdb/tdb.c
@@ -1377,8 +1377,9 @@ TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
hash_size = DEFAULT_HASH_SIZE;
if ((open_flags & O_ACCMODE) == O_RDONLY) {
tdb.read_only = 1;
- /* read only databases don't do locking */
+ /* read only databases don't do locking or clear if first */
tdb.flags |= TDB_NOLOCK;
+ tdb.flags &= ~TDB_CLEAR_IF_FIRST;
}
/* internal databases don't mmap or lock, and start off cleared */