svn commit: samba r20032 - in
branches/SAMBA_4_0/source/lib/ldb/common: .
idra at samba.org
idra at samba.org
Tue Dec 5 02:48:59 GMT 2006
Author: idra
Date: 2006-12-05 02:48:58 +0000 (Tue, 05 Dec 2006)
New Revision: 20032
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20032
Log:
Add ldb_search_exp_fmt()
This functions adds support of a memory context to hook the results to
and a printf style exp_fmt partameter to easily build expressions at once.
Modified:
branches/SAMBA_4_0/source/lib/ldb/common/ldb.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb.c 2006-12-04 18:20:03 UTC (rev 20031)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb.c 2006-12-05 02:48:58 UTC (rev 20032)
@@ -795,6 +795,42 @@
}
/*
+ a useful search function where you can easily define the expression and that
+ takes a memory context where results are allocated
+*/
+
+int ldb_search_exp_fmt(struct ldb_context *ldb, TALLOC_CTX *mem_ctx, struct ldb_result **result,
+ struct ldb_dn *base, enum ldb_scope scope, const char * const *attrs,
+ const char *exp_fmt, ...)
+{
+ struct ldb_result **res;
+ char *expression;
+ va_list ap;
+ int ret;
+
+ *result = NULL;
+
+ va_start(ap, exp_fmt);
+ expression = talloc_vasprintf(mem_ctx, exp_fmt, ap);
+ va_end(ap);
+
+ if ( ! expression) {
+ return LDB_ERR_OPERATIONS_ERROR;
+ }
+
+ ret = ldb_search(ldb, base, scope, expression, attrs, res);
+
+ if (ret == LDB_SUCCESS) {
+ talloc_steal(mem_ctx, res);
+ result = res;
+ }
+
+ talloc_free(expression);
+
+ return ret;
+}
+
+/*
add a record to the database. Will fail if a record with the given class and key
already exists
*/
More information about the samba-cvs
mailing list