Add timestamp to events.

This commit is contained in:
Jan Grashoefer 2023-04-19 14:25:09 +02:00
parent 4d97316a6d
commit fa84d2896a
6 changed files with 113 additions and 7 deletions

View file

@ -7,7 +7,6 @@
#include "zeek/Desc.h"
#include "zeek/Func.h"
#include "zeek/NetVar.h"
#include "zeek/RunState.h"
#include "zeek/Trigger.h"
#include "zeek/Val.h"
#include "zeek/iosource/Manager.h"
@ -19,10 +18,11 @@ zeek::EventMgr zeek::event_mgr;
namespace zeek
{
Event::Event(EventHandlerPtr arg_handler, zeek::Args arg_args, util::detail::SourceID arg_src,
analyzer::ID arg_aid, Obj* arg_obj)
: handler(arg_handler), args(std::move(arg_args)), src(arg_src), aid(arg_aid), obj(arg_obj),
next_event(nullptr)
Event::Event(const EventHandlerPtr& arg_handler, zeek::Args arg_args,
util::detail::SourceID arg_src, analyzer::ID arg_aid, Obj* arg_obj,
double arg_timestamp)
: handler(arg_handler), args(std::move(arg_args)), src(arg_src), aid(arg_aid),
timestamp(arg_timestamp), obj(arg_obj), next_event(nullptr)
{
if ( obj )
Ref(obj);
@ -74,6 +74,7 @@ EventMgr::EventMgr()
head = tail = nullptr;
current_src = util::detail::SOURCE_LOCAL;
current_aid = 0;
current_ts = 0;
src_val = nullptr;
draining = false;
}
@ -120,6 +121,8 @@ void EventMgr::QueueEvent(Event* event)
void EventMgr::Dispatch(Event* event, bool no_remote)
{
current_src = event->Source();
current_aid = event->Analyzer();
current_ts = event->Time();
event->Dispatch(no_remote);
Unref(event);
}
@ -154,6 +157,7 @@ void EventMgr::Drain()
current_src = current->Source();
current_aid = current->Analyzer();
current_ts = current->Time();
current->Dispatch();
Unref(current);