diff options
Diffstat (limited to 'source4/lib/ldb/tools/ldbedit.c')
-rw-r--r-- | source4/lib/ldb/tools/ldbedit.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/source4/lib/ldb/tools/ldbedit.c b/source4/lib/ldb/tools/ldbedit.c index e8497ba18f..12bf12bfff 100644 --- a/source4/lib/ldb/tools/ldbedit.c +++ b/source4/lib/ldb/tools/ldbedit.c @@ -278,28 +278,23 @@ static void usage(void) struct ldb_context *ldb; struct ldb_message **msgs; int ret; - const char *expression = NULL; + const char *expression = "(|(objectclass=*)(dn=*))"; const char * const * attrs = NULL; ldb = ldb_init(NULL); options = ldb_cmdline_process(ldb, argc, argv, usage); - if (options->all_records) { - expression = "(|(objectclass=*)(dn=*))"; - } - - if (!expression) { - if (options->argc == 0) { - usage(); - } + /* the check for '=' is for compatibility with ldapsearch */ + if (options->argc > 0 && + strchr(options->argv[0], '=')) { expression = options->argv[0]; - options->argc--; options->argv++; + options->argc--; } if (options->argc > 0) { - attrs = (const char * const *)options->argv; + attrs = (const char * const *)(options->argv); } ret = ldb_search(ldb, options->basedn, options->scope, expression, attrs, &msgs); |