From e4955030bc70d1afd46fbfcd802d3d85d69be8f9 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 16 Nov 2006 09:55:58 +0000 Subject: r19733: More work to fix ldb_map. With the wildcard present, map_attr_find_local() always returns, which is exactly what we don't want. Instead, rely on the overwrite behaviour. Andrew Bartlett (This used to be commit 9b9b7bae16a635d9a9ba72d21a4a4718d294c9b0) --- source4/lib/ldb/modules/ldb_map_outbound.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'source4/lib') diff --git a/source4/lib/ldb/modules/ldb_map_outbound.c b/source4/lib/ldb/modules/ldb_map_outbound.c index 505df79533..6305e6666f 100644 --- a/source4/lib/ldb/modules/ldb_map_outbound.c +++ b/source4/lib/ldb/modules/ldb_map_outbound.c @@ -348,12 +348,8 @@ static int ldb_msg_el_merge_wildcard(struct ldb_module *module, struct ldb_messa /* Perhaps we have a mapping for "*" */ if (map && map->type == MAP_KEEP) { /* We copy everything over, and hope that anything with a - more specific rule is overwritten, or caught by the test below */ + more specific rule is overwritten */ for (i = 0; i < remote->num_elements; i++) { - if (map_attr_find_local(data, remote->elements[i].name)) { - /* The name this would have been copied to has a more specific mapping */ - continue; - } el = ldb_msg_el_map_remote(module, local, map, remote->elements[i].name, &remote->elements[i]); if (el == NULL) { @@ -1039,7 +1035,7 @@ int map_up_callback(struct ldb_context *ldb, const struct ldb_request *req, stru /* Limit result to requested attrs */ if ((req->op.search.attrs) && (!ldb_attr_in_list(req->op.search.attrs, "*"))) { for (i = 0; i < ares->message->num_elements; ) { - const struct ldb_message_element *el = &ares->message->elements[i]; + struct ldb_message_element *el = &ares->message->elements[i]; if (!ldb_attr_in_list(req->op.search.attrs, el->name)) { ldb_msg_remove_element(ares->message, el); } else { -- cgit