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:
parent
7730ff44af
commit
a35a071fc9
@ -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);
|
return make_module_for_next_request(req, module->ldb, partition->module);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
fire the caller's callback for every entry, but only send 'done' once.
|
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)
|
static int partition_replicate(struct ldb_module *module, struct ldb_request *req, struct ldb_dn *dn)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
struct dsdb_control_current_partition *partition;
|
||||||
struct ldb_module *backend;
|
struct ldb_module *backend;
|
||||||
struct partition_private_data *data = talloc_get_type(module->private_data,
|
struct partition_private_data *data = talloc_get_type(module->private_data,
|
||||||
struct partition_private_data);
|
struct partition_private_data);
|
||||||
@ -293,11 +293,26 @@ 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 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;
|
||||||
|
}
|
||||||
|
|
||||||
/* Find backend */
|
|
||||||
backend = find_backend(module, req, dn);
|
|
||||||
|
|
||||||
/* issue request */
|
/* issue request */
|
||||||
return ldb_next_request(backend, req);
|
return ldb_next_request(backend, req);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user