summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/schema_util.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2011-01-17 13:12:15 +1100
committerAndrew Tridgell <tridge@samba.org>2011-01-17 05:23:04 +0100
commit87f31510475c6debd56ff874130f4f5d48bef9a5 (patch)
tree07c44c78c297b9dbecbf5467736f08383f5cfdfd /source4/dsdb/samdb/ldb_modules/schema_util.c
parent633c3e8da5a3a5ee1b61f9045c7dedb39bbb668a (diff)
downloadsamba-87f31510475c6debd56ff874130f4f5d48bef9a5.tar.gz
samba-87f31510475c6debd56ff874130f4f5d48bef9a5.tar.bz2
samba-87f31510475c6debd56ff874130f4f5d48bef9a5.zip
s4-dsdb: pass parent request to dsdb_module_*() functions
this preserves the request hierarchy for dsdb_module_*() calls inside dsdb ldb modules Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/schema_util.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/schema_util.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/schema_util.c b/source4/dsdb/samdb/ldb_modules/schema_util.c
index aa7a33af42..e115104a40 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_util.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_util.c
@@ -39,7 +39,8 @@
int dsdb_module_schema_info_blob_read(struct ldb_module *ldb_module,
uint32_t dsdb_flags,
TALLOC_CTX *mem_ctx,
- struct ldb_val *schema_info_blob)
+ struct ldb_val *schema_info_blob,
+ struct ldb_request *parent)
{
int ldb_err;
const struct ldb_val *blob_val;
@@ -57,7 +58,8 @@ int dsdb_module_schema_info_blob_read(struct ldb_module *ldb_module,
}
ldb_err = dsdb_module_search(ldb_module, mem_ctx, &schema_res, schema_dn,
- LDB_SCOPE_BASE, schema_attrs, dsdb_flags, NULL);
+ LDB_SCOPE_BASE, schema_attrs, dsdb_flags, parent,
+ NULL);
if (ldb_err == LDB_ERR_NO_SUCH_OBJECT) {
DEBUG(0,("dsdb_module_schema_info_blob_read: Schema DN not found!\n"));
talloc_free(schema_res);
@@ -137,7 +139,8 @@ static int dsdb_schema_info_write_prepare(struct ldb_context *ldb,
*/
int dsdb_module_schema_info_blob_write(struct ldb_module *ldb_module,
uint32_t dsdb_flags,
- struct ldb_val *schema_info_blob)
+ struct ldb_val *schema_info_blob,
+ struct ldb_request *parent)
{
int ldb_err;
struct ldb_message *msg;
@@ -158,7 +161,7 @@ int dsdb_module_schema_info_blob_write(struct ldb_module *ldb_module,
}
- ldb_err = dsdb_module_modify(ldb_module, msg, dsdb_flags);
+ ldb_err = dsdb_module_modify(ldb_module, msg, dsdb_flags, parent);
talloc_free(temp_ctx);
@@ -181,7 +184,8 @@ int dsdb_module_schema_info_blob_write(struct ldb_module *ldb_module,
static int dsdb_module_schema_info_read(struct ldb_module *ldb_module,
uint32_t dsdb_flags,
TALLOC_CTX *mem_ctx,
- struct dsdb_schema_info **_schema_info)
+ struct dsdb_schema_info **_schema_info,
+ struct ldb_request *parent)
{
int ret;
DATA_BLOB ndr_blob;
@@ -194,7 +198,7 @@ static int dsdb_module_schema_info_read(struct ldb_module *ldb_module,
}
/* read serialized schemaInfo from LDB */
- ret = dsdb_module_schema_info_blob_read(ldb_module, dsdb_flags, temp_ctx, &ndr_blob);
+ ret = dsdb_module_schema_info_blob_read(ldb_module, dsdb_flags, temp_ctx, &ndr_blob, parent);
if (ret != LDB_SUCCESS) {
talloc_free(temp_ctx);
return ret;
@@ -226,7 +230,8 @@ static int dsdb_module_schema_info_read(struct ldb_module *ldb_module,
*/
static int dsdb_module_schema_info_write(struct ldb_module *ldb_module,
uint32_t dsdb_flags,
- const struct dsdb_schema_info *schema_info)
+ const struct dsdb_schema_info *schema_info,
+ struct ldb_request *parent)
{
WERROR werr;
int ret;
@@ -247,7 +252,7 @@ static int dsdb_module_schema_info_write(struct ldb_module *ldb_module,
}
/* write serialized schemaInfo into LDB */
- ret = dsdb_module_schema_info_blob_write(ldb_module, dsdb_flags, &ndr_blob);
+ ret = dsdb_module_schema_info_blob_write(ldb_module, dsdb_flags, &ndr_blob, parent);
talloc_free(temp_ctx);
@@ -267,7 +272,7 @@ static int dsdb_module_schema_info_write(struct ldb_module *ldb_module,
*/
int dsdb_module_schema_info_update(struct ldb_module *ldb_module,
struct dsdb_schema *schema,
- int dsdb_flags)
+ int dsdb_flags, struct ldb_request *parent)
{
int ret;
const struct GUID *invocation_id;
@@ -287,7 +292,7 @@ int dsdb_module_schema_info_update(struct ldb_module *ldb_module,
}
/* read serialized schemaInfo from LDB */
- ret = dsdb_module_schema_info_read(ldb_module, dsdb_flags, temp_ctx, &schema_info);
+ ret = dsdb_module_schema_info_read(ldb_module, dsdb_flags, temp_ctx, &schema_info, parent);
if (ret == LDB_ERR_NO_SUCH_ATTRIBUTE) {
/* make default value in case
* we have no schemaInfo value yet */
@@ -307,7 +312,7 @@ int dsdb_module_schema_info_update(struct ldb_module *ldb_module,
schema_info->revision++;
schema_info->invocation_id = *invocation_id;
- ret = dsdb_module_schema_info_write(ldb_module, dsdb_flags, schema_info);
+ ret = dsdb_module_schema_info_write(ldb_module, dsdb_flags, schema_info, parent);
if (ret != LDB_SUCCESS) {
ldb_asprintf_errstring(ldb_module_get_ctx(ldb_module),
"dsdb_module_schema_info_update: failed to save schemaInfo - %s\n",