From 4c6eaeee7d7c09800f525dc146f2f379955f69f8 Mon Sep 17 00:00:00 2001 From: Adrian Cochrane Date: Tue, 12 Jan 2016 13:11:03 +1300 Subject: [PATCH 4/5] ldb-samba: Correct error reporting to match Windows In some cases instead of replying with an error Windows instead returns 0 results. Signed-off-by: Adrian Cochrane --- lib/ldb-samba/ldb_matching_rules.c | 7 ++++--- lib/ldb/common/ldb_match.c | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ldb-samba/ldb_matching_rules.c b/lib/ldb-samba/ldb_matching_rules.c index cc69e44..1c9559e 100644 --- a/lib/ldb-samba/ldb_matching_rules.c +++ b/lib/ldb-samba/ldb_matching_rules.c @@ -227,8 +227,8 @@ static int ldb_eval_transitive_filter(TALLOC_CTX *mem_ctx, */ dn_to_match = dsdb_dn_parse(mem_ctx, ldb, value_to_match, dn_oid); if (dn_to_match == NULL) { - *matched = false; - return LDB_ERR_INVALID_DN_SYNTAX; + *matched = 0; + return LDB_SUCCESS; } return ldb_eval_transitive_filter_helper(mem_ctx, ldb, attr, @@ -292,8 +292,9 @@ static int ldb_comparator_trans(struct ldb_context *ldb, * mailing list. */ if (schema_attr->linkID == 0) { + *matched = 0; talloc_free(tmp_ctx); - return LDB_ERR_INAPPROPRIATE_MATCHING; + return LDB_SUCCESS; } /* Duplicate original msg dn as the msg must not be modified */ diff --git a/lib/ldb/common/ldb_match.c b/lib/ldb/common/ldb_match.c index a493dae..6d2bef6 100644 --- a/lib/ldb/common/ldb_match.c +++ b/lib/ldb/common/ldb_match.c @@ -480,9 +480,10 @@ static int ldb_match_extended(struct ldb_context *ldb, rule = ldb_find_extended_match_rule(ldb, tree->u.extended.rule_id); if (rule == NULL) { + *matched = 0; ldb_debug(ldb, LDB_DEBUG_ERROR, "ldb: unknown extended rule_id %s", tree->u.extended.rule_id); - return LDB_ERR_INAPPROPRIATE_MATCHING; + return LDB_SUCCESS; } return rule->callback(ldb, rule->oid, msg, -- 1.9.1