*/
int partition_request(struct ldb_module *module, struct ldb_request *request)
{
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) { \
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) { \
const struct dsdb_control_current_partition *partition = NULL;
struct ldb_control *partition_ctrl = ldb_request_get_control(request, DSDB_CONTROL_CURRENT_PARTITION_OID);
if (partition_ctrl) {
}
if (partition != NULL) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_request() -> %s",
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_request() -> %s",
ldb_dn_get_linearized(partition->dn));
} else {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_request() -> (metadata partition)");
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_request() -> (metadata partition)");
}
}
struct ldb_control *partition_ctrl;
ac = talloc_get_type(req->context, struct partition_context);
- data = talloc_get_type(ac->module->private_data, struct partition_private_data);
+ data = talloc_get_type(ldb_module_get_private(ac->module), struct partition_private_data);
if (!ares) {
return ldb_module_done(ac->req, NULL, NULL,
struct ldb_request *req)
{
unsigned int i;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
int ret = partition_prep_request(ac, NULL);
if (ret != LDB_SUCCESS) {
unsigned int i;
int ret;
struct dsdb_partition *partition;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
if (!data || !data->partitions) {
return ldb_next_request(module, req);
{
struct ldb_control **saved_controls;
/* Find backend */
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
struct partition_context *ac;
struct ldb_context *ldb;
/* Find backend */
struct dsdb_partition *backend, *backend2;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
/* Skip the lot if 'data' isn't here yet (initialisation) */
{
unsigned int i;
int ret;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
/* Look at base DN */
/* Figure out which partition it is under */
/* Skip the lot if 'data' isn't here yet (initialization) */
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_start_trans() -> (metadata partition)");
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_start_trans() -> (metadata partition)");
}
ret = ldb_next_start_trans(module);
if (ret != LDB_SUCCESS) {
}
for (i=0; data && data->partitions && data->partitions[i]; i++) {
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_start_trans() -> %s",
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_start_trans() -> %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn));
}
ret = ldb_next_start_trans(data->partitions[i]->module);
static int partition_prepare_commit(struct ldb_module *module)
{
unsigned int i;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
for (i=0; data && data->partitions && data->partitions[i]; i++) {
int ret;
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_prepare_commit() -> %s",
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_prepare_commit() -> %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn));
}
ret = ldb_next_prepare_commit(data->partitions[i]->module);
if (ret != LDB_SUCCESS) {
- ldb_asprintf_errstring(module->ldb, "prepare_commit error on %s: %s",
+ ldb_asprintf_errstring(ldb_module_get_ctx(module), "prepare_commit error on %s: %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn),
- ldb_errstring(module->ldb));
+ ldb_errstring(ldb_module_get_ctx(module)));
return ret;
}
}
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_prepare_commit() -> (metadata partition)");
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_prepare_commit() -> (metadata partition)");
}
return ldb_next_prepare_commit(module);
}
{
int ret, ret2;
unsigned int i;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
ret = LDB_SUCCESS;
}
for (i=0; data && data->partitions && data->partitions[i]; i++) {
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_end_trans() -> %s",
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_end_trans() -> %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn));
}
ret2 = ldb_next_end_trans(data->partitions[i]->module);
if (ret2 != LDB_SUCCESS) {
- ldb_asprintf_errstring(module->ldb, "end_trans error on %s: %s",
+ ldb_asprintf_errstring(ldb_module_get_ctx(module), "end_trans error on %s: %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn),
- ldb_errstring(module->ldb));
+ ldb_errstring(ldb_module_get_ctx(module)));
ret = ret2;
}
}
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_end_trans() -> (metadata partition)");
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_end_trans() -> (metadata partition)");
}
ret2 = ldb_next_end_trans(module);
if (ret2 != LDB_SUCCESS) {
{
int ret, final_ret = LDB_SUCCESS;
unsigned int i;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
for (i=0; data && data->partitions && data->partitions[i]; i++) {
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_del_trans() -> %s",
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_del_trans() -> %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn));
}
ret = ldb_next_del_trans(data->partitions[i]->module);
if (ret != LDB_SUCCESS) {
- ldb_asprintf_errstring(module->ldb, "del_trans error on %s: %s",
+ ldb_asprintf_errstring(ldb_module_get_ctx(module), "del_trans error on %s: %s",
ldb_dn_get_linearized(data->partitions[i]->ctrl->dn),
- ldb_errstring(module->ldb));
+ ldb_errstring(ldb_module_get_ctx(module)));
final_ret = ret;
}
}
}
data->in_transaction--;
- if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
- ldb_debug(module->ldb, LDB_DEBUG_TRACE, "partition_del_trans() -> (metadata partition)");
+ if ((module && ldb_module_flags(ldb_module_get_ctx(module)) & LDB_FLG_ENABLE_TRACING)) {
+ ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_TRACE, "partition_del_trans() -> (metadata partition)");
}
ret = ldb_next_del_trans(module);
if (ret != LDB_SUCCESS) {
uint64_t seq_number = 0;
uint64_t timestamp_sequence = 0;
uint64_t timestamp = 0;
- struct partition_private_data *data = talloc_get_type(module->private_data,
+ struct partition_private_data *data = talloc_get_type(ldb_module_get_private(module),
struct partition_private_data);
struct ldb_seqnum_request *seq;
struct ldb_seqnum_result *seqr;
struct partition_context *ac;
int ret;
- data = talloc_get_type(module->private_data, struct partition_private_data);
+ data = talloc_get_type(ldb_module_get_private(module), struct partition_private_data);
if (!data) {
return ldb_next_request(module, req);
}
#include "dsdb/samdb/ldb_modules/partition.h"
#include "lib/util/tsort.h"
#include "lib/ldb-samba/ldb_wrap.h"
+#include "system/filesys.h"
static int partition_sort_compare(const void *v1, const void *v2)
{
}
(*partition)->backend_url = talloc_steal((*partition), backend_url);
- if (!(ldb->flags & LDB_FLG_RDONLY)) {
+ if (!(ldb_module_flags(ldb) & LDB_FLG_RDONLY)) {
char *p;
char *backend_dir = talloc_strdup(*partition, backend_url);
ctrl->version = DSDB_CONTROL_CURRENT_PARTITION_VERSION;
ctrl->dn = talloc_steal(ctrl, dn);
- ret = ldb_connect_backend(ldb, (*partition)->backend_url, NULL, &backend_module);
+ ret = ldb_module_connect_backend(ldb, (*partition)->backend_url, NULL, &backend_module);
if (ret != LDB_SUCCESS) {
return ret;
}
talloc_free(*partition);
return LDB_ERR_CONSTRAINT_VIOLATION;
}
- ret = ldb_load_modules_list(ldb, modules, backend_module, &module_chain);
+ ret = ldb_module_load_list(ldb, modules, backend_module, &module_chain);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb,
"partition_init: "
talloc_free(*partition);
return ret;
}
- ret = ldb_init_module_chain(ldb, module_chain);
+ ret = ldb_module_init_chain(ldb, module_chain);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb,
"partition_init: "
talloc_free(*partition);
return ldb_oom(ldb);
}
- (*partition)->module->next = talloc_steal((*partition)->module, module_chain);
+ ldb_module_set_next((*partition)->module, talloc_steal((*partition)->module, module_chain));
/* if we were in a transaction then we need to start a
transaction on this new partition, otherwise we'll get a
transaction mismatch when we end the transaction */
if (data->in_transaction) {
- if (ldb->flags & LDB_FLG_ENABLE_TRACING) {
+ if (ldb_module_flags(ldb) & LDB_FLG_ENABLE_TRACING) {
ldb_debug(ldb, LDB_DEBUG_TRACE, "partition_start_trans() -> %s (new partition)",
ldb_dn_get_linearized((*partition)->ctrl->dn));
}
struct dsdb_create_partition_exop *ex_op = talloc_get_type(req->op.extended.data, struct dsdb_create_partition_exop);
struct ldb_dn *dn = ex_op->new_dn;
- data = talloc_get_type(module->private_data, struct partition_private_data);
+ data = talloc_get_type(ldb_module_get_private(module), struct partition_private_data);
if (!data) {
/* We are not going to create a partition before we are even set up */
return LDB_ERR_UNWILLING_TO_PERFORM;
return ret;
}
- module->private_data = talloc_steal(module, data);
+ ldb_module_set_private(module, talloc_steal(module, data));
talloc_free(mem_ctx);
ret = ldb_mod_register_control(module, LDB_CONTROL_DOMAIN_SCOPE_OID);