Ensure accessing NT member servers works with a Samba PDC. Don't
authorJeremy Allison <jra@samba.org>
Wed, 3 Oct 2001 22:58:37 +0000 (22:58 +0000)
committerJeremy Allison <jra@samba.org>
Wed, 3 Oct 2001 22:58:37 +0000 (22:58 +0000)
change these timestamp settings without good reason.
Remove CLEAR_IF_FIRST flag is tdb is read-only.
Jeremy.

source/passdb/passdb.c
source/passdb/pdb_nisplus.c
source/passdb/pdb_smbpasswd.c
source/tdb/tdb.c

index 86ee97d281b76a5832887369ecefb4157ea4c7bf..0e1ebf8a2848e22414991637a59d683462bf4d8e 100644 (file)
@@ -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 */
index b73072015b382d87234c6bca58246509fc49d78d..af4bf1b82382dbc0c8cdec2ba54952b49365aab6 100644 (file)
@@ -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;
index 7d14d3e0e0a68213bc6171585ba2e8d6359138fc..45c983b1ca67f2180db7144f0a6b21db1ca272d7 100644 (file)
@@ -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;
 }
 
 /***************************************************************
index b90c307ec6b45bfd8b59f8d157dcc2644612f591..d0527919bc7067d3b13b9ba03e8b90dd56739adc 100644 (file)
@@ -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 */