summaryrefslogtreecommitdiff
path: root/source3/passdb
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2002-12-13 02:07:05 +0000
committerGerald Carter <jerry@samba.org>2002-12-13 02:07:05 +0000
commit899b6e6d0facd1ef5865ce550fadd292514955d6 (patch)
tree7b959a887c100a29a3b74e354dd9142438e3d04f /source3/passdb
parent580110a47cf997f50f3442e04c28ce256e0e9c15 (diff)
downloadsamba-899b6e6d0facd1ef5865ce550fadd292514955d6.tar.gz
samba-899b6e6d0facd1ef5865ce550fadd292514955d6.tar.bz2
samba-899b6e6d0facd1ef5865ce550fadd292514955d6.zip
merge of get_dc_name()-like code from APP_HEAD; better support password server = DC1 *
(This used to be commit f49de4c5176bf635ac080e082fda412066b466c8)
Diffstat (limited to 'source3/passdb')
-rw-r--r--source3/passdb/secrets.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c
index 29afaddea3..b93ea74d8b 100644
--- a/source3/passdb/secrets.c
+++ b/source3/passdb/secrets.c
@@ -610,3 +610,33 @@ void secrets_named_mutex_release(const char *name)
tdb_unlock_bystring(tdb, name);
DEBUG(10,("secrets_named_mutex: released mutex for %s\n", name ));
}
+
+/*********************************************************
+ Check to see if we must talk to the PDC to avoid sam
+ sync delays
+ ********************************************************/
+
+BOOL must_use_pdc( const char *domain )
+{
+ time_t now = time(NULL);
+ time_t last_change_time;
+ unsigned char passwd[16];
+
+ if ( !secrets_fetch_trust_account_password(domain, passwd, &last_change_time) )
+ return False;
+
+ /*
+ * If the time the machine password has changed
+ * was less than about 15 minutes then we need to contact
+ * the PDC only, as we cannot be sure domain replication
+ * has yet taken place. Bug found by Gerald (way to go
+ * Gerald !). JRA.
+ */
+
+ if ( now - last_change_time < SAM_SYNC_WINDOW )
+ return True;
+
+ return False;
+
+}
+