uint32_t index_current;
struct ldb_message *search_msg;
+
+ uint64_t seq_num;
};
{
struct ldb_context *ldb;
struct replmd_replicated_request *ac;
+ int ret;
ac = talloc_get_type(req->context, struct replmd_replicated_request);
ldb = ldb_module_get_ctx(ac->module);
LDB_ERR_OPERATIONS_ERROR);
}
+ ret = replmd_notify(ac->module, req->op.add.message->dn, ac->seq_num);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
+
return ldb_module_done(ac->req, ares->controls,
ares->response, LDB_SUCCESS);
}
struct ldb_val guid_value;
struct replPropertyMetaDataBlob nmd;
struct ldb_val nmd_value;
- uint64_t seq_num;
const struct GUID *our_invocation_id;
time_t t = time(NULL);
NTTIME now;
}
/* Get a sequence number from the backend */
- ret = ldb_sequence_number(ldb, LDB_SEQ_NEXT, &seq_num);
+ ret = ldb_sequence_number(ldb, LDB_SEQ_NEXT, &ac->seq_num);
if (ret != LDB_SUCCESS) {
talloc_free(ac);
return ret;
m->version = 1;
m->originating_change_time = now;
m->originating_invocation_id = *our_invocation_id;
- m->originating_usn = seq_num;
- m->local_usn = seq_num;
+ m->originating_usn = ac->seq_num;
+ m->local_usn = ac->seq_num;
ni++;
}
talloc_free(ac);
return ret;
}
- ret = samdb_msg_add_uint64(ldb, msg, msg, "uSNCreated", seq_num);
+ ret = samdb_msg_add_uint64(ldb, msg, msg, "uSNCreated", ac->seq_num);
if (ret != LDB_SUCCESS) {
ldb_oom(ldb);
talloc_free(ac);
return ret;
}
- ret = samdb_msg_add_uint64(ldb, msg, msg, "uSNChanged", seq_num);
+ ret = samdb_msg_add_uint64(ldb, msg, msg, "uSNChanged", ac->seq_num);
if (ret != LDB_SUCCESS) {
ldb_oom(ldb);
talloc_free(ac);
return ret;
}
- ret = replmd_notify(module, msg->dn, seq_num);
- if (ret != LDB_SUCCESS) {
- talloc_free(ac);
- return ret;
- }
-
/* if a control is there remove if from the modified request */
if (control && !save_controls(control, down_req, &saved_controls)) {
talloc_free(ac);
return ret;
}
- ret = replmd_notify(module, msg->dn, *seq_num);
- if (ret != LDB_SUCCESS) {
- return ret;
- }
-
el->num_values = 1;
el->values = md_value;
}
return ret;
}
- ret = replmd_update_rpmd(module, msg, &seq_num);
+ ret = replmd_update_rpmd(module, msg, &ac->seq_num);
if (ret != LDB_SUCCESS) {
talloc_free(ac);
return ret;