lib/util Move source3 tdb_wrap_open() into the common code.
authorAndrew Bartlett <abartlet@samba.org>
Wed, 4 May 2011 00:28:15 +0000 (10:28 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 4 May 2011 05:50:47 +0000 (15:50 +1000)
This #if _SAMBA_BUILD == 3 is very unfortunate, as it means that in
the top level build, these options are not available for these
databases.  However, having two different tdb_wrap lists is a worse
fate, so this will do for now.

Andrew Bartlett

26 files changed:
lib/util/tdb_wrap.c [new file with mode: 0644]
lib/util/tdb_wrap.h [moved from source4/lib/tdb_wrap.h with 96% similarity]
lib/util/util_tdb.h
lib/util/wscript_build
libcli/auth/schannel_state_tdb.c
source3/Makefile.in
source3/include/util_tdb.h
source3/lib/dbwrap_tdb.c
source3/lib/messages_local.c
source3/lib/server_mutex.c
source3/lib/serverid.c
source3/lib/util_tdb.c
source3/smbd/notify_internal.c
source3/wscript_build
source4/cluster/local.c
source4/lib/messaging/messaging.c
source4/lib/tdb_wrap.c [deleted file]
source4/lib/wscript_build
source4/ntvfs/common/brlock_tdb.c
source4/ntvfs/common/notify.c
source4/ntvfs/common/opendb_tdb.c
source4/ntvfs/posix/python/pyxattr_tdb.c
source4/ntvfs/posix/vfs_posix.c
source4/ntvfs/posix/xattr_tdb.c
source4/param/secrets.c
source4/torture/local/dbspeed.c

diff --git a/lib/util/tdb_wrap.c b/lib/util/tdb_wrap.c
new file mode 100644 (file)
index 0000000..c9562c6
--- /dev/null
@@ -0,0 +1,194 @@
+/* 
+   Unix SMB/CIFS implementation.
+   TDB wrap functions
+
+   Copyright (C) Andrew Tridgell 2004
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include <tdb.h>
+#include "lib/util/dlinklist.h"
+#include "lib/util/tdb_wrap.h"
+#include <tdb.h>
+
+/*
+ Log tdb messages via DEBUG().
+*/
+static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
+                        const char *format, ...) PRINTF_ATTRIBUTE(3,4);
+
+static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
+                        const char *format, ...)
+{
+       va_list ap;
+       char *ptr = NULL;
+       int debuglevel = 0;
+       int ret;
+
+       switch (level) {
+       case TDB_DEBUG_FATAL:
+               debuglevel = 0;
+               break;
+       case TDB_DEBUG_ERROR:
+               debuglevel = 1;
+               break;
+       case TDB_DEBUG_WARNING:
+               debuglevel = 2;
+               break;
+       case TDB_DEBUG_TRACE:
+               debuglevel = 5;
+               break;
+       default:
+               debuglevel = 0;
+       }               
+
+       va_start(ap, format);
+       ret = vasprintf(&ptr, format, ap);
+       va_end(ap);
+
+       if (ret != -1) {
+               const char *name = tdb_name(tdb);
+               DEBUG(debuglevel, ("tdb(%s): %s", name ? name : "unnamed", ptr));
+               free(ptr);
+       }
+}
+
+struct tdb_wrap_private {
+       struct tdb_context *tdb;
+       const char *name;
+       struct tdb_wrap_private *next, *prev;
+};
+
+static struct tdb_wrap_private *tdb_list;
+
+/* destroy the last connection to a tdb */
+static int tdb_wrap_private_destructor(struct tdb_wrap_private *w)
+{
+       tdb_close(w->tdb);
+       DLIST_REMOVE(tdb_list, w);
+       return 0;
+}                               
+
+static struct tdb_wrap_private *tdb_wrap_private_open(TALLOC_CTX *mem_ctx,
+                                                     const char *name,
+                                                     int hash_size,
+                                                     int tdb_flags,
+                                                     int open_flags,
+                                                     mode_t mode)
+{
+       struct tdb_wrap_private *result;
+       struct tdb_logging_context log_ctx;
+
+       result = talloc(mem_ctx, struct tdb_wrap_private);
+       if (result == NULL) {
+               return NULL;
+       }
+       result->name = talloc_strdup(result, name);
+       if (result->name == NULL) {
+               goto fail;
+       }
+
+       log_ctx.log_fn = tdb_wrap_log;
+
+#if _SAMBA_BUILD_ == 3 
+       /* This #if _SAMBA_BUILD == 3 is very unfortunate, as it means
+        * that in the top level build, these options are not
+        * available for these databases.  However, having two
+        * different tdb_wrap lists is a worse fate, so this will do
+        * for now */
+
+       if (!lp_use_mmap()) {
+               tdb_flags |= TDB_NOMMAP;
+       }
+
+       if ((hash_size == 0) && (name != NULL)) {
+               const char *base;
+               base = strrchr_m(name, '/');
+
+               if (base != NULL) {
+                       base += 1;
+               } else {
+                       base = name;
+               }
+               hash_size = lp_parm_int(-1, "tdb_hashsize", base, 0);
+       }
+#endif
+
+       result->tdb = tdb_open_ex(name, hash_size, tdb_flags,
+                                 open_flags, mode, &log_ctx, NULL);
+       if (result->tdb == NULL) {
+               goto fail;
+       }
+       talloc_set_destructor(result, tdb_wrap_private_destructor);
+       DLIST_ADD(tdb_list, result);
+       return result;
+
+fail:
+       TALLOC_FREE(result);
+       return NULL;
+}
+
+/*
+  wrapped connection to a tdb database
+  to close just talloc_free() the tdb_wrap pointer
+ */
+struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
+                              const char *name, int hash_size, int tdb_flags,
+                              int open_flags, mode_t mode)
+{
+       struct tdb_wrap *result;
+       struct tdb_wrap_private *w;
+
+       result = talloc(mem_ctx, struct tdb_wrap);
+       if (result == NULL) {
+               return NULL;
+       }
+
+       for (w=tdb_list;w;w=w->next) {
+               if (strcmp(name, w->name) == 0) {
+                       break;
+               }
+       }
+
+       if (w == NULL) {
+               w = tdb_wrap_private_open(result, name, hash_size, tdb_flags,
+                                         open_flags, mode);
+       } else {
+               /*
+                * Correctly use talloc_reference: The tdb will be
+                * closed when "w" is being freed. The caller never
+                * sees "w", so an incorrect use of talloc_free(w)
+                * instead of calling talloc_unlink is not possible.
+                * To avoid having to refcount ourselves, "w" will
+                * have multiple parents that hang off all the
+                * tdb_wrap's being returned from here. Those parents
+                * can be freed without problem.
+                */
+               if (talloc_reference(result, w) == NULL) {
+                       goto fail;
+               }
+       }
+       if (w == NULL) {
+               goto fail;
+       }
+       result->tdb = w->tdb;
+       return result;
+fail:
+       TALLOC_FREE(result);
+       return NULL;
+}
+
similarity index 96%
rename from source4/lib/tdb_wrap.h
rename to lib/util/tdb_wrap.h
index 94035c1bea67cd67c58b6ae586e240d9d201e4f0..1be2bb059db0695428da2a53e1ea3b5a5be17553 100644 (file)
@@ -33,9 +33,6 @@
 
 struct tdb_wrap {
        struct tdb_context *tdb;
-
-       const char *name;
-       struct tdb_wrap *next, *prev;
 };
 
 struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
index d2f6648462af04456beed061b279ef08992fb3f1..c11a347e079e9316bb24cd15fec202a59578e124 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _____LIB_UTIL_UTIL_TDB_H__
 #define _____LIB_UTIL_UTIL_TDB_H__
 
-
 /***************************************************************
  Make a TDB_DATA and keep the const warning in one place
 ****************************************************************/
index abdedb57759631b7f9db1a981da10c83d617e7dd..59a2782b6096ab54384bb1b212229013e966a37c 100755 (executable)
@@ -108,3 +108,13 @@ bld.SAMBA_SUBSYSTEM('UTIL_PW',
        local_include=False,
        public_deps='talloc'
        )
+
+
+bld.SAMBA_LIBRARY('tdb-wrap',
+                  source='tdb_wrap.c',
+                  deps='tdb talloc samba-util',
+                  public_headers='tdb_wrap.h',
+                  private_library=True,
+                  local_include=False
+                  )
+
index c332bae8baa29e2c0db3ac255cf8dfaf120acb2c..ca35a11abe09f6420eec33c73447caa6b3b78e9e 100644 (file)
@@ -27,9 +27,7 @@
 #include "../lib/util/util_tdb.h"
 #include "../libcli/auth/schannel.h"
 #include "../librpc/gen_ndr/ndr_schannel.h"
-#if _SAMBA_BUILD_ == 4
-#include "tdb_wrap.h"
-#endif
+#include "lib/util/tdb_wrap.h"
 
 #define SECRETS_SCHANNEL_STATE "SECRETS/SCHANNEL"
 
index 9b4518089fe864bcf090acbaa91e546bad5bbc1d..0c30ceb515a97789ac5af471657bb2696cb3aba1 100644 (file)
@@ -272,6 +272,7 @@ EXTRA_ALL_TARGETS = @EXTRA_ALL_TARGETS@
 ######################################################################
 
 TDB_LIB_OBJ = lib/util_tdb.o ../lib/util/util_tdb.o \
+         ../lib/util/tdb_wrap.o \
          lib/dbwrap.o lib/dbwrap_tdb.o \
          lib/dbwrap_ctdb.o \
          lib/g_lock.o \
index 3bdb6977d87f7a8e0b830615694d3bab0cbad78a..a6144ba44dec3fdf2f53967ee4ab7c50ce11a4bc 100644 (file)
 #include "../libcli/util/ntstatus.h" /* for map_nt_error_from_tdb() */
 #include "../../lib/util/util_tdb.h"
 
-struct tdb_wrap {
-       struct tdb_context *tdb;
-};
-
 int tdb_chainlock_with_timeout( struct tdb_context *tdb, TDB_DATA key,
                                unsigned int timeout);
 int tdb_lock_bystring_with_timeout(struct tdb_context *tdb, const char *keyval,
@@ -51,10 +47,6 @@ bool tdb_pack_append(TALLOC_CTX *mem_ctx, uint8 **buf, size_t *len,
 struct tdb_context *tdb_open_log(const char *name, int hash_size,
                                 int tdb_flags, int open_flags, mode_t mode);
 
-struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
-                              const char *name, int hash_size, int tdb_flags,
-                              int open_flags, mode_t mode);
-
 NTSTATUS map_nt_error_from_tdb(enum TDB_ERROR err);
 
 int tdb_data_cmp(TDB_DATA t1, TDB_DATA t2);
index 4cdc1930eed2dcea2eb0598a6b687aa64540a3fb..98fd255ece41da28e7b102817d9bf768a5042e6e 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "includes.h"
 #include "dbwrap.h"
+#include "lib/util/tdb_wrap.h"
 
 struct db_tdb_ctx {
        struct tdb_wrap *wtdb;
index 18074cdd92554210be7416e63e6a1350bccf1b6c..f82b107bcc5559877c508e91204d02b42dce20c0 100644 (file)
@@ -45,6 +45,7 @@
 #include "includes.h"
 #include "system/filesys.h"
 #include "messages.h"
+#include "lib/util/tdb_wrap.h"
 
 struct messaging_tdb_context {
        struct messaging_context *msg_ctx;
index 1ba9d6a65be9104edcee4bd86657572b7d951b2b..9d38907a20c40fe78bfc4ff633cc3772aea5774a 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "includes.h"
 #include "system/filesys.h"
+#include "lib/util/tdb_wrap.h"
 
 /* For reasons known only to MS, many of their NT/Win2k versions
    need serialised access only.  Two connections at the same time
index f13c66e2c912c4eab66cc252a6ff5eadca80a08f..7105e179d78433c3e2a4a55ac238728667cb3338 100644 (file)
@@ -21,6 +21,7 @@
 #include "system/filesys.h"
 #include "serverid.h"
 #include "dbwrap.h"
+#include "lib/util/tdb_wrap.h"
 
 struct serverid_key {
        pid_t pid;
index a9290ab94aee7c0826684242b8531ebb50b2a856..2aff935bdf0fbecd2eaabc49ff9fef0f949bf385 100644 (file)
@@ -482,165 +482,6 @@ int tdb_trans_delete(struct tdb_context *tdb, TDB_DATA key)
        return res;
 }
 
-/*
- Log tdb messages via DEBUG().
-*/
-static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
-                        const char *format, ...) PRINTF_ATTRIBUTE(3,4);
-
-static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
-                        const char *format, ...)
-{
-       va_list ap;
-       char *ptr = NULL;
-       int debuglevel = 0;
-       int ret;
-
-       switch (level) {
-       case TDB_DEBUG_FATAL:
-               debuglevel = 0;
-               break;
-       case TDB_DEBUG_ERROR:
-               debuglevel = 1;
-               break;
-       case TDB_DEBUG_WARNING:
-               debuglevel = 2;
-               break;
-       case TDB_DEBUG_TRACE:
-               debuglevel = 5;
-               break;
-       default:
-               debuglevel = 0;
-       }               
-
-       va_start(ap, format);
-       ret = vasprintf(&ptr, format, ap);
-       va_end(ap);
-
-       if (ret != -1) {
-               const char *name = tdb_name(tdb);
-               DEBUG(debuglevel, ("tdb(%s): %s", name ? name : "unnamed", ptr));
-               free(ptr);
-       }
-}
-
-struct tdb_wrap_private {
-       struct tdb_context *tdb;
-       const char *name;
-       struct tdb_wrap_private *next, *prev;
-};
-
-static struct tdb_wrap_private *tdb_list;
-
-/* destroy the last connection to a tdb */
-static int tdb_wrap_private_destructor(struct tdb_wrap_private *w)
-{
-       tdb_close(w->tdb);
-       DLIST_REMOVE(tdb_list, w);
-       return 0;
-}                               
-
-static struct tdb_wrap_private *tdb_wrap_private_open(TALLOC_CTX *mem_ctx,
-                                                     const char *name,
-                                                     int hash_size,
-                                                     int tdb_flags,
-                                                     int open_flags,
-                                                     mode_t mode)
-{
-       struct tdb_wrap_private *result;
-       struct tdb_logging_context log_ctx;
-
-       result = talloc(mem_ctx, struct tdb_wrap_private);
-       if (result == NULL) {
-               return NULL;
-       }
-       result->name = talloc_strdup(result, name);
-       if (result->name == NULL) {
-               goto fail;
-       }
-
-       log_ctx.log_fn = tdb_wrap_log;
-
-       if (!lp_use_mmap()) {
-               tdb_flags |= TDB_NOMMAP;
-       }
-
-       if ((hash_size == 0) && (name != NULL)) {
-               const char *base;
-               base = strrchr_m(name, '/');
-
-               if (base != NULL) {
-                       base += 1;
-               } else {
-                       base = name;
-               }
-               hash_size = lp_parm_int(-1, "tdb_hashsize", base, 0);
-       }
-
-       result->tdb = tdb_open_ex(name, hash_size, tdb_flags,
-                                 open_flags, mode, &log_ctx, NULL);
-       if (result->tdb == NULL) {
-               goto fail;
-       }
-       talloc_set_destructor(result, tdb_wrap_private_destructor);
-       DLIST_ADD(tdb_list, result);
-       return result;
-
-fail:
-       TALLOC_FREE(result);
-       return NULL;
-}
-
-/*
-  wrapped connection to a tdb database
-  to close just talloc_free() the tdb_wrap pointer
- */
-struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
-                              const char *name, int hash_size, int tdb_flags,
-                              int open_flags, mode_t mode)
-{
-       struct tdb_wrap *result;
-       struct tdb_wrap_private *w;
-
-       result = talloc(mem_ctx, struct tdb_wrap);
-       if (result == NULL) {
-               return NULL;
-       }
-
-       for (w=tdb_list;w;w=w->next) {
-               if (strcmp(name, w->name) == 0) {
-                       break;
-               }
-       }
-
-       if (w == NULL) {
-               w = tdb_wrap_private_open(result, name, hash_size, tdb_flags,
-                                         open_flags, mode);
-       } else {
-               /*
-                * Correctly use talloc_reference: The tdb will be
-                * closed when "w" is being freed. The caller never
-                * sees "w", so an incorrect use of talloc_free(w)
-                * instead of calling talloc_unlink is not possible.
-                * To avoid having to refcount ourselves, "w" will
-                * have multiple parents that hang off all the
-                * tdb_wrap's being returned from here. Those parents
-                * can be freed without problem.
-                */
-               if (talloc_reference(result, w) == NULL) {
-                       goto fail;
-               }
-       }
-       if (w == NULL) {
-               goto fail;
-       }
-       result->tdb = w->tdb;
-       return result;
-fail:
-       TALLOC_FREE(result);
-       return NULL;
-}
-
 NTSTATUS map_nt_error_from_tdb(enum TDB_ERROR err)
 {
        NTSTATUS result = NT_STATUS_INTERNAL_ERROR;
index a8eaf793921aacf4c060b964e19e61773f10bfc7..31ff3475d55d606f21bc9e1f57c9e376e54a65ca 100644 (file)
@@ -29,6 +29,7 @@
 #include "dbwrap.h"
 #include "smbd/smbd.h"
 #include "messages.h"
+#include "lib/util/tdb_wrap.h"
 
 struct notify_context {
        struct db_context *db_recursive;
index fbc6693346121fcef0bc172c59dc72f9c43a5e59..7553c8bc8a8ce8f00c94bf6c1ef0762d1bfb277e 100755 (executable)
@@ -960,6 +960,7 @@ bld.SAMBA3_SUBSYSTEM('ndr-util',
 
 bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
                     source='lib/util_tdb.c',
+                     deps='tdb-wrap',
                     vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('CHARSET3',
@@ -1314,7 +1315,6 @@ bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
 
 if not bld.env.toplevel_build:
     bld.SAMBA3_SUBSYSTEM('POPT_SAMBA', source='', deps='POPT_SAMBA3')
-    bld.SAMBA3_SUBSYSTEM('tdb-wrap', source='', deps='tdb-wrap3')
     bld.SAMBA3_SUBSYSTEM('errors', source='', deps='errors3')
     bld.SAMBA3_SUBSYSTEM('samba-util', source='', deps='DYNCONFIG')
     bld.SAMBA3_SUBSYSTEM('ldb', source='', deps='ldb3')
index b6ec7644d3b8468e9e0f19a9b0a23f1536cab87b..9977a2e648ddff51124f9ee23ac7420c7e4f9398 100644 (file)
@@ -23,7 +23,7 @@
 #include "cluster/cluster.h"
 #include "cluster/cluster_private.h"
 #include <tdb.h>
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "system/filesys.h"
 #include "param/param.h"
 #include "librpc/gen_ndr/server_id4.h"
index 1b0fc1291c6e69e051532f43ed232a50c5b21ae4..3a330d5794f31feec838a229faef7fb13c9e4fe1 100644 (file)
@@ -27,7 +27,7 @@
 #include "lib/socket/socket.h"
 #include "librpc/gen_ndr/ndr_irpc.h"
 #include "lib/messaging/irpc.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "../lib/util/unix_privs.h"
 #include "librpc/rpc/dcerpc.h"
 #include <tdb.h>
diff --git a/source4/lib/tdb_wrap.c b/source4/lib/tdb_wrap.c
deleted file mode 100644 (file)
index 97294e1..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   TDB wrap functions
-
-   Copyright (C) Andrew Tridgell 2004
-   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include <tdb.h>
-#include "../lib/util/dlinklist.h"
-#include "tdb_wrap.h"
-#include <tdb.h>
-
-static struct tdb_wrap *tdb_list;
-
-/* destroy the last connection to a tdb */
-static int tdb_wrap_destructor(struct tdb_wrap *w)
-{
-       tdb_close(w->tdb);
-       DLIST_REMOVE(tdb_list, w);
-       return 0;
-}                               
-
-/*
- Log tdb messages via DEBUG().
-*/
-static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
-                        const char *format, ...) PRINTF_ATTRIBUTE(3,4);
-
-static void tdb_wrap_log(TDB_CONTEXT *tdb, enum tdb_debug_level level, 
-                        const char *format, ...)
-{
-       va_list ap;
-       char *ptr = NULL;
-       int dl;
-
-       va_start(ap, format);
-       vasprintf(&ptr, format, ap);
-       va_end(ap);
-       
-       switch (level) {
-       case TDB_DEBUG_FATAL:
-               dl = 0;
-               break;
-       case TDB_DEBUG_ERROR:
-               dl = 1;
-               break;
-       case TDB_DEBUG_WARNING:
-               dl = 2;
-               break;
-       case TDB_DEBUG_TRACE:
-               dl = 5;
-               break;
-       default:
-               dl = 0;
-       }               
-
-       if (ptr != NULL) {
-               const char *name = tdb_name(tdb);
-               DEBUG(dl, ("tdb(%s): %s", name ? name : "unnamed", ptr));
-               free(ptr);
-       }
-}
-
-
-/*
-  wrapped connection to a tdb database
-  to close just talloc_free() the tdb_wrap pointer
- */
-struct tdb_wrap *tdb_wrap_open(TALLOC_CTX *mem_ctx,
-                              const char *name, int hash_size, int tdb_flags,
-                              int open_flags, mode_t mode)
-{
-       struct tdb_wrap *w;
-       struct tdb_logging_context log_ctx;
-       log_ctx.log_fn = tdb_wrap_log;
-
-       for (w=tdb_list;w;w=w->next) {
-               if (strcmp(name, w->name) == 0) {
-                       return talloc_reference(mem_ctx, w);
-               }
-       }
-
-       w = talloc(mem_ctx, struct tdb_wrap);
-       if (w == NULL) {
-               return NULL;
-       }
-
-       w->name = talloc_strdup(w, name);
-
-       w->tdb = tdb_open_ex(name, hash_size, tdb_flags, 
-                            open_flags, mode, &log_ctx, NULL);
-       if (w->tdb == NULL) {
-               talloc_free(w);
-               return NULL;
-       }
-
-       talloc_set_destructor(w, tdb_wrap_destructor);
-
-       DLIST_ADD(tdb_list, w);
-
-       return w;
-}
index 872259d6700a46c0b6497e3b0d5b0f700932da1e..cf60820da7170aa5fb7995ee4bc5494f6f5329dc 100644 (file)
@@ -5,12 +5,3 @@ bld.SAMBA_SUBSYSTEM('GENCACHE',
         enabled=False,
        deps='tdb-wrap'
        )
-
-
-bld.SAMBA_LIBRARY('tdb-wrap',
-                  source='tdb_wrap.c',
-                  deps='tdb talloc samba-util',
-                  public_headers='tdb_wrap.h',
-                  private_library=True
-                  )
-
index 630b4072dbccd7c2b9640562190e5d13ae8fab8f..ab4d91c4db635b2c461c4d33ebbe3d4236673091 100644 (file)
@@ -28,7 +28,7 @@
 #include "system/filesys.h"
 #include <tdb.h>
 #include "messaging/messaging.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "lib/messaging/irpc.h"
 #include "libcli/libcli.h"
 #include "cluster/cluster.h"
index d05f04707a69c27a0aff52fddc2b3764bce30f4a..7260759341c5b2b6fc6566634187d93c53cc5150 100644 (file)
@@ -28,7 +28,7 @@
 #include <tdb.h>
 #include "../lib/util/util_tdb.h"
 #include "messaging/messaging.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "lib/messaging/irpc.h"
 #include "librpc/gen_ndr/ndr_s4_notify.h"
 #include "../lib/util/dlinklist.h"
index 536d17f9c04cb77e6396cf0d1a60cb8bbc62fdb1..7c2707f7c68fa5803fe3a9cc591d905c43fc02a4 100644 (file)
@@ -42,7 +42,7 @@
 #include "system/filesys.h"
 #include <tdb.h>
 #include "messaging/messaging.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "lib/messaging/irpc.h"
 #include "librpc/gen_ndr/ndr_opendb.h"
 #include "ntvfs/ntvfs.h"
index 5e72ac9dde52a539315a32732d34441c64376afd..34b449f70f1403ef44c934d635c22bac3a5f3d39 100644 (file)
@@ -21,7 +21,7 @@
 #include <Python.h>
 #include "includes.h"
 #include <tdb.h>
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "librpc/ndr/libndr.h"
 #include "lib/util/wrap_xattr.h"
 #include "ntvfs/posix/vfs_posix.h"
index ca1d1633279e22455f95d6727c3d923c74b46eb6..b79ae957f303c7af6d67f5823ff70a9cd1292857 100644 (file)
@@ -27,7 +27,7 @@
 #include "vfs_posix.h"
 #include "librpc/gen_ndr/security.h"
 #include <tdb.h>
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "libcli/security/security.h"
 #include "lib/events/events.h"
 #include "param/param.h"
index de7c83677a4891a107874dfdd9d455d1dcfde51b..2d6f1d94d00b24cb7242efb96c5fd6ee97077992 100644 (file)
@@ -20,7 +20,7 @@
 */
 
 #include "includes.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include <tdb.h>
 #include "vfs_posix.h"
 
index 0f3c1e36bb026ce7cc0494ea4dad112fbd1a952e..287b2c7281072cd30b7ce40e8ccbce935f7746f9 100644 (file)
@@ -25,7 +25,7 @@
 #include "secrets.h"
 #include "param/param.h"
 #include "system/filesys.h"
-#include "tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "lib/ldb-samba/ldb_wrap.h"
 #include <ldb.h>
 #include "../lib/util/util_tdb.h"
index 8768b349effd2f8e11942d416eef54b8855bfc53..55fed70b0a4c0a659933c1839c0ffbb706468c83 100644 (file)
@@ -25,7 +25,7 @@
 #include <ldb.h>
 #include <ldb_errors.h>
 #include "ldb_wrap.h"
-#include "lib/tdb_wrap.h"
+#include "lib/util/tdb_wrap.h"
 #include "torture/smbtorture.h"
 #include "param/param.h"