From: Andrew Tridgell Date: Thu, 22 Oct 2009 00:06:33 +0000 (+1100) Subject: s4-ldb: expose ltdb_err_map and ltdb_delete_noindex X-Git-Tag: tdb-1.2.0~527 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=74ae8b90ae71446ccafab3a324087f2edf928b13 s4-ldb: expose ltdb_err_map and ltdb_delete_noindex These will be used by ldb_index.c --- diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.c b/source4/lib/ldb/ldb_tdb/ldb_tdb.c index f8ed329fcdc..01153fe2035 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_tdb.c +++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.c @@ -55,7 +55,7 @@ /* map a tdb error code to a ldb error code */ -static int ltdb_err_map(enum TDB_ERROR tdb_code) +int ltdb_err_map(enum TDB_ERROR tdb_code) { switch (tdb_code) { case TDB_SUCCESS: @@ -335,7 +335,7 @@ static int ltdb_add(struct ltdb_context *ctx) delete a record from the database, not updating indexes (used for deleting index records) */ -static int ltdb_delete_noindex(struct ldb_module *module, struct ldb_dn *dn) +int ltdb_delete_noindex(struct ldb_module *module, struct ldb_dn *dn) { void *data = ldb_module_get_private(module); struct ltdb_private *ltdb = talloc_get_type(data, struct ltdb_private); @@ -730,6 +730,7 @@ int ltdb_modify_internal(struct ldb_module *module, } } + /* TODO: This is O(n^2) - replace with more efficient check */ for (j=0; jnum_values; j++) { if (ldb_msg_find_val(el, &el->values[j]) != &el->values[j]) { ldb_asprintf_errstring(ldb, "%s: value #%d provided more than once", el->name, j); diff --git a/source4/lib/ldb/ldb_tdb/ldb_tdb.h b/source4/lib/ldb/ldb_tdb/ldb_tdb.h index c5eec0a518a..b3887a6c347 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_tdb.h +++ b/source4/lib/ldb/ldb_tdb/ldb_tdb.h @@ -129,6 +129,8 @@ int ltdb_unlock_read(struct ldb_module *module); struct TDB_DATA ltdb_key(struct ldb_module *module, struct ldb_dn *dn); int ltdb_store(struct ldb_module *module, const struct ldb_message *msg, int flgs); int ltdb_modify_internal(struct ldb_module *module, const struct ldb_message *msg); +int ltdb_delete_noindex(struct ldb_module *module, struct ldb_dn *dn); +int ltdb_err_map(enum TDB_ERROR tdb_code); struct tdb_context *ltdb_wrap_open(TALLOC_CTX *mem_ctx, const char *path, int hash_size, int tdb_flags,