diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/conn_tdb.c | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap.c (renamed from source3/lib/dbwrap.c) | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap.h | 138 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_ctdb.c (renamed from source3/lib/dbwrap_ctdb.c) | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_file.c (renamed from source3/lib/dbwrap_file.c) | 0 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_open.c | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_rbt.c (renamed from source3/lib/dbwrap_rbt.c) | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_tdb.c (renamed from source3/lib/dbwrap_tdb.c) | 2 | ||||
-rw-r--r-- | source3/lib/dbwrap/dbwrap_util.c (renamed from source3/lib/dbwrap_util.c) | 0 | ||||
-rw-r--r-- | source3/lib/g_lock.c | 2 | ||||
-rw-r--r-- | source3/lib/messages.c | 2 | ||||
-rw-r--r-- | source3/lib/privileges.c | 2 | ||||
-rw-r--r-- | source3/lib/serverid.c | 2 | ||||
-rw-r--r-- | source3/lib/sessionid_tdb.c | 2 | ||||
-rw-r--r-- | source3/lib/sharesec.c | 2 | ||||
-rw-r--r-- | source3/lib/talloc_dict.c | 2 |
16 files changed, 151 insertions, 13 deletions
diff --git a/source3/lib/conn_tdb.c b/source3/lib/conn_tdb.c index 669ddb2a3a..f458480673 100644 --- a/source3/lib/conn_tdb.c +++ b/source3/lib/conn_tdb.c @@ -20,7 +20,7 @@ #include "includes.h" #include "system/filesys.h" #include "smbd/globals.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" static struct db_context *connections_db_ctx(bool rw) diff --git a/source3/lib/dbwrap.c b/source3/lib/dbwrap/dbwrap.c index 3d70fcdcd6..6a6d4c64e5 100644 --- a/source3/lib/dbwrap.c +++ b/source3/lib/dbwrap/dbwrap.c @@ -20,7 +20,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_private.h" /* diff --git a/source3/lib/dbwrap/dbwrap.h b/source3/lib/dbwrap/dbwrap.h new file mode 100644 index 0000000000..9084f87d30 --- /dev/null +++ b/source3/lib/dbwrap/dbwrap.h @@ -0,0 +1,138 @@ +/* + Unix SMB/CIFS implementation. + Database interface wrapper around tdb + Copyright (C) Volker Lendecke 2005-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/>. +*/ + +#ifndef __DBWRAP_H__ +#define __DBWRAP_H__ + +#include "tdb_compat.h" + +struct db_record { + TDB_DATA key, value; + NTSTATUS (*store)(struct db_record *rec, TDB_DATA data, int flag); + NTSTATUS (*delete_rec)(struct db_record *rec); + void *private_data; +}; + +struct db_context { + struct db_record *(*fetch_locked)(struct db_context *db, + TALLOC_CTX *mem_ctx, + TDB_DATA key); + int (*fetch)(struct db_context *db, TALLOC_CTX *mem_ctx, + TDB_DATA key, TDB_DATA *data); + int (*traverse)(struct db_context *db, + int (*f)(struct db_record *rec, + void *private_data), + void *private_data); + int (*traverse_read)(struct db_context *db, + int (*f)(struct db_record *rec, + void *private_data), + void *private_data); + int (*get_seqnum)(struct db_context *db); + int (*get_flags)(struct db_context *db); + int (*transaction_start)(struct db_context *db); + int (*transaction_commit)(struct db_context *db); + int (*transaction_cancel)(struct db_context *db); + int (*parse_record)(struct db_context *db, TDB_DATA key, + int (*parser)(TDB_DATA key, TDB_DATA data, + void *private_data), + void *private_data); + void *private_data; + bool persistent; +}; + +struct db_context *db_open_rbt(TALLOC_CTX *mem_ctx); + +struct db_context *db_open_tdb(TALLOC_CTX *mem_ctx, + const char *name, + int hash_size, int tdb_flags, + int open_flags, mode_t mode); + +struct messaging_context; + +#ifdef CLUSTER_SUPPORT +struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx, + const char *name, + int hash_size, int tdb_flags, + int open_flags, mode_t mode); +#endif + +struct db_context *db_open_file(TALLOC_CTX *mem_ctx, + struct messaging_context *msg_ctx, + const char *name, + int hash_size, int tdb_flags, + int open_flags, mode_t mode); + + +NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key); +NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key, + TDB_DATA data, int flags); +TDB_DATA dbwrap_fetch(struct db_context *db, TALLOC_CTX *mem_ctx, + TDB_DATA key); +NTSTATUS dbwrap_delete_bystring(struct db_context *db, const char *key); +NTSTATUS dbwrap_store_bystring(struct db_context *db, const char *key, + TDB_DATA data, int flags); +TDB_DATA dbwrap_fetch_bystring(struct db_context *db, TALLOC_CTX *mem_ctx, + const char *key); + +/* The following definitions come from lib/dbwrap_util.c */ + +int32_t dbwrap_fetch_int32(struct db_context *db, const char *keystr); +int dbwrap_store_int32(struct db_context *db, const char *keystr, int32_t v); +bool dbwrap_fetch_uint32(struct db_context *db, const char *keystr, + uint32_t *val); +int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v); +NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr, + uint32_t *oldval, uint32_t change_val); +NTSTATUS dbwrap_trans_change_uint32_atomic(struct db_context *db, + const char *keystr, + uint32_t *oldval, + uint32_t change_val); +NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr, + int32_t *oldval, int32_t change_val); +NTSTATUS dbwrap_trans_change_int32_atomic(struct db_context *db, + const char *keystr, + int32_t *oldval, + int32_t change_val); +NTSTATUS dbwrap_trans_store(struct db_context *db, TDB_DATA key, TDB_DATA dbuf, + int flag); +NTSTATUS dbwrap_trans_delete(struct db_context *db, TDB_DATA key); +NTSTATUS dbwrap_trans_store_int32(struct db_context *db, const char *keystr, + int32_t v); +NTSTATUS dbwrap_trans_store_uint32(struct db_context *db, const char *keystr, + uint32_t v); +NTSTATUS dbwrap_trans_store_bystring(struct db_context *db, const char *key, + TDB_DATA data, int flags); +NTSTATUS dbwrap_trans_delete_bystring(struct db_context *db, const char *key); +NTSTATUS dbwrap_trans_do(struct db_context *db, + NTSTATUS (*action)(struct db_context *, void *), + void *private_data); +NTSTATUS dbwrap_trans_traverse(struct db_context *db, + int (*f)(struct db_record*, void*), + void *private_data); +NTSTATUS dbwrap_traverse(struct db_context *db, + int (*f)(struct db_record*, void*), + void *private_data); + +NTSTATUS dbwrap_delete_bystring_upper(struct db_context *db, const char *key); +NTSTATUS dbwrap_store_bystring_upper(struct db_context *db, const char *key, + TDB_DATA data, int flags); +TDB_DATA dbwrap_fetch_bystring_upper(struct db_context *db, TALLOC_CTX *mem_ctx, + const char *key); + +#endif /* __DBWRAP_H__ */ diff --git a/source3/lib/dbwrap_ctdb.c b/source3/lib/dbwrap/dbwrap_ctdb.c index 049fef6bc7..454a28399f 100644 --- a/source3/lib/dbwrap_ctdb.c +++ b/source3/lib/dbwrap/dbwrap_ctdb.c @@ -26,7 +26,7 @@ #include "ctdb.h" #include "ctdb_private.h" #include "ctdbd_conn.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "g_lock.h" #include "messages.h" diff --git a/source3/lib/dbwrap_file.c b/source3/lib/dbwrap/dbwrap_file.c index 6ecd72810d..6ecd72810d 100644 --- a/source3/lib/dbwrap_file.c +++ b/source3/lib/dbwrap/dbwrap_file.c diff --git a/source3/lib/dbwrap/dbwrap_open.c b/source3/lib/dbwrap/dbwrap_open.c index 8721b1b0f9..a5e15e305a 100644 --- a/source3/lib/dbwrap/dbwrap_open.c +++ b/source3/lib/dbwrap/dbwrap_open.c @@ -19,7 +19,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_private.h" #include "dbwrap/dbwrap_open.h" #include "util_tdb.h" diff --git a/source3/lib/dbwrap_rbt.c b/source3/lib/dbwrap/dbwrap_rbt.c index fd6e988864..fa91d8cb95 100644 --- a/source3/lib/dbwrap_rbt.c +++ b/source3/lib/dbwrap/dbwrap_rbt.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "../lib/util/rbtree.h" #define DBWRAP_RBT_ALIGN(_size_) (((_size_)+15)&~15) diff --git a/source3/lib/dbwrap_tdb.c b/source3/lib/dbwrap/dbwrap_tdb.c index 2efb3dfe39..aca57b63ce 100644 --- a/source3/lib/dbwrap_tdb.c +++ b/source3/lib/dbwrap/dbwrap_tdb.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "lib/util/tdb_wrap.h" struct db_tdb_ctx { diff --git a/source3/lib/dbwrap_util.c b/source3/lib/dbwrap/dbwrap_util.c index effcf40c6b..effcf40c6b 100644 --- a/source3/lib/dbwrap_util.c +++ b/source3/lib/dbwrap/dbwrap_util.c diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c index 3a983d5fb7..bed3ec1e45 100644 --- a/source3/lib/g_lock.c +++ b/source3/lib/g_lock.c @@ -19,7 +19,7 @@ #include "includes.h" #include "system/filesys.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "g_lock.h" #include "util_tdb.h" diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 76c1090b81..d66af39757 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -46,7 +46,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "serverid.h" #include "messages.h" diff --git a/source3/lib/privileges.c b/source3/lib/privileges.c index a793d77559..0e9c77dea6 100644 --- a/source3/lib/privileges.c +++ b/source3/lib/privileges.c @@ -23,7 +23,7 @@ #include "includes.h" #include "lib/privileges.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "libcli/security/privileges_private.h" #include "../libcli/security/security.h" #include "passdb.h" diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c index f2ba07ab34..e5532756e8 100644 --- a/source3/lib/serverid.c +++ b/source3/lib/serverid.c @@ -21,7 +21,7 @@ #include "system/filesys.h" #include "serverid.h" #include "util_tdb.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "lib/util/tdb_wrap.h" diff --git a/source3/lib/sessionid_tdb.c b/source3/lib/sessionid_tdb.c index dc3f61c33b..ebc1b8af79 100644 --- a/source3/lib/sessionid_tdb.c +++ b/source3/lib/sessionid_tdb.c @@ -19,7 +19,7 @@ #include "includes.h" #include "system/filesys.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "session.h" #include "util_tdb.h" diff --git a/source3/lib/sharesec.c b/source3/lib/sharesec.c index fa67567537..86f89ffe8e 100644 --- a/source3/lib/sharesec.c +++ b/source3/lib/sharesec.c @@ -21,7 +21,7 @@ #include "system/filesys.h" #include "../libcli/security/security.h" #include "../librpc/gen_ndr/ndr_security.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "dbwrap/dbwrap_open.h" #include "util_tdb.h" diff --git a/source3/lib/talloc_dict.c b/source3/lib/talloc_dict.c index 95ae0a3260..3c5108d388 100644 --- a/source3/lib/talloc_dict.c +++ b/source3/lib/talloc_dict.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "dbwrap.h" +#include "dbwrap/dbwrap.h" #include "talloc_dict.h" #include "util_tdb.h" |