diff --git a/src/Options.cc b/src/Options.cc index c35b9753bb..fe88abcb50 100644 --- a/src/Options.cc +++ b/src/Options.cc @@ -15,14 +15,16 @@ #include "bsd-getopt-long.h" #include "logging/writers/ascii/Ascii.h" -void zeek::Options::filter_supervisor_options() +namespace zeek { + +void Options::filter_supervisor_options() { pcap_filter = {}; signature_files = {}; pcap_output_file = {}; } -void zeek::Options::filter_supervised_node_options() +void Options::filter_supervised_node_options() { auto og = *this; *this = {}; @@ -64,14 +66,14 @@ void zeek::Options::filter_supervised_node_options() script_options_to_set = og.script_options_to_set; } -bool zeek::fake_dns() +bool fake_dns() { return zeek::util::zeekenv("ZEEK_DNS_FAKE"); } extern const char* zeek_version(); -void zeek::usage(const char* prog, int code) +void usage(const char* prog, int code) { fprintf(stderr, "zeek version %s\n", zeek_version()); @@ -138,9 +140,9 @@ void zeek::usage(const char* prog, int code) exit(code); } -zeek::Options zeek::parse_cmdline(int argc, char** argv) +Options parse_cmdline(int argc, char** argv) { - zeek::Options rval; + Options rval; // When running unit tests, the first argument on the command line must be // --test, followed by doctest options. Optionally, users can use "--" as @@ -479,3 +481,5 @@ zeek::Options zeek::parse_cmdline(int argc, char** argv) return rval; } + +} // namespace zeek diff --git a/src/zeek-setup.cc b/src/zeek-setup.cc index d9d690121e..8d458814fe 100644 --- a/src/zeek-setup.cc +++ b/src/zeek-setup.cc @@ -158,6 +158,8 @@ int& bro_argc = zeek::detail::zeek_argc; char** zeek::detail::zeek_argv; char**& bro_argv = zeek::detail::zeek_argv; +namespace zeek { + const char* zeek_version() { #ifdef DEBUG @@ -176,6 +178,8 @@ const char* zeek_version() #endif } +namespace detail { + static std::vector to_cargs(const std::vector& args) { std::vector rval; @@ -187,7 +191,7 @@ static std::vector to_cargs(const std::vector& args) return rval; } -bool show_plugins(int level) +static bool show_plugins(int level) { zeek::plugin::Manager::plugin_list plugins = zeek::plugin_mgr->ActivePlugins(); @@ -237,7 +241,7 @@ bool show_plugins(int level) return count != 0; } -void done_with_network() +static void done_with_network() { zeek::util::detail::set_processing_status("TERMINATING", "done_with_network"); @@ -284,7 +288,7 @@ void done_with_network() ZEEK_LSAN_DISABLE(); } -void terminate_bro() +static void terminate_bro() { zeek::util::detail::set_processing_status("TERMINATING", "terminate_bro"); @@ -344,30 +348,6 @@ void terminate_bro() zeek::reporter = nullptr; } -namespace zeek::net::detail { - -void zeek_terminate_loop(const char* reason) - { - zeek::util::detail::set_processing_status("TERMINATING", reason); - zeek::reporter->Info("%s", reason); - - net_get_final_stats(); - done_with_network(); - net_delete(); - - terminate_bro(); - - // Close files after net_delete(), because net_delete() - // might write to connection content files. - zeek::File::CloseOpenFiles(); - - delete zeek::detail::rule_matcher; - - exit(0); - } - -} // namespace zeek::net::detail - RETSIGTYPE sig_handler(int signo) { zeek::util::detail::set_processing_status("TERMINATING", "sig_handler"); @@ -407,8 +387,8 @@ static std::vector get_script_signature_files() return rval; } -zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv, - zeek::Options* zopts) +zeek::detail::SetupResult setup(int argc, char** argv, + zeek::Options* zopts) { ZEEK_LSAN_DISABLE(); std::set_new_handler(bro_new_handler); @@ -898,7 +878,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv, return {0, std::move(options)}; } -int zeek::detail::cleanup(bool did_net_run) +int cleanup(bool did_net_run) { if ( did_net_run ) done_with_network(); @@ -920,3 +900,30 @@ int zeek::detail::cleanup(bool did_net_run) return 0; } + +} // namespace detail + +namespace net::detail { + +void zeek_terminate_loop(const char* reason) + { + zeek::util::detail::set_processing_status("TERMINATING", reason); + zeek::reporter->Info("%s", reason); + + net_get_final_stats(); + zeek::detail::done_with_network(); + net_delete(); + + zeek::detail::terminate_bro(); + + // Close files after net_delete(), because net_delete() + // might write to connection content files. + zeek::File::CloseOpenFiles(); + + delete zeek::detail::rule_matcher; + + exit(0); + } + +} // namespace net::detail +} // namespace zeek diff --git a/src/zeek-setup.h b/src/zeek-setup.h index 22cb85fde7..89333ac673 100644 --- a/src/zeek-setup.h +++ b/src/zeek-setup.h @@ -4,7 +4,7 @@ #include "Options.h" -namespace zeek { namespace detail { +namespace zeek::detail { struct SetupResult { int code = 0; @@ -28,4 +28,4 @@ SetupResult setup(int argc, char** argv, zeek::Options* options = nullptr); */ int cleanup(bool did_net_run); -}} // namespace zeek::detail +} // namespace zeek::detail diff --git a/src/zeek.bif b/src/zeek.bif index 8ff6eaec34..de51649718 100644 --- a/src/zeek.bif +++ b/src/zeek.bif @@ -1806,7 +1806,9 @@ function getpid%(%) : count %} %%{ +namespace zeek { extern const char* zeek_version(); +} // namespace zeek %%} ## Returns the Zeek version string. @@ -1814,7 +1816,7 @@ extern const char* zeek_version(); ## Returns: Zeek's version, e.g., 2.0-beta-47-debug. function zeek_version%(%): string %{ - return zeek::make_intrusive(zeek_version()); + return zeek::make_intrusive(zeek::zeek_version()); %} ## Converts a record type name to a vector of strings, where each element is