# 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]
/* 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");
/* 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);
*/
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);
}
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;
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;
continue;
}
-#ifdef _SAMBA_BUILD_
if (strcmp(modules[i], "samldb") == 0) {
current = samldb_module_init(ldb, options);
if (!current) {
# End MODULE libldb_timestamps
################################################
-################################################
-# 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]