diff options
author | Gerald Carter <jerry@samba.org> | 2002-12-13 02:07:05 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2002-12-13 02:07:05 +0000 |
commit | 899b6e6d0facd1ef5865ce550fadd292514955d6 (patch) | |
tree | 7b959a887c100a29a3b74e354dd9142438e3d04f /source3/passdb | |
parent | 580110a47cf997f50f3442e04c28ce256e0e9c15 (diff) | |
download | samba-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.c | 30 |
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; + +} + |