Move zeek-setup code into namespaces

This commit is contained in:
Tim Wojtulewicz 2020-08-13 09:19:49 -07:00
parent e78e68b249
commit 6a3f98c835
4 changed files with 52 additions and 39 deletions

View file

@ -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

View file

@ -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<const char*> to_cargs(const std::vector<std::string>& args)
{
std::vector<const char*> rval;
@ -187,7 +191,7 @@ static std::vector<const char*> to_cargs(const std::vector<std::string>& 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<std::string> 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

View file

@ -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

View file

@ -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::StringVal>(zeek_version());
return zeek::make_intrusive<zeek::StringVal>(zeek::zeek_version());
%}
## Converts a record type name to a vector of strings, where each element is