#pragma once #include #include "zeek/plugin/Plugin.h" namespace btest::plugin::Demo_Hooks { class Plugin : public zeek::plugin::Plugin { protected: int HookLoadFile(const LoadType type, const std::string& file, const std::string& resolved) override; std::pair> HookLoadFileExtended(const LoadType type, const std::string& file, const std::string& resolved) override; std::pair HookFunctionCall(const zeek::Func* func, zeek::detail::Frame* parent, zeek::Args* args) override; bool HookQueueEvent(zeek::Event* event) override; void HookDrainEvents() override; void HookUpdateNetworkTime(double network_time) override; void HookObjDtor(void* obj) override; void HookLogInit(const std::string& writer, const std::string& instantiating_filter, bool local, bool remote, const zeek::logging::WriterBackend::WriterInfo& info, int num_fields, const zeek::threading::Field* const* fields) override; bool HookLogWrite(const std::string& writer, const std::string& filter, const zeek::logging::WriterBackend::WriterInfo& info, int num_fields, const zeek::threading::Field* const* fields, zeek::threading::Value** vals) override; void HookSetupAnalyzerTree(zeek::Connection* conn) override; void HookUnprocessedPacket(const zeek::Packet* packet) override; void MetaHookPre(zeek::plugin::HookType hook, const zeek::plugin::HookArgumentList& args) override; void MetaHookPost(zeek::plugin::HookType hook, const zeek::plugin::HookArgumentList& args, zeek::plugin::HookArgument result) override; void RenderVal(const zeek::threading::Value* val, zeek::ODesc& d) const; // Overridden from zeek::plugin::Plugin. zeek::plugin::Configuration Configure() override; }; extern Plugin plugin; } // namespace btest::plugin::Demo_Hooks