1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

r20849: first step to move away from using find_backend() and use find_partition()

instead

metze
(This used to be commit 0d75cca6f37975a3855973468dc55520cb3b3fb7)
This commit is contained in:
Stefan Metzmacher 2007-01-17 14:19:06 +00:00 committed by Gerald (Jerry) Carter
parent 7730ff44af
commit a35a071fc9

View File

@ -138,7 +138,6 @@ static struct ldb_module *find_backend(struct ldb_module *module, struct ldb_req
return make_module_for_next_request(req, module->ldb, partition->module);
};
/*
fire the caller's callback for every entry, but only send 'done' once.
*/
@ -274,6 +273,7 @@ static int partition_send_all(struct ldb_module *module,
static int partition_replicate(struct ldb_module *module, struct ldb_request *req, struct ldb_dn *dn)
{
int i;
struct dsdb_control_current_partition *partition;
struct ldb_module *backend;
struct partition_private_data *data = talloc_get_type(module->private_data,
struct partition_private_data);
@ -293,10 +293,25 @@ static int partition_replicate(struct ldb_module *module, struct ldb_request *re
}
}
/* Otherwise, we need to find the backend to fire it to */
/* Otherwise, we need to find the partition to fire it to */
/* Find backend */
backend = find_backend(module, req, dn);
/* Find partition */
partition = find_partition(data, dn);
if (!partition) {
/*
* if we haven't found a matching partition
* pass the request to the main ldb
*
* TODO: we should maybe return an error here
* if it's not a special dn
*/
return ldb_next_request(module, req);
}
backend = make_module_for_next_request(req, module->ldb, partition->module);
if (!backend) {
return LDB_ERR_OPERATIONS_ERROR;
}
/* issue request */
return ldb_next_request(backend, req);