r23610: Move some winbindd_cache specific flags and actions
authorMichael Adam <obnox@samba.org>
Tue, 26 Jun 2007 13:45:07 +0000 (13:45 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:23:36 +0000 (12:23 -0500)
back to winbindd_cache.c. The generic mechanism
should open the cache tdb readonly and with default
flags.

Michael

source/lib/util_tdb.c
source/nsswitch/winbindd_cache.c

index cb53b7f2e37cdfaf6875b1023eff6e469306c763..7a0cce6c25a8cf19bd3bb5c61871915e7a95450b 100644 (file)
@@ -1005,12 +1005,7 @@ static int tdb_validate_child(const char *tdb_path,
        v_status.unknown_key = False;
        v_status.success = True;
 
-       tdb = tdb_open_log(tdb_path,
-                       WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE,
-                       lp_winbind_offline_logon() 
-                               ?  TDB_DEFAULT 
-                               : (TDB_DEFAULT | TDB_CLEAR_IF_FIRST),
-                       O_RDWR|O_CREAT, 0600);
+       tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDONLY, 0);
        if (!tdb) {
                v_status.tdb_error = True;
                v_status.success = False;
@@ -1182,4 +1177,3 @@ int tdb_validate(const char *tdb_path, tdb_validate_data_func validate_fn)
 
        return ret;
 }
-
index 122432d95b27e661f6049b4018f1ceb51782218a..cfd182666e3072dd1ca8d8d91db72fdf712178d8 100644 (file)
@@ -3279,14 +3279,32 @@ static void validate_panic(const char *const why)
 
 int winbindd_validate_cache(void)
 {
-       int ret;
+       int ret = -1;
+       const char *tdb_path = lock_path("winbindd_cache.tdb");
+       TDB_CONTEXT *tdb = NULL;
 
        DEBUG(10, ("winbindd_validate_cache: replacing panic function\n"));
        smb_panic_fn = validate_panic;
 
+
+       tdb = tdb_open_log(tdb_path, 
+                          WINBINDD_CACHE_TDB_DEFAULT_HASH_SIZE,
+                          ( lp_winbind_offline_logon() 
+                            ? TDB_DEFAULT 
+                            : TDB_DEFAULT | TDB_CLEAR_IF_FIRST ),
+                          O_RDWR|O_CREAT, 
+                          0600);
+       if (!tdb) {
+               DEBUG(0, ("winbindd_validate_cache: "
+                         "error opening/initializing tdb\n"));
+               goto done;
+       }
+       tdb_close(tdb);
+
        ret = tdb_validate(lock_path("winbindd_cache.tdb"),
                           cache_traverse_validate_fn);
 
+done:
        DEBUG(10, ("winbindd_validate_cache: restoring panic function\n"));
        smb_panic_fn = smb_panic;
        return ret;