From 088d5b76ca416e798b505d9fd9266db73a0a8450 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 10 Jun 2010 21:29:57 +1000 Subject: [PATCH] s4:dsdb Simplfy match of objectclass in dsdb_schema_set_el_from_ldb_msg There is no need to do a full ldb_match_msg() for a simple case insensitive string. Andrew Bartlett --- source4/dsdb/schema/schema_set.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index c57f5f10dd..5ecbad214f 100644 --- a/source4/dsdb/schema/schema_set.c +++ b/source4/dsdb/schema/schema_set.c @@ -549,24 +549,11 @@ int dsdb_schema_fill_extended_dn(struct ldb_context *ldb, struct dsdb_schema *sc WERROR dsdb_schema_set_el_from_ldb_msg(struct ldb_context *ldb, struct dsdb_schema *schema, struct ldb_message *msg) { - static struct ldb_parse_tree *attr_tree, *class_tree; - if (!attr_tree) { - attr_tree = ldb_parse_tree(talloc_autofree_context(), "(objectClass=attributeSchema)"); - if (!attr_tree) { - return WERR_NOMEM; - } - } - - if (!class_tree) { - class_tree = ldb_parse_tree(talloc_autofree_context(), "(objectClass=classSchema)"); - if (!class_tree) { - return WERR_NOMEM; - } - } - - if (ldb_match_msg(ldb, msg, attr_tree, NULL, LDB_SCOPE_BASE)) { + if (samdb_find_attribute(ldb, msg, + "objectclass", "attributeSchema") != NULL) { return dsdb_attribute_from_ldb(ldb, schema, msg); - } else if (ldb_match_msg(ldb, msg, class_tree, NULL, LDB_SCOPE_BASE)) { + } else if (samdb_find_attribute(ldb, msg, + "objectclass", "classSchema") != NULL) { return dsdb_class_from_ldb(schema, msg); } -- 2.34.1