From 0bedb9cf5ec592dfdf84994a9ace64a2c5d1e987 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 16 Feb 2010 15:49:29 +1100 Subject: s4-dsdb: removed gendb_search_single_extended_dn() Use dsdb_search_one() instead, which allows for arbitrary controls Pair-Programmed-With: Andrew Bartlett --- lib/util/util_ldb.c | 97 ----------------------------------------------------- lib/util/util_ldb.h | 8 ----- 2 files changed, 105 deletions(-) (limited to 'lib/util') diff --git a/lib/util/util_ldb.c b/lib/util/util_ldb.c index e92e3a2dff..9fd2acef16 100644 --- a/lib/util/util_ldb.c +++ b/lib/util/util_ldb.c @@ -132,100 +132,3 @@ char *wrap_casefold(void *context, void *mem_ctx, const char *s, size_t n) return strupper_talloc_n(mem_ctx, s, n); } - - -/* - search the LDB for a single record, with the extended_dn control - return LDB_SUCCESS on success, or an ldb error code on error - - if the search returns 0 entries, return LDB_ERR_NO_SUCH_OBJECT - if the search returns more than 1 entry, return LDB_ERR_CONSTRAINT_VIOLATION -*/ -int gendb_search_single_extended_dn(struct ldb_context *ldb, - TALLOC_CTX *mem_ctx, - struct ldb_dn *basedn, - enum ldb_scope scope, - struct ldb_message **msg, - const char * const *attrs, - const char *format, ...) -{ - va_list ap; - int ret; - struct ldb_request *req; - char *filter; - TALLOC_CTX *tmp_ctx; - struct ldb_result *res; - struct ldb_extended_dn_control *ctrl; - - tmp_ctx = talloc_new(mem_ctx); - - res = talloc_zero(tmp_ctx, struct ldb_result); - if (!res) { - return LDB_ERR_OPERATIONS_ERROR; - } - - va_start(ap, format); - filter = talloc_vasprintf(tmp_ctx, format, ap); - va_end(ap); - - if (filter == NULL) { - talloc_free(tmp_ctx); - return LDB_ERR_OPERATIONS_ERROR; - } - - ret = ldb_build_search_req(&req, ldb, tmp_ctx, - basedn, - scope, - filter, - attrs, - NULL, - res, - ldb_search_default_callback, - NULL); - if (ret != LDB_SUCCESS) { - talloc_free(tmp_ctx); - return ret; - } - - ctrl = talloc(tmp_ctx, struct ldb_extended_dn_control); - if (ctrl == NULL) { - talloc_free(tmp_ctx); - return LDB_ERR_OPERATIONS_ERROR; - } - - ctrl->type = 1; - - ret = ldb_request_add_control(req, LDB_CONTROL_EXTENDED_DN_OID, true, ctrl); - if (ret != LDB_SUCCESS) { - return ret; - } - - ret = ldb_request(ldb, req); - if (ret == LDB_SUCCESS) { - ret = ldb_wait(req->handle, LDB_WAIT_ALL); - } - - if (ret != LDB_SUCCESS) { - talloc_free(tmp_ctx); - return ret; - } - - if (res->count == 0) { - talloc_free(tmp_ctx); - return LDB_ERR_NO_SUCH_OBJECT; - } - - if (res->count > 1) { - /* the function is only supposed to return a single entry */ - DEBUG(0,(__location__ ": More than one return for baseDN %s filter %s\n", - ldb_dn_get_linearized(basedn), filter)); - talloc_free(tmp_ctx); - return LDB_ERR_CONSTRAINT_VIOLATION; - } - - *msg = talloc_steal(mem_ctx, res->msgs[0]); - - talloc_free(tmp_ctx); - - return LDB_SUCCESS; -} diff --git a/lib/util/util_ldb.h b/lib/util/util_ldb.h index 4575c6565a..f9eb028916 100644 --- a/lib/util/util_ldb.h +++ b/lib/util/util_ldb.h @@ -26,12 +26,4 @@ int gendb_search_dn(struct ldb_context *ldb, int gendb_add_ldif(struct ldb_context *ldb, const char *ldif_string); char *wrap_casefold(void *context, void *mem_ctx, const char *s, size_t n); -int gendb_search_single_extended_dn(struct ldb_context *ldb, - TALLOC_CTX *mem_ctx, - struct ldb_dn *basedn, - enum ldb_scope scope, - struct ldb_message **msg, - const char * const *attrs, - const char *format, ...) PRINTF_ATTRIBUTE(7,8); - #endif /* __LIB_UTIL_UTIL_LDB_H__ */ -- cgit