1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00

r20036: Merge ldb_search_exp_fmt -- Thanks simo

This commit is contained in:
Volker Lendecke 2006-12-05 06:25:12 +00:00 committed by Gerald (Jerry) Carter
parent 7ac4ae4b51
commit fa6fa1268b

View File

@ -794,6 +794,45 @@ done:
return ret;
}
/*
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;
res = NULL;
*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;
} else {
talloc_free(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