summaryrefslogtreecommitdiff
path: root/source4/lib/ldb
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-10-11 11:00:16 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:40 -0500
commit36d73b0e71eb3fbbe8d660b7609806b0355bd09c (patch)
tree2ab0d165d05beafc64f580a5f60a6b7a18d78a13 /source4/lib/ldb
parent87255dc743970cdfbccfe66c31504d518512da30 (diff)
downloadsamba-36d73b0e71eb3fbbe8d660b7609806b0355bd09c.tar.gz
samba-36d73b0e71eb3fbbe8d660b7609806b0355bd09c.tar.bz2
samba-36d73b0e71eb3fbbe8d660b7609806b0355bd09c.zip
r10894: make the handling of dn/distinguishedName much closer to real
ldap. Also ensure we put a objectclass on our private ldb's, so they have some chance of being stored in ldap if you want to (This used to be commit 1af2cc067f70f6654d08387fc28def67229bb06a)
Diffstat (limited to 'source4/lib/ldb')
-rw-r--r--source4/lib/ldb/common/ldb_match.c7
-rw-r--r--source4/lib/ldb/common/ldb_parse.c2
-rw-r--r--source4/lib/ldb/tools/cmdline.c2
-rw-r--r--source4/lib/ldb/tools/ldbdel.c4
-rw-r--r--source4/lib/ldb/tools/ldbedit.c2
-rw-r--r--source4/lib/ldb/tools/ldbsearch.c2
6 files changed, 12 insertions, 7 deletions
diff --git a/source4/lib/ldb/common/ldb_match.c b/source4/lib/ldb/common/ldb_match.c
index 1269d99a0f..78e4304f6c 100644
--- a/source4/lib/ldb/common/ldb_match.c
+++ b/source4/lib/ldb/common/ldb_match.c
@@ -88,7 +88,7 @@ static int ldb_match_present(struct ldb_context *ldb,
enum ldb_scope scope)
{
- if (ldb_attr_cmp(tree->u.present.attr, "dn") == 0) {
+ if (ldb_attr_cmp(tree->u.present.attr, "distinguishedName") == 0) {
return 1;
}
@@ -151,8 +151,13 @@ static int ldb_match_equality(struct ldb_context *ldb,
struct ldb_dn *valuedn;
int ret;
+ /* catch the old method of dn matching */
if (ldb_attr_cmp(tree->u.equality.attr, "dn") == 0) {
+ ldb_debug(ldb, LDB_DEBUG_FATAL, "attempt to match on 'dn' - should use distinguishedName");
+ return 0;
+ }
+ if (ldb_attr_cmp(tree->u.equality.attr, "distinguishedName") == 0) {
valuedn = ldb_dn_explode_casefold(ldb, tree->u.equality.value.data);
if (valuedn == NULL) {
return 0;
diff --git a/source4/lib/ldb/common/ldb_parse.c b/source4/lib/ldb/common/ldb_parse.c
index 27f9e1ec25..e61511ebec 100644
--- a/source4/lib/ldb/common/ldb_parse.c
+++ b/source4/lib/ldb/common/ldb_parse.c
@@ -621,7 +621,7 @@ static struct ldb_parse_tree *ldb_parse_filter(void *mem_ctx, const char **s)
struct ldb_parse_tree *ldb_parse_tree(void *mem_ctx, const char *s)
{
if (s == NULL || *s == 0) {
- s = "(|(objectClass=*)(dn=*))";
+ s = "(|(objectClass=*)(distinguishedName=*))";
}
while (isspace((unsigned char)*s)) s++;
diff --git a/source4/lib/ldb/tools/cmdline.c b/source4/lib/ldb/tools/cmdline.c
index 2428306f39..ca9d3847e8 100644
--- a/source4/lib/ldb/tools/cmdline.c
+++ b/source4/lib/ldb/tools/cmdline.c
@@ -54,7 +54,7 @@ struct ldb_cmdline *ldb_cmdline_process(struct ldb_context *ldb, int argc, const
{ "recursive", 'r', POPT_ARG_NONE, &options.recursive, 0, "recursive delete", NULL },
{ "num-searches", 0, POPT_ARG_INT, &options.num_searches, 0, "number of test searches", NULL },
{ "num-records", 0, POPT_ARG_INT, &options.num_records, 0, "number of test records", NULL },
- { "all", 'a', POPT_ARG_NONE, &options.all_records, 0, "dn=*", NULL },
+ { "all", 'a', POPT_ARG_NONE, &options.all_records, 0, "objectClass=*", NULL },
{ "nosync", 0, POPT_ARG_NONE, &options.nosync, 0, "non-synchronous transactions", NULL },
{ "sorted", 'S', POPT_ARG_NONE, &options.sorted, 0, "sort attributes", NULL },
{ "sasl-mechanism", 0, POPT_ARG_STRING, &options.sasl_mechanism, 0, "choose SASL mechanism", "MECHANISM" },
diff --git a/source4/lib/ldb/tools/ldbdel.c b/source4/lib/ldb/tools/ldbdel.c
index 6082931e22..bd40fccbdb 100644
--- a/source4/lib/ldb/tools/ldbdel.c
+++ b/source4/lib/ldb/tools/ldbdel.c
@@ -44,10 +44,10 @@
static int ldb_delete_recursive(struct ldb_context *ldb, const struct ldb_dn *dn)
{
int ret, i, total=0;
- const char *attrs[] = { "dn", NULL };
+ const char *attrs[] = { NULL };
struct ldb_message **res;
- ret = ldb_search(ldb, dn, LDB_SCOPE_SUBTREE, "dn=*", attrs, &res);
+ ret = ldb_search(ldb, dn, LDB_SCOPE_SUBTREE, "distinguishedName=*", attrs, &res);
if (ret <= 0) return -1;
for (i=0;i<ret;i++) {
diff --git a/source4/lib/ldb/tools/ldbedit.c b/source4/lib/ldb/tools/ldbedit.c
index a850562a7d..bc629fef93 100644
--- a/source4/lib/ldb/tools/ldbedit.c
+++ b/source4/lib/ldb/tools/ldbedit.c
@@ -283,7 +283,7 @@ static void usage(void)
struct ldb_message **msgs;
struct ldb_dn *basedn = NULL;
int ret;
- const char *expression = "(|(objectclass=*)(dn=*))";
+ const char *expression = "(|(objectclass=*)(distinguishedName=*))";
const char * const * attrs = NULL;
ldb = ldb_init(NULL);
diff --git a/source4/lib/ldb/tools/ldbsearch.c b/source4/lib/ldb/tools/ldbsearch.c
index 4499bc9359..4abc7269d5 100644
--- a/source4/lib/ldb/tools/ldbsearch.c
+++ b/source4/lib/ldb/tools/ldbsearch.c
@@ -124,7 +124,7 @@ 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=*))";
+ const char *expression = "(objectclass=*)";
ldb = ldb_init(NULL);