1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

r7833: changed ldbsearch and ldbedit to have command line syntax closer to

ldapsearch. They look for an '=' in the first argument to see if it is
a search expression, and if not then it does an 'all records' search
(This used to be commit 91cc009fed)
This commit is contained in:
Andrew Tridgell 2005-06-22 03:10:40 +00:00 committed by Gerald (Jerry) Carter
parent 3b9eabc2f3
commit 0eb6bc1257
3 changed files with 19 additions and 19 deletions

View File

@ -37,7 +37,7 @@ $VALGRIND bin/ldbsearch '(|(uid=uham)(uid=uham)(objectclass=OpenLDAPperson))' |
$VALGRIND bin/ldbsearch '(&(uid=uham)(uid=uham)(!(objectclass=xxx)))' || exit 1
$VALGRIND bin/ldbsearch '(&(objectclass=person)(uid=uham)(!(uid=uhamxx)))' uid \* \+ dn || exit 1
$VALGRIND bin/ldbsearch '(&(uid=uham)(uid=uha*)(title=*))' uid || exit 1
$VALGRIND bin/ldbsearch '((' uid && exit 1
$VALGRIND bin/ldbsearch '((' uid || exit 1
$VALGRIND bin/ldbsearch '(objectclass=)' uid || exit 1
$VALGRIND bin/ldbsearch -b 'cn=Hampster Ursula,ou=Alumni Association,ou=People,o=University of Michigan,c=TEST' -s base "" sn || exit 1

View File

@ -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);

View File

@ -120,18 +120,23 @@ static int do_search(struct ldb_context *ldb,
const char * const * attrs = NULL;
struct ldb_cmdline *options;
int ret = -1;
const char *expression = "(|(objectclass=*)(dn=*))";
ldb = ldb_init(NULL);
options = ldb_cmdline_process(ldb, argc, argv, usage);
if (options->argc < 1 && !options->interactive) {
usage();
exit(1);
/* the check for '=' is for compatibility with ldapsearch */
if (!options->interactive &&
options->argc > 0 &&
strchr(options->argv[0], '=')) {
expression = options->argv[0];
options->argv++;
options->argc--;
}
if (options->argc > 1) {
attrs = (const char * const *)(options->argv+1);
if (options->argc > 0) {
attrs = (const char * const *)(options->argv);
}
if (options->interactive) {
@ -144,7 +149,7 @@ static int do_search(struct ldb_context *ldb,
}
} else {
ret = do_search(ldb, options->basedn, options->scope, options->sorted,
options->argv[0], attrs);
expression, attrs);
}
talloc_free(ldb);