From 61bf43f5d17c9ac3fc9a36cab74a81f26ac97ccb Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 20 Jun 2011 16:58:15 +0930 Subject: lib/tdb_compat: header for tdb1 vs tdb2. TDB2's API is slightly different from TDB1. In particular, all functions return 0 (TDB_SUCCESS) or a negative error number, rather than -1 or tdb_null and storing the error in tdb_error() (though TDB2 does that as well). The simplest fix is to replace all the different functions with a wrapper, and that is done here. Compatibility functions: tdb_null: not used as an error return, so not defined by tdb2. tdb_fetch_compat: TDB1-style data-returning tdb_fetch. tdb_firstkey_compat: TDB1-style data-returning tdb_firstkey tdb_nextkey_compat: TDB1-style data-returning tdb_nextkey, with TDB2-style free of old key. tdb_errorstr_compat: TDB1-style tdb_errorstr() which takes TDB instead of ecode. TDB_CONTEXT: TDB1-style typedef for struct tdb_context. tdb_open_compat: Simplified open routine which takes log function, sets TDB_ALLOW_NESTING as Samba expects, and adds TDB_CLEAR_IF_FIRST support. Things defined away in TDB2 wrappers: tdb_traverse_read: TDB2's tdb_traverse only uses read-locks anyway. tdb_reopen/tdb_reopen_all: TDB2 detects this error itself. TDB_INCOMPATIBLE_HASH: TDB2 uses the Jenkins hash already. TDB_VOLATILE: TDB2 shouldn't have freelist scaling issues. Signed-off-by: Rusty Russell --- lib/tdb_compat/wscript | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lib/tdb_compat/wscript (limited to 'lib/tdb_compat/wscript') diff --git a/lib/tdb_compat/wscript b/lib/tdb_compat/wscript new file mode 100644 index 0000000000..14be4e7fe0 --- /dev/null +++ b/lib/tdb_compat/wscript @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +def build(bld): + bld.SAMBA_LIBRARY('tdb_compat', + source='tdb_compat.c', + deps='replace tdb', + private_library=True) -- cgit