0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-25 08:12:37 +01:00

Improve exception handling around several hook handlers.

Revert "modules/vm: Allow ctx::interrupted to propagate call_hook()."
This also reverts commit cdae254e14.
This commit is contained in:
Jason Volk 2019-07-26 11:59:14 -07:00
parent e4e15e6391
commit 6a7e7f448b
3 changed files with 28 additions and 13 deletions

View file

@ -35,6 +35,7 @@ _join_room__m_direct_hookfn
void
_join_room__m_direct(const m::event &event,
m::vm::eval &eval)
try
{
const m::user::id &user_id
{
@ -125,3 +126,13 @@ _join_room__m_direct(const m::event &event,
top.~object();
account_data.set("m.direct", json::object(out.completed()));
}
catch(const std::exception &e)
{
log::error
{
m::log, "Failure while setting m.direct account_data for %s in %s :%s",
json::get<"sender"_>(event),
json::get<"room_id"_>(event),
e.what()
};
}

View file

@ -48,6 +48,7 @@ ircd::m::affect_user_room_hookfn
void
ircd::m::affect_user_room(const m::event &event,
m::vm::eval &eval)
try
{
const auto &room_id
{
@ -69,9 +70,24 @@ ircd::m::affect_user_room(const m::event &event,
create(subject);
//TODO: ABA / TXN
m::user::room user_room{subject};
m::user::room user_room
{
subject
};
send(user_room, sender, "ircd.member", room_id, at<"content"_>(event));
}
catch(const std::exception &e)
{
log::error
{
log, "Failed to update user %s room for membership change in %s by %s :%s",
json::get<"state_key"_>(event),
json::get<"room_id"_>(event),
json::get<"sender"_>(event),
e.what()
};
}
decltype(ircd::m::auth_room_member_hookfn)
ircd::m::auth_room_member_hookfn

View file

@ -1088,18 +1088,6 @@ try
{
hook(event, std::forward<T>(data));
}
catch(const ctx::interrupted &e)
{
log::derror
{
"%s | phase:%s :%s",
loghead(eval),
unquote(hook.feature.get("name")),
e.what(),
};
throw;
}
catch(const m::error &e)
{
log::derror