From ce4531ee312c1171fcffcdbe9e214ae43384cdfd Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 10 Mar 2012 21:33:11 +0100 Subject: tdb_wrap: Move to specific directory. It's a bit confusing to mix low-level and high-level libraries. We had multiple libraries in one directory, and there were have circular dependencies with other libraries outside that directory (in this case, samba-hostconfig). Autobuild-User: Jelmer Vernooij Autobuild-Date: Sat Mar 10 23:13:01 CET 2012 on sn-devel-104 --- lib/tdb_wrap/tdb_wrap.c | 212 +++++++++++++++++++++++++++++ lib/tdb_wrap/tdb_wrap.h | 45 ++++++ lib/tdb_wrap/wscript_build | 8 ++ lib/util/tdb_wrap.c | 212 ----------------------------- lib/util/tdb_wrap.h | 45 ------ lib/util/wscript_build | 7 - libcli/auth/schannel_state_tdb.c | 2 +- source3/Makefile.in | 2 +- source3/lib/dbwrap/dbwrap_ctdb.c | 2 +- source3/lib/dbwrap/dbwrap_tdb.c | 2 +- source3/lib/messages_local.c | 2 +- source3/lib/server_mutex.c | 2 +- source3/lib/serverid.c | 2 +- source3/smbd/notify_internal.c | 2 +- source4/cluster/local.c | 2 +- source4/dsdb/samdb/ldb_modules/partition.h | 2 +- source4/lib/messaging/messaging.c | 2 +- source4/ntvfs/common/brlock_tdb.c | 2 +- source4/ntvfs/common/notify.c | 2 +- source4/ntvfs/common/opendb_tdb.c | 2 +- source4/ntvfs/posix/python/pyxattr_tdb.c | 2 +- source4/ntvfs/posix/vfs_posix.c | 2 +- source4/ntvfs/posix/xattr_tdb.c | 2 +- source4/param/secrets.c | 2 +- source4/torture/local/dbspeed.c | 2 +- wscript_build | 1 + 26 files changed, 285 insertions(+), 283 deletions(-) create mode 100644 lib/tdb_wrap/tdb_wrap.c create mode 100644 lib/tdb_wrap/tdb_wrap.h create mode 100644 lib/tdb_wrap/wscript_build delete mode 100644 lib/util/tdb_wrap.c delete mode 100644 lib/util/tdb_wrap.h diff --git a/lib/tdb_wrap/tdb_wrap.c b/lib/tdb_wrap/tdb_wrap.c new file mode 100644 index 0000000000..0994b1b79c --- /dev/null +++ b/lib/tdb_wrap/tdb_wrap.c @@ -0,0 +1,212 @@ +/* + Unix SMB/CIFS implementation. + TDB wrap functions + + Copyright (C) Andrew Tridgell 2004 + Copyright (C) Jelmer Vernooij 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 . +*/ + +#include "includes.h" +#include "lib/util/dlinklist.h" +#include "lib/tdb_wrap/tdb_wrap.h" +#include "lib/param/param.h" + +/* FIXME: TDB2 does this internally, so no need to wrap multiple opens! */ +#if BUILD_TDB2 +static void tdb_wrap_log(struct tdb_context *tdb, + enum tdb_log_level level, + enum TDB_ERROR ecode, + const char *message, + void *unused) +{ + int dl; + const char *name = tdb_name(tdb); + + switch (level) { + case TDB_LOG_USE_ERROR: + case TDB_LOG_ERROR: + dl = 0; + break; + case TDB_LOG_WARNING: + dl = 2; + break; + default: + dl = 0; + } + + DEBUG(dl, ("tdb(%s):%s: %s", name ? name : "unnamed", + tdb_errorstr(ecode), message)); +} +#else +/* + 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); + } +} +#endif + +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 loadparm_context *lp_ctx) +{ + struct tdb_wrap_private *result; + + 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; + } + + if (!lpcfg_use_mmap(lp_ctx)) { + 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 = lpcfg_parm_int(lp_ctx, NULL, "tdb_hashsize", base, 0); + } + + result->tdb = tdb_open_compat(name, hash_size, tdb_flags, + open_flags, mode, tdb_wrap_log, 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 loadparm_context *lp_ctx) +{ + 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, lp_ctx); + } 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; +} + diff --git a/lib/tdb_wrap/tdb_wrap.h b/lib/tdb_wrap/tdb_wrap.h new file mode 100644 index 0000000000..81e77e76a4 --- /dev/null +++ b/lib/tdb_wrap/tdb_wrap.h @@ -0,0 +1,45 @@ +/* + Unix SMB/CIFS implementation. + + database wrap headers + + Copyright (C) Andrew Tridgell 2004 + + 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 . +*/ + +/* IMPORTANT: tdb_wrap should be always preferred over tdb_context for end consumer functions + it's because if the code will be running inside smbd, then we must use the linked list + of open tdb files, to determine if the tdb we desire is already open + as otherwise, when you close the tdb (even on a different file descriptor), + ALL LOCKS are lost (due to a real screwup in the POSIX specification that nobody has been able to get fixed) +*/ + +#ifndef _TDB_WRAP_H_ +#define _TDB_WRAP_H_ + +#include "tdb_compat.h" + +struct tdb_wrap { + struct tdb_context *tdb; +}; + +struct loadparm_context; + +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 loadparm_context *lp_ctx); + +#endif /* _TDB_WRAP_H_ */ diff --git a/lib/tdb_wrap/wscript_build b/lib/tdb_wrap/wscript_build new file mode 100644 index 0000000000..0811bc5a2d --- /dev/null +++ b/lib/tdb_wrap/wscript_build @@ -0,0 +1,8 @@ +#!/usr/bin/python + +bld.SAMBA_LIBRARY('tdb-wrap', + source='tdb_wrap.c', + deps='tdb_compat talloc samba-util samba-hostconfig', + private_library=True, + local_include=False + ) diff --git a/lib/util/tdb_wrap.c b/lib/util/tdb_wrap.c deleted file mode 100644 index 7c3318bcad..0000000000 --- a/lib/util/tdb_wrap.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - Unix SMB/CIFS implementation. - TDB wrap functions - - Copyright (C) Andrew Tridgell 2004 - Copyright (C) Jelmer Vernooij 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 . -*/ - -#include "includes.h" -#include "lib/util/dlinklist.h" -#include "lib/util/tdb_wrap.h" -#include "lib/param/param.h" - -/* FIXME: TDB2 does this internally, so no need to wrap multiple opens! */ -#if BUILD_TDB2 -static void tdb_wrap_log(struct tdb_context *tdb, - enum tdb_log_level level, - enum TDB_ERROR ecode, - const char *message, - void *unused) -{ - int dl; - const char *name = tdb_name(tdb); - - switch (level) { - case TDB_LOG_USE_ERROR: - case TDB_LOG_ERROR: - dl = 0; - break; - case TDB_LOG_WARNING: - dl = 2; - break; - default: - dl = 0; - } - - DEBUG(dl, ("tdb(%s):%s: %s", name ? name : "unnamed", - tdb_errorstr(ecode), message)); -} -#else -/* - 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); - } -} -#endif - -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 loadparm_context *lp_ctx) -{ - struct tdb_wrap_private *result; - - 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; - } - - if (!lpcfg_use_mmap(lp_ctx)) { - 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 = lpcfg_parm_int(lp_ctx, NULL, "tdb_hashsize", base, 0); - } - - result->tdb = tdb_open_compat(name, hash_size, tdb_flags, - open_flags, mode, tdb_wrap_log, 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 loadparm_context *lp_ctx) -{ - 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, lp_ctx); - } 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; -} - diff --git a/lib/util/tdb_wrap.h b/lib/util/tdb_wrap.h deleted file mode 100644 index 81e77e76a4..0000000000 --- a/lib/util/tdb_wrap.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - database wrap headers - - Copyright (C) Andrew Tridgell 2004 - - 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 . -*/ - -/* IMPORTANT: tdb_wrap should be always preferred over tdb_context for end consumer functions - it's because if the code will be running inside smbd, then we must use the linked list - of open tdb files, to determine if the tdb we desire is already open - as otherwise, when you close the tdb (even on a different file descriptor), - ALL LOCKS are lost (due to a real screwup in the POSIX specification that nobody has been able to get fixed) -*/ - -#ifndef _TDB_WRAP_H_ -#define _TDB_WRAP_H_ - -#include "tdb_compat.h" - -struct tdb_wrap { - struct tdb_context *tdb; -}; - -struct loadparm_context; - -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 loadparm_context *lp_ctx); - -#endif /* _TDB_WRAP_H_ */ diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 1dc65fab5e..79b9f02050 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -85,10 +85,3 @@ bld.SAMBA_SUBSYSTEM('UTIL_PW', public_deps='talloc' ) - -bld.SAMBA_LIBRARY('tdb-wrap', - source='tdb_wrap.c', - deps='tdb_compat talloc samba-util samba-hostconfig', - private_library=True, - local_include=False - ) diff --git a/libcli/auth/schannel_state_tdb.c b/libcli/auth/schannel_state_tdb.c index f2b918816a..5d5ddcc45d 100644 --- a/libcli/auth/schannel_state_tdb.c +++ b/libcli/auth/schannel_state_tdb.c @@ -28,7 +28,7 @@ #include "../lib/param/param.h" #include "../libcli/auth/schannel.h" #include "../librpc/gen_ndr/ndr_schannel.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #define SECRETS_SCHANNEL_STATE "SECRETS/SCHANNEL" diff --git a/source3/Makefile.in b/source3/Makefile.in index dc02b6a4cd..5fcf8598e3 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -256,7 +256,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/tdb_wrap/tdb_wrap.o \ lib/dbwrap/dbwrap.o \ lib/dbwrap/dbwrap_open.o \ lib/dbwrap/dbwrap_tdb.o \ diff --git a/source3/lib/dbwrap/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c index 2e0146fdb0..d50f75ef5d 100644 --- a/source3/lib/dbwrap/dbwrap_ctdb.c +++ b/source3/lib/dbwrap/dbwrap_ctdb.c @@ -20,7 +20,7 @@ #include "includes.h" #include "system/filesys.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "util_tdb.h" #include "dbwrap/dbwrap_ctdb.h" #include "dbwrap/dbwrap_rbt.h" diff --git a/source3/lib/dbwrap/dbwrap_tdb.c b/source3/lib/dbwrap/dbwrap_tdb.c index 2c82810c50..454073a52f 100644 --- a/source3/lib/dbwrap/dbwrap_tdb.c +++ b/source3/lib/dbwrap/dbwrap_tdb.c @@ -21,7 +21,7 @@ #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_private.h" #include "dbwrap/dbwrap_tdb.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/param/param.h" #include "util_tdb.h" diff --git a/source3/lib/messages_local.c b/source3/lib/messages_local.c index 9b4e3c5e43..b398870e1f 100644 --- a/source3/lib/messages_local.c +++ b/source3/lib/messages_local.c @@ -45,7 +45,7 @@ #include "includes.h" #include "system/filesys.h" #include "messages.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/param/param.h" struct messaging_tdb_context { diff --git a/source3/lib/server_mutex.c b/source3/lib/server_mutex.c index 7ceecfe770..9430141d1c 100644 --- a/source3/lib/server_mutex.c +++ b/source3/lib/server_mutex.c @@ -20,7 +20,7 @@ #include "includes.h" #include "system/filesys.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "util_tdb.h" #include "lib/param/param.h" diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c index 02de2b4f9c..48d5b4251a 100644 --- a/source3/lib/serverid.c +++ b/source3/lib/serverid.c @@ -23,7 +23,7 @@ #include "util_tdb.h" #include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/param/param.h" #include "ctdbd_conn.h" #include "messages.h" diff --git a/source3/smbd/notify_internal.c b/source3/smbd/notify_internal.c index be91cd58cd..d68a720e6b 100644 --- a/source3/smbd/notify_internal.c +++ b/source3/smbd/notify_internal.c @@ -30,7 +30,7 @@ #include "dbwrap/dbwrap_open.h" #include "smbd/smbd.h" #include "messages.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "util_tdb.h" #include "lib/param/param.h" diff --git a/source4/cluster/local.c b/source4/cluster/local.c index c62c5cf405..24cbe81c48 100644 --- a/source4/cluster/local.c +++ b/source4/cluster/local.c @@ -23,7 +23,7 @@ #include "cluster/cluster.h" #include "cluster/cluster_private.h" #include "tdb_compat.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "system/filesys.h" #include "param/param.h" #include "librpc/gen_ndr/server_id.h" diff --git a/source4/dsdb/samdb/ldb_modules/partition.h b/source4/dsdb/samdb/ldb_modules/partition.h index 0cb5705ada..ea05e9404d 100644 --- a/source4/dsdb/samdb/ldb_modules/partition.h +++ b/source4/dsdb/samdb/ldb_modules/partition.h @@ -21,7 +21,7 @@ #include #include #include -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "dsdb/samdb/samdb.h" #include "dsdb/samdb/ldb_modules/util.h" #include "system/locale.h" diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index 21ff1b456a..9c337f65a5 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -27,7 +27,7 @@ #include "lib/socket/socket.h" #include "librpc/gen_ndr/ndr_irpc.h" #include "lib/messaging/irpc.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "../lib/util/unix_privs.h" #include "librpc/rpc/dcerpc.h" #include "../lib/tdb_compat/tdb_compat.h" diff --git a/source4/ntvfs/common/brlock_tdb.c b/source4/ntvfs/common/brlock_tdb.c index fcaa756530..5c89b41b22 100644 --- a/source4/ntvfs/common/brlock_tdb.c +++ b/source4/ntvfs/common/brlock_tdb.c @@ -28,7 +28,7 @@ #include "system/filesys.h" #include "tdb_compat.h" #include "messaging/messaging.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/messaging/irpc.h" #include "libcli/libcli.h" #include "cluster/cluster.h" diff --git a/source4/ntvfs/common/notify.c b/source4/ntvfs/common/notify.c index 98f17a6565..6b5ece9e4e 100644 --- a/source4/ntvfs/common/notify.c +++ b/source4/ntvfs/common/notify.c @@ -28,7 +28,7 @@ #include "../lib/tdb_compat/tdb_compat.h" #include "../lib/util/util_tdb.h" #include "messaging/messaging.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/messaging/irpc.h" #include "librpc/gen_ndr/ndr_notify.h" #include "../lib/util/dlinklist.h" diff --git a/source4/ntvfs/common/opendb_tdb.c b/source4/ntvfs/common/opendb_tdb.c index 9884e1f8b0..ed8fb9032a 100644 --- a/source4/ntvfs/common/opendb_tdb.c +++ b/source4/ntvfs/common/opendb_tdb.c @@ -42,7 +42,7 @@ #include "system/filesys.h" #include "../lib/tdb_compat/tdb_compat.h" #include "messaging/messaging.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/messaging/irpc.h" #include "librpc/gen_ndr/ndr_opendb.h" #include "ntvfs/ntvfs.h" diff --git a/source4/ntvfs/posix/python/pyxattr_tdb.c b/source4/ntvfs/posix/python/pyxattr_tdb.c index 7248560039..1fdae7606d 100644 --- a/source4/ntvfs/posix/python/pyxattr_tdb.c +++ b/source4/ntvfs/posix/python/pyxattr_tdb.c @@ -21,7 +21,7 @@ #include #include "includes.h" #include "tdb_compat.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "librpc/ndr/libndr.h" #include "lib/util/wrap_xattr.h" #include "ntvfs/posix/vfs_posix.h" diff --git a/source4/ntvfs/posix/vfs_posix.c b/source4/ntvfs/posix/vfs_posix.c index cecaee00cc..3a3d1ea1c5 100644 --- a/source4/ntvfs/posix/vfs_posix.c +++ b/source4/ntvfs/posix/vfs_posix.c @@ -27,7 +27,7 @@ #include "vfs_posix.h" #include "librpc/gen_ndr/security.h" #include "tdb_compat.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "libcli/security/security.h" #include "lib/events/events.h" #include "param/param.h" diff --git a/source4/ntvfs/posix/xattr_tdb.c b/source4/ntvfs/posix/xattr_tdb.c index 07b3712215..2a320ba7a6 100644 --- a/source4/ntvfs/posix/xattr_tdb.c +++ b/source4/ntvfs/posix/xattr_tdb.c @@ -20,7 +20,7 @@ */ #include "includes.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "tdb_compat.h" #include "vfs_posix.h" diff --git a/source4/param/secrets.c b/source4/param/secrets.c index 32a97453d4..aaf6259ef0 100644 --- a/source4/param/secrets.c +++ b/source4/param/secrets.c @@ -25,7 +25,7 @@ #include "secrets.h" #include "param/param.h" #include "system/filesys.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "lib/ldb-samba/ldb_wrap.h" #include #include "../lib/util/util_tdb.h" diff --git a/source4/torture/local/dbspeed.c b/source4/torture/local/dbspeed.c index 60721cc2c0..51ea8eaeef 100644 --- a/source4/torture/local/dbspeed.c +++ b/source4/torture/local/dbspeed.c @@ -25,7 +25,7 @@ #include #include #include "ldb_wrap.h" -#include "lib/util/tdb_wrap.h" +#include "lib/tdb_wrap/tdb_wrap.h" #include "torture/smbtorture.h" #include "param/param.h" diff --git a/wscript_build b/wscript_build index ab6f9be40c..f5dff8d6fe 100644 --- a/wscript_build +++ b/wscript_build @@ -65,6 +65,7 @@ bld.RECURSE('lib/uid_wrapper') bld.RECURSE('lib/popt') bld.RECURSE('source4/lib/stream') bld.RECURSE('lib/util') +bld.RECURSE('lib/tdb_wrap') bld.RECURSE('lib/tdr') bld.RECURSE('lib/tsocket') bld.RECURSE('lib/crypto') -- cgit