summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-09-27 05:46:07 -0700
committerJeremy Allison <jra@samba.org>2010-09-27 17:18:54 -0700
commitf98d217514433cd06887f8c0217a7835392f0375 (patch)
treec7bf61f24c3381c9f7996a0a19045d36af3f0783 /source3/lib
parent66761423474edc9736a8a6eae6feaaf958d89d0e (diff)
downloadsamba-f98d217514433cd06887f8c0217a7835392f0375.tar.gz
samba-f98d217514433cd06887f8c0217a7835392f0375.tar.bz2
samba-f98d217514433cd06887f8c0217a7835392f0375.zip
Change to using TDB_INCOMPATIBLE_HASH (the jenkins hash) on all
TDB_CLEAR_IF_FIRST tdb's. For tdb's like gencache where we open without CLEAR_IF_FIRST and then with CLEAR_IF_FIRST if corrupt this is still safe to use as if opening an existing tdb the new hash will be ignored - it's only used on creating a new tdb not opening an old one. Jeremy.
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/conn_tdb.c2
-rw-r--r--source3/lib/g_lock.c2
-rw-r--r--source3/lib/gencache.c8
-rw-r--r--source3/lib/messages_local.c4
-rw-r--r--source3/lib/serverid.c4
-rw-r--r--source3/lib/sessionid_tdb.c2
6 files changed, 11 insertions, 11 deletions
diff --git a/source3/lib/conn_tdb.c b/source3/lib/conn_tdb.c
index 75841cce65..e4c5e72014 100644
--- a/source3/lib/conn_tdb.c
+++ b/source3/lib/conn_tdb.c
@@ -33,7 +33,7 @@ static struct db_context *connections_db_ctx(bool rw)
open_flags = rw ? (O_RDWR|O_CREAT) : O_RDONLY;
db_ctx = db_open(NULL, lock_path("connections.tdb"), 0,
- TDB_CLEAR_IF_FIRST|TDB_DEFAULT, open_flags, 0644);
+ TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH|TDB_DEFAULT, open_flags, 0644);
return db_ctx;
}
diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c
index edb77869cc..2c065029e7 100644
--- a/source3/lib/g_lock.c
+++ b/source3/lib/g_lock.c
@@ -53,7 +53,7 @@ struct g_lock_ctx *g_lock_ctx_init(TALLOC_CTX *mem_ctx,
result->msg = msg;
result->db = db_open(result, lock_path("g_lock.tdb"), 0,
- TDB_CLEAR_IF_FIRST, O_RDWR|O_CREAT, 0700);
+ TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT, 0700);
if (result->db == NULL) {
DEBUG(1, ("g_lock_init: Could not open g_lock.tdb"));
TALLOC_FREE(result);
diff --git a/source3/lib/gencache.c b/source3/lib/gencache.c
index a78e60a153..8d2ddb2387 100644
--- a/source3/lib/gencache.c
+++ b/source3/lib/gencache.c
@@ -65,7 +65,7 @@ static bool gencache_init(void)
DEBUG(5, ("Opening cache file at %s\n", cache_fname));
again:
- cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT, open_flags, 0644);
+ cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT|TDB_INCOMPATIBLE_HASH, open_flags, 0644);
if (cache) {
int ret;
ret = tdb_check(cache, NULL, NULL);
@@ -80,7 +80,7 @@ again:
first_try = false;
DEBUG(0, ("gencache_init: tdb_check(%s) failed - retry after CLEAR_IF_FIRST\n",
cache_fname));
- cache = tdb_open_log(cache_fname, 0, TDB_CLEAR_IF_FIRST, open_flags, 0644);
+ cache = tdb_open_log(cache_fname, 0, TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, open_flags, 0644);
if (cache) {
tdb_close(cache);
cache = NULL;
@@ -91,7 +91,7 @@ again:
if (!cache && (errno == EACCES)) {
open_flags = O_RDONLY;
- cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT, open_flags,
+ cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT|TDB_INCOMPATIBLE_HASH, open_flags,
0644);
if (cache) {
DEBUG(5, ("gencache_init: Opening cache file %s read-only.\n", cache_fname));
@@ -107,7 +107,7 @@ again:
DEBUG(5, ("Opening cache file at %s\n", cache_fname));
- cache_notrans = tdb_open_log(cache_fname, 0, TDB_CLEAR_IF_FIRST,
+ cache_notrans = tdb_open_log(cache_fname, 0, TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH,
open_flags, 0644);
if (cache_notrans == NULL) {
DEBUG(5, ("Opening %s failed: %s\n", cache_fname,
diff --git a/source3/lib/messages_local.c b/source3/lib/messages_local.c
index 542d49e2dd..bad577cc35 100644
--- a/source3/lib/messages_local.c
+++ b/source3/lib/messages_local.c
@@ -103,7 +103,7 @@ NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx,
ctx->msg_ctx = msg_ctx;
ctx->tdb = tdb_wrap_open(ctx, lock_path("messages.tdb"), 0,
- TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE,
+ TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE|TDB_INCOMPATIBLE_HASH,
O_RDWR|O_CREAT,0600);
if (!ctx->tdb) {
@@ -144,7 +144,7 @@ bool messaging_tdb_parent_init(TALLOC_CTX *mem_ctx)
*/
db = tdb_wrap_open(mem_ctx, lock_path("messages.tdb"), 0,
- TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE,
+ TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_VOLATILE|TDB_INCOMPATIBLE_HASH,
O_RDWR|O_CREAT,0600);
if (db == NULL) {
DEBUG(1, ("could not open messaging.tdb: %s\n",
diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c
index f0c61aeb82..dd02e51a21 100644
--- a/source3/lib/serverid.c
+++ b/source3/lib/serverid.c
@@ -44,7 +44,7 @@ bool serverid_parent_init(TALLOC_CTX *mem_ctx)
*/
db = tdb_wrap_open(mem_ctx, lock_path("serverid.tdb"),
- 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST, O_RDWR|O_CREAT,
+ 0, TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT,
0644);
if (db == NULL) {
DEBUG(1, ("could not open serverid.tdb: %s\n",
@@ -62,7 +62,7 @@ static struct db_context *serverid_db(void)
return db;
}
db = db_open(NULL, lock_path("serverid.tdb"), 0,
- TDB_DEFAULT|TDB_CLEAR_IF_FIRST, O_RDWR|O_CREAT, 0644);
+ TDB_DEFAULT|TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, O_RDWR|O_CREAT, 0644);
return db;
}
diff --git a/source3/lib/sessionid_tdb.c b/source3/lib/sessionid_tdb.c
index 1515728bd9..fe67681d18 100644
--- a/source3/lib/sessionid_tdb.c
+++ b/source3/lib/sessionid_tdb.c
@@ -29,7 +29,7 @@ static struct db_context *session_db_ctx(void)
}
session_db_ctx_ptr = db_open(NULL, lock_path("sessionid.tdb"), 0,
- TDB_CLEAR_IF_FIRST|TDB_DEFAULT,
+ TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_INCOMPATIBLE_HASH,
O_RDWR | O_CREAT, 0644);
return session_db_ctx_ptr;
}