summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb/ldb_index.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-10-11 04:34:15 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:39 -0500
commita3b33d6fa811dd1277e51e17ba4a4c3954457397 (patch)
treea1140aab33d7787ff7e916071eea2c515bfaa12e /source4/lib/ldb/ldb_tdb/ldb_index.c
parentd2376d70b280a0642ecac23cfc526b76819d6bb1 (diff)
downloadsamba-a3b33d6fa811dd1277e51e17ba4a4c3954457397.tar.gz
samba-a3b33d6fa811dd1277e51e17ba4a4c3954457397.tar.bz2
samba-a3b33d6fa811dd1277e51e17ba4a4c3954457397.zip
r10889: make searches for dn's less of a special case, and much faster when
part of more complex expressions (This used to be commit 40d304140b4cf22559d6b55c8cbaf1b984baf62f)
Diffstat (limited to 'source4/lib/ldb/ldb_tdb/ldb_index.c')
-rw-r--r--source4/lib/ldb/ldb_tdb/ldb_index.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/lib/ldb/ldb_tdb/ldb_index.c b/source4/lib/ldb/ldb_tdb/ldb_index.c
index c2a4fb1ea8..7c920dd78b 100644
--- a/source4/lib/ldb/ldb_tdb/ldb_index.c
+++ b/source4/lib/ldb/ldb_tdb/ldb_index.c
@@ -319,6 +319,13 @@ static int ltdb_index_dn_leaf(struct ldb_module *module,
if (ldb_attr_cmp(tree->u.equality.attr, LTDB_OBJECTCLASS) == 0) {
return ltdb_index_dn_objectclass(module, tree, index_list, list);
}
+ if (ldb_attr_cmp(tree->u.equality.attr, "distinguishedName") == 0 ||
+ ldb_attr_cmp(tree->u.equality.attr, "dn") == 0) {
+ char *dn = talloc_strdup(list, (char *)tree->u.equality.value.data);
+ list->count = 1;
+ list->dn = &dn;
+ return 1;
+ }
return ltdb_index_dn_simple(module, tree, index_list, list);
}