summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/tools/ldbedit.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-11-04 20:05:59 +1100
committerAndrew Tridgell <tridge@samba.org>2010-11-04 20:35:44 +1100
commit6a22d8938c36de8e8a6e99eadca896bdb9802b1d (patch)
tree55a035b958660f9919e9b205449f187d17b5886f /source4/lib/ldb/tools/ldbedit.c
parentcf37c29cd009f9378ffa4d3ee54b38aef9fa066b (diff)
downloadsamba-6a22d8938c36de8e8a6e99eadca896bdb9802b1d.tar.gz
samba-6a22d8938c36de8e8a6e99eadca896bdb9802b1d.tar.bz2
samba-6a22d8938c36de8e8a6e99eadca896bdb9802b1d.zip
s4-ldb: honor controls on search in ldbedit
Diffstat (limited to 'source4/lib/ldb/tools/ldbedit.c')
-rw-r--r--source4/lib/ldb/tools/ldbedit.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source4/lib/ldb/tools/ldbedit.c b/source4/lib/ldb/tools/ldbedit.c
index d26f4d1b21..74e3037fb7 100644
--- a/source4/lib/ldb/tools/ldbedit.c
+++ b/source4/lib/ldb/tools/ldbedit.c
@@ -300,6 +300,7 @@ int main(int argc, const char **argv)
const char *expression = "(|(objectClass=*)(distinguishedName=*))";
const char * const * attrs = NULL;
TALLOC_CTX *mem_ctx = talloc_new(NULL);
+ struct ldb_control **req_ctrls;
ldb = ldb_init(mem_ctx, NULL);
@@ -325,7 +326,13 @@ int main(int argc, const char **argv)
}
}
- ret = ldb_search(ldb, ldb, &result, basedn, options->scope, attrs, "%s", expression);
+ req_ctrls = ldb_parse_control_strings(ldb, ldb, (const char **)options->controls);
+ if (options->controls != NULL && req_ctrls== NULL) {
+ printf("parsing controls failed: %s\n", ldb_errstring(ldb));
+ return -1;
+ }
+
+ ret = ldb_search_ctrl(ldb, ldb, &result, basedn, options->scope, attrs, req_ctrls, "%s", expression);
if (ret != LDB_SUCCESS) {
printf("search failed - %s\n", ldb_errstring(ldb));
exit(1);