diff options
-rw-r--r-- | source4/dsdb/config.mk | 11 | ||||
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/objectguid.c (renamed from source4/lib/ldb/modules/objectguid.c) | 14 | ||||
-rw-r--r-- | source4/dsdb/samdb/samdb.c | 14 | ||||
-rw-r--r-- | source4/lib/ldb/common/ldb_modules.c | 10 | ||||
-rw-r--r-- | source4/lib/ldb/config.mk | 9 |
5 files changed, 25 insertions, 33 deletions
diff --git a/source4/dsdb/config.mk b/source4/dsdb/config.mk index 51a87c8d67..8f66eab39c 100644 --- a/source4/dsdb/config.mk +++ b/source4/dsdb/config.mk @@ -1,6 +1,17 @@ # Directory Service subsystem ################################################ +# Start MODULE libldb_objectguid +[MODULE::libldb_objectguid] +SUBSYSTEM = LIBLDB +INIT_OBJ_FILES = \ + dsdb/samdb/ldb_modules/objectguid.o +REQUIRED_SUBSYSTEMS = \ + NDR_RAW NDR_MISC +# End MODULE libldb_objectguid +################################################ + +################################################ # Start MODULE libldb_samldb [MODULE::libldb_samldb] SUBSYSTEM = LIBLDB diff --git a/source4/lib/ldb/modules/objectguid.c b/source4/dsdb/samdb/ldb_modules/objectguid.c index 0e789c2bda..45f1a10730 100644 --- a/source4/lib/ldb/modules/objectguid.c +++ b/source4/dsdb/samdb/ldb_modules/objectguid.c @@ -73,10 +73,11 @@ static struct ldb_message_element *objectguid_find_attribute(const struct ldb_me /* add_record: add crateTimestamp/modifyTimestamp attributes */ static int objectguid_add_record(struct ldb_module *module, const struct ldb_message *msg) { + struct ldb_val v; struct ldb_message *msg2; struct ldb_message_element *attribute; struct GUID guid; - char *guidstr; + NTSTATUS nt_status; int ret, i; ldb_debug(module->ldb, LDB_DEBUG_TRACE, "objectguid_add_record\n"); @@ -104,13 +105,16 @@ static int objectguid_add_record(struct ldb_module *module, const struct ldb_mes /* a new GUID */ guid = GUID_random(); - guidstr = GUID_string(msg2, &guid); - if (!guidstr) { + + nt_status = ndr_push_struct_blob(&v, msg2, &guid, + (ndr_push_flags_fn_t)ndr_push_GUID); + if (!NT_STATUS_IS_OK(nt_status)) { return -1; } - if (ldb_msg_add_string(module->ldb, msg2, "objectGUID", guidstr) != 0) { - return -1; + ret = ldb_msg_add_value(module->ldb, msg2, "objectGUID", &v); + if (ret) { + return ret; } ret = ldb_next_add_record(module, msg2); diff --git a/source4/dsdb/samdb/samdb.c b/source4/dsdb/samdb/samdb.c index fd542c5567..448e4292aa 100644 --- a/source4/dsdb/samdb/samdb.c +++ b/source4/dsdb/samdb/samdb.c @@ -978,20 +978,6 @@ int samdb_msg_set_ldaptime(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, str */ int samdb_add(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg) { - int ret; - struct ldb_val v; - NTSTATUS status; - struct GUID guid = GUID_random(); - - status = ndr_push_struct_blob(&v, mem_ctx, &guid, - (ndr_push_flags_fn_t)ndr_push_GUID); - if (!NT_STATUS_IS_OK(status)) { - return -1; - } - - ret = ldb_msg_add_value(sam_ldb, msg, "objectGUID", &v); - if (ret != 0) return ret; - return ldb_add(sam_ldb, msg); } diff --git a/source4/lib/ldb/common/ldb_modules.c b/source4/lib/ldb/common/ldb_modules.c index d6213be79a..dcc384ffad 100644 --- a/source4/lib/ldb/common/ldb_modules.c +++ b/source4/lib/ldb/common/ldb_modules.c @@ -189,8 +189,8 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[]) continue; } - if (strcmp(modules[i], "objectguid") == 0) { - current = objectguid_module_init(ldb, options); + if (strcmp(modules[i], "rdn_name") == 0) { + current = rdn_name_module_init(ldb, options); if (!current) { ldb_debug(ldb, LDB_DEBUG_FATAL, "function 'init_module' in %s fails\n", modules[i]); return -1; @@ -199,8 +199,9 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[]) continue; } - if (strcmp(modules[i], "rdn_name") == 0) { - current = rdn_name_module_init(ldb, options); +#ifdef _SAMBA_BUILD_ + if (strcmp(modules[i], "objectguid") == 0) { + current = objectguid_module_init(ldb, options); if (!current) { ldb_debug(ldb, LDB_DEBUG_FATAL, "function 'init_module' in %s fails\n", modules[i]); return -1; @@ -209,7 +210,6 @@ int ldb_load_modules(struct ldb_context *ldb, const char *options[]) continue; } -#ifdef _SAMBA_BUILD_ if (strcmp(modules[i], "samldb") == 0) { current = samldb_module_init(ldb, options); if (!current) { diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk index fe339f9e17..87e15f1375 100644 --- a/source4/lib/ldb/config.mk +++ b/source4/lib/ldb/config.mk @@ -8,15 +8,6 @@ INIT_OBJ_FILES = \ ################################################ ################################################ -# Start MODULE libldb_objectguid -[MODULE::libldb_objectguid] -SUBSYSTEM = LIBLDB -INIT_OBJ_FILES = \ - lib/ldb/modules/objectguid.o -# End MODULE libldb_objectguid -################################################ - -################################################ # Start MODULE libldb_rdn_name [MODULE::libldb_rdn_name] SUBSYSTEM = LIBLDB |