Author: obnox Date: 2007-06-26 13:45:07 +0000 (Tue, 26 Jun 2007) New Revision: 23610
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23610 Log: Move some winbindd_cache specific flags and actions back to winbindd_cache.c. The generic mechanism should open the cache tdb readonly and with default flags. Michael Modified: branches/SAMBA_3_0/source/lib/util_tdb.c branches/SAMBA_3_0/source/nsswitch/winbindd_cache.c branches/SAMBA_3_0_26/source/lib/util_tdb.c branches/SAMBA_3_0_26/source/nsswitch/winbindd_cache.c Changeset: Modified: branches/SAMBA_3_0/source/lib/util_tdb.c =================================================================== --- branches/SAMBA_3_0/source/lib/util_tdb.c 2007-06-26 10:19:06 UTC (rev 23609) +++ branches/SAMBA_3_0/source/lib/util_tdb.c 2007-06-26 13:45:07 UTC (rev 23610) @@ -1005,12 +1005,7 @@ 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 @@ return ret; } - Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cache.c =================================================================== --- branches/SAMBA_3_0/source/nsswitch/winbindd_cache.c 2007-06-26 10:19:06 UTC (rev 23609) +++ branches/SAMBA_3_0/source/nsswitch/winbindd_cache.c 2007-06-26 13:45:07 UTC (rev 23610) @@ -3279,14 +3279,32 @@ 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; Modified: branches/SAMBA_3_0_26/source/lib/util_tdb.c =================================================================== --- branches/SAMBA_3_0_26/source/lib/util_tdb.c 2007-06-26 10:19:06 UTC (rev 23609) +++ branches/SAMBA_3_0_26/source/lib/util_tdb.c 2007-06-26 13:45:07 UTC (rev 23610) @@ -1005,12 +1005,7 @@ 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 @@ return ret; } - Modified: branches/SAMBA_3_0_26/source/nsswitch/winbindd_cache.c =================================================================== --- branches/SAMBA_3_0_26/source/nsswitch/winbindd_cache.c 2007-06-26 10:19:06 UTC (rev 23609) +++ branches/SAMBA_3_0_26/source/nsswitch/winbindd_cache.c 2007-06-26 13:45:07 UTC (rev 23610) @@ -3279,14 +3279,32 @@ 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;