0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-10-01 13:18:58 +02:00

ircd:Ⓜ️:vm: Options to generate event_id, origin, origin_server_ts.

This commit is contained in:
Jason Volk 2018-03-14 15:06:35 -07:00
parent e8c10977a1
commit 7ae6ad47ea
2 changed files with 33 additions and 8 deletions

View file

@ -86,6 +86,15 @@ struct ircd::m::vm::opts
// Sign and include signatures object
bool sign {true};
// Generate and include event_id
bool event_id {true};
// Include our origin
bool origin {true};
// Include origin_server_ts
bool origin_server_ts {true};
/// Make writes to database
bool write {true};

View file

@ -36,10 +36,20 @@ ircd::m::vm::commit(json::iov &event,
const json::iov &contents,
const opts &opts)
{
const json::iov::push set[]
const json::iov::add_if _origin
{
{ event, { "origin_server_ts", ircd::time<milliseconds>() }},
{ event, { "origin", my_host() }},
event, opts.origin,
{
"origin", my_host()
}
};
const json::iov::add_if _origin_server_ts
{
event, opts.origin_server_ts,
{
"origin_server_ts", ircd::time<milliseconds>()
}
};
const json::strung content
@ -50,20 +60,26 @@ ircd::m::vm::commit(json::iov &event,
// event_id
sha256::buf event_id_hash;
if(opts.event_id)
{
thread_local char preimage_buf[64_KiB];
event_id_hash = sha256{stringify(mutable_buffer{preimage_buf}, event)};
event_id_hash = sha256
{
stringify(mutable_buffer{preimage_buf}, event)
};
}
event::id::buf eid_buf;
const auto event_id
const string_view event_id
{
m::event_id(event, eid_buf, event_id_hash)
opts.event_id?
m::event_id(event, eid_buf, event_id_hash):
string_view{}
};
const json::iov::push _event_id
const json::iov::add_if _event_id
{
event, { "event_id", event_id }
event, opts.event_id, { "event_id", event_id }
};
// hashes