zeek/testing/btest/plugins/iosource-plugin/src/Plugin.cc
Benjamin Bannier f5a76c1aed Reformat Zeek in Spicy style
This largely copies over Spicy's `.clang-format` configuration file. The
one place where we deviate is header include order since Zeek depends on
headers being included in a certain order.
2023-10-30 09:40:55 +01:00

60 lines
1.7 KiB
C++

#include "Plugin.h"
namespace zeek::run_state {
extern double processing_start_time;
}
namespace btest::plugin::Demo_Iosource {
Plugin plugin;
}
using namespace btest::plugin::Demo_Iosource;
zeek::plugin::Configuration Plugin::Configure() {
EnableHook(zeek::plugin::HOOK_DRAIN_EVENTS, 0);
zeek::plugin::Configuration config;
config.name = "Demo::Iosource";
config.description = "This is a iosource";
config.version.major = 1;
config.version.minor = 0;
config.version.patch = 0;
return config;
}
void Plugin::InitPostScript() {
std::fprintf(stdout, "%.6f InitPostScript\n", zeek::run_state::network_time);
ts1 = new TimeoutSource("timeout-source-1");
ts2 = new TimeoutSource("timeout-source-2");
fd1 = new FdSource("fd-source-1");
fd2 = new FdSource("fd-source-2");
}
void Plugin::HookDrainEvents() {
++round;
if ( zeek::run_state::processing_start_time != 0.0 ) // ignore drains from dispatch_packet
return;
//
std::fprintf(stdout, "%.6f HookDrainEvents %d\n", zeek::run_state::network_time, round);
if ( (round % 9) == 0 ) {
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, ts1->Tag());
ts1->Fire();
}
if ( (round % 19) == 0 ) {
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, ts2->Tag());
ts2->Fire();
}
if ( (round % 19) == 0 ) {
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, fd1->Tag());
fd1->Fire();
}
if ( (round % 23) == 0 ) {
std::fprintf(stdout, "%.6f Firing %s\n", zeek::run_state::network_time, fd2->Tag());
fd2->Fire();
}
}