[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-792-g641b5e3

Michael Adam obnox at samba.org
Thu Apr 10 11:24:36 GMT 2008


The branch, v3-2-test has been updated
       via  641b5e3fecfce9581536de8daf6d7e6ecbefaf34 (commit)
      from  79bc6796b81395d591fc6ef389f153dd981fe68b (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 641b5e3fecfce9581536de8daf6d7e6ecbefaf34
Author: Michael Adam <obnox at samba.org>
Date:   Thu Apr 10 11:53:53 2008 +0200

    winbindd: only call winbindd_validate_cache when not in offline logon mode.
    
    originally, the cache was cleared before calling validate, but
    this way, we skipt the validation of the database when not in
    offline logon mode.
    
    This is put into a new wrapper function winbindd_cache_validate_and_initialize()
    which is now called in winbindd.c instead calling validate and
    initialize functions separately.
    
    Michael

-----------------------------------------------------------------------

Summary of changes:
 source/winbindd/winbindd.c       |   23 +++--------------------
 source/winbindd/winbindd_cache.c |   14 ++++++++++++++
 2 files changed, 17 insertions(+), 20 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/winbindd/winbindd.c b/source/winbindd/winbindd.c
index 25ceeeb..dbfd397 100644
--- a/source/winbindd/winbindd.c
+++ b/source/winbindd/winbindd.c
@@ -123,19 +123,7 @@ static void flush_caches(void)
 
 	if (!wcache_invalidate_cache()) {
 		DEBUG(0, ("invalidating the cache failed; revalidate the cache\n"));
-		/* Close the cache to be able to valdite the cache */
-		close_winbindd_cache();
-		/*
-		 * Ensure all cache and idmap caches are consistent
-		 * before we initialize the cache again.
-		 */
-		if (winbindd_validate_cache() < 0) {
-			DEBUG(0, ("winbindd cache tdb corrupt and no backup "
-				  "could be restore.\n"));
-		}
-
-		/* Initialize cache again. */
-		if (!initialize_winbindd_cache()) {
+		if (!winbindd_cache_validate_and_initialize()) {
 			exit(1);
 		}
 	}
@@ -1194,14 +1182,9 @@ int main(int argc, char **argv, char **envp)
 
 	/*
 	 * Ensure all cache and idmap caches are consistent
-	 * before we startup.
+	 * and initialized before we startup.
 	 */
-	if (winbindd_validate_cache() < 0) {
-		DEBUG(0, ("corrupted tdb found, trying to restore backup\n"));
-	}
-
-	/* Initialize cache (ensure version is correct). */
-	if (!initialize_winbindd_cache()) {
+	if (!winbindd_cache_validate_and_initialize()) {
 		exit(1);
 	}
 
diff --git a/source/winbindd/winbindd_cache.c b/source/winbindd/winbindd_cache.c
index e4b0a53..ddb0ab3 100644
--- a/source/winbindd/winbindd_cache.c
+++ b/source/winbindd/winbindd_cache.c
@@ -3476,6 +3476,20 @@ int winbindd_validate_cache_nobackup(void)
 	return ret;
 }
 
+bool winbindd_cache_validate_and_initialize(void)
+{
+	close_winbindd_cache();
+
+	if (lp_winbind_offline_logon()) {
+		if (winbindd_validate_cache() < 0) {
+			DEBUG(0, ("winbindd cache tdb corrupt and no backup "
+				  "could be restored.\n"));
+		}
+	}
+
+	return initialize_winbindd_cache();
+}
+
 /*********************************************************************
  ********************************************************************/
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list