EventMgr: Add Dispatch() with handler and args

Allow users to call event_mgr.Dispatch(handler, args) instead of
constructing the Event instance themselves. Deprecate the old API
and replace users.

There's a subtle change that net_done() may be propagated via
auto_publish() now, but that still needs opt-in from script land
and likely no one did that, or else they'd expected to have it
work anyhow.
This commit is contained in:
Arne Welzel 2025-04-07 09:53:44 +02:00
parent 6d97d5526a
commit 0e027fa4e3
7 changed files with 34 additions and 14 deletions

View file

@ -106,12 +106,8 @@ void EventHandler::NewEvent(Args* vl) {
return;
auto vargs = MakeCallArgumentVector(*vl, GetType()->Params());
auto ev = new Event(new_event, {
make_intrusive<StringVal>(name),
std::move(vargs),
});
event_mgr.Dispatch(ev);
auto args = zeek::Args{make_intrusive<StringVal>(name), std::move(vargs)};
event_mgr.Dispatch(new_event, std::move(args));
}
uint64_t EventHandler::CallCount() const { return call_count ? call_count->Value() : 0; }