WHATSNEW: add SmartCard/PKINIT improvements
[vlendec/samba-autobuild/.git] / lib / dbwrap / dbwrap.h
index d289243f7a64a2f213be6800ab0fa607d36be200..6b77236c530843cbf82de074c016ae118807bd3a 100644 (file)
 #ifndef __DBWRAP_H__
 #define __DBWRAP_H__
 
+#include "replace.h"
+#include <talloc.h>
+#include "libcli/util/ntstatus.h"
 #include "tdb.h"
+#include "lib/param/loadparm.h"
 
 struct db_record;
 struct db_context;
@@ -52,11 +56,6 @@ struct db_record *dbwrap_try_fetch_locked(struct db_context *db,
                                          TALLOC_CTX *mem_ctx,
                                          TDB_DATA key);
 struct db_context *dbwrap_record_get_db(struct db_record *rec);
-void dbwrap_set_stored_callback(
-       struct db_context *db,
-       void (*cb)(struct db_context *db, struct db_record *rec,
-                  void *private_data),
-       void *private_data);
 
 NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key);
 NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key,
@@ -80,17 +79,18 @@ int dbwrap_wipe(struct db_context *db);
 int dbwrap_check(struct db_context *db);
 int dbwrap_get_seqnum(struct db_context *db);
 /* Returns 0 if unknown. */
-int dbwrap_hash_size(struct db_context *db);
 int dbwrap_transaction_start(struct db_context *db);
 NTSTATUS dbwrap_transaction_start_nonblock(struct db_context *db);
 int dbwrap_transaction_commit(struct db_context *db);
 int dbwrap_transaction_cancel(struct db_context *db);
-void dbwrap_db_id(struct db_context *db, const uint8_t **id, size_t *idlen);
+size_t dbwrap_db_id(struct db_context *db, uint8_t *id, size_t idlen);
 bool dbwrap_is_persistent(struct db_context *db);
 const char *dbwrap_name(struct db_context *db);
 
 /* The following definitions come from lib/dbwrap_util.c  */
 
+NTSTATUS dbwrap_purge(struct db_context *db, TDB_DATA key);
+NTSTATUS dbwrap_purge_bystring(struct db_context *db, const char *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);
@@ -152,12 +152,17 @@ NTSTATUS dbwrap_store_bystring_upper(struct db_context *db, const char *key,
 NTSTATUS dbwrap_fetch_bystring_upper(struct db_context *db, TALLOC_CTX *mem_ctx,
                                     const char *key, TDB_DATA *value);
 
+size_t dbwrap_marshall(struct db_context *db, uint8_t *buf, size_t bufsize);
+NTSTATUS dbwrap_parse_marshall_buf(const uint8_t *buf, size_t buflen,
+                                  bool (*fn)(TDB_DATA key, TDB_DATA value,
+                                             void *private_data),
+                                  void *private_data);
+NTSTATUS dbwrap_unmarshall(struct db_context *db, const uint8_t *buf,
+                          size_t buflen);
+
+
 /**
- * This opens an ntdb or tdb file: you can hand it a .ntdb or .tdb extension
- * and it will decide (based on parameter settings, or else what exists) which
- * to use.
- *
- * For backwards compatibility, it takes tdb-style open flags, not ntdb!
+ * This opens a tdb file
  */
 struct db_context *dbwrap_local_open(TALLOC_CTX *mem_ctx,
                                     struct loadparm_context *lp_ctx,