diff options
Diffstat (limited to 'source3/tdb/common')
-rw-r--r-- | source3/tdb/common/dump.c | 11 | ||||
-rw-r--r-- | source3/tdb/common/tdbback.c | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/source3/tdb/common/dump.c b/source3/tdb/common/dump.c index 577f23aac6..70382ca949 100644 --- a/source3/tdb/common/dump.c +++ b/source3/tdb/common/dump.c @@ -28,7 +28,8 @@ #include "tdb_private.h" -static tdb_off_t tdb_dump_record(struct tdb_context *tdb, tdb_off_t offset) +static tdb_off_t tdb_dump_record(struct tdb_context *tdb, int hash, + tdb_off_t offset) { struct list_struct rec; tdb_off_t tailer_ofs, tailer; @@ -39,8 +40,10 @@ static tdb_off_t tdb_dump_record(struct tdb_context *tdb, tdb_off_t offset) return 0; } - printf(" rec: offset=0x%08x next=0x%08x rec_len=%d key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n", - offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, rec.full_hash, rec.magic); + printf(" rec: hash=%d, offset=0x%08x next=0x%08x rec_len=%d " + "key_len=%d data_len=%d full_hash=0x%x magic=0x%x\n", + hash, offset, rec.next, rec.rec_len, rec.key_len, rec.data_len, + rec.full_hash, rec.magic); tailer_ofs = offset + sizeof(rec) + rec.rec_len - sizeof(tdb_off_t); @@ -72,7 +75,7 @@ static int tdb_dump_chain(struct tdb_context *tdb, int i) printf("hash=%d\n", i); while (rec_ptr) { - rec_ptr = tdb_dump_record(tdb, rec_ptr); + rec_ptr = tdb_dump_record(tdb, i, rec_ptr); } return tdb_unlock(tdb, i, F_WRLCK); diff --git a/source3/tdb/common/tdbback.c b/source3/tdb/common/tdbback.c index 4698e6016b..28de85c29f 100644 --- a/source3/tdb/common/tdbback.c +++ b/source3/tdb/common/tdbback.c @@ -95,7 +95,7 @@ static int test_fn(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state) only doing the backup if its OK this function is also used for restore */ -int backup_tdb(const char *old_name, const char *new_name) +int backup_tdb(const char *old_name, const char *new_name, int hash_size) { TDB_CONTEXT *tdb; TDB_CONTEXT *tdb_new; @@ -122,7 +122,8 @@ int backup_tdb(const char *old_name, const char *new_name) /* create the new tdb */ unlink(tmp_name); - tdb_new = tdb_open(tmp_name, tdb_hash_size(tdb), + tdb_new = tdb_open(tmp_name, + hash_size ? hash_size : tdb_hash_size(tdb), TDB_DEFAULT, O_RDWR|O_CREAT|O_EXCL, st.st_mode & 0777); if (!tdb_new) { @@ -217,7 +218,7 @@ int verify_tdb(const char *fname, const char *bak_name) /* count is < 0 means an error */ if (count < 0) { printf("restoring %s\n", fname); - return backup_tdb(bak_name, fname); + return backup_tdb(bak_name, fname, 0); } printf("%s : %d records\n", fname, count); |