diff --git a/modules/s_fetch.cc b/modules/s_fetch.cc index 6d0e72626..9fa68a545 100644 --- a/modules/s_fetch.cc +++ b/modules/s_fetch.cc @@ -830,7 +830,7 @@ try request.started = ircd::time(); request.last = ircd::time(); - static_cast(request) = + *static_cast(&request) = { request.event_id, request.buf, std::move(opts) }; @@ -864,6 +864,8 @@ catch(const std::exception &e) e.what() }; + server::cancel(request); + static_cast(&request)->~event(); request.origin = {}; return false; }