Restore globally-namespaced plugin_mgr variable, move zeek::plugin::plugin_mgr to zeek::plugin_mgr

This commit is contained in:
Tim Wojtulewicz 2020-07-15 16:45:27 -07:00
parent 9400b863ea
commit 834b76f94f
7 changed files with 35 additions and 29 deletions

View file

@ -350,7 +350,7 @@ PktSrc* Manager::OpenPktSrc(const std::string& path, bool is_live)
PktSrcComponent* component = nullptr; PktSrcComponent* component = nullptr;
std::list<PktSrcComponent*> all_components = plugin_mgr->Components<PktSrcComponent>(); std::list<PktSrcComponent*> all_components = zeek::plugin_mgr->Components<PktSrcComponent>();
for ( const auto& c : all_components ) for ( const auto& c : all_components )
{ {
if ( c->HandlesPrefix(prefix) && if ( c->HandlesPrefix(prefix) &&
@ -388,7 +388,7 @@ PktDumper* Manager::OpenPktDumper(const std::string& path, bool append)
PktDumperComponent* component = nullptr; PktDumperComponent* component = nullptr;
std::list<PktDumperComponent*> all_components = plugin_mgr->Components<PktDumperComponent>(); std::list<PktDumperComponent*> all_components = zeek::plugin_mgr->Components<PktDumperComponent>();
for ( const auto& c : all_components ) for ( const auto& c : all_components )
{ {
if ( c->HandlesPrefix(prefix) ) if ( c->HandlesPrefix(prefix) )

View file

@ -12,7 +12,8 @@
#include "../Reporter.h" #include "../Reporter.h"
#include "../ZeekArgs.h" #include "../ZeekArgs.h"
namespace zeek::plugin { namespace zeek {
namespace plugin {
// Macros that trigger plugin hooks. We put this into macros to short-cut the // Macros that trigger plugin hooks. We put this into macros to short-cut the
// code for the most common case that no plugin defines the hook. // code for the most common case that no plugin defines the hook.
@ -25,7 +26,7 @@ namespace zeek::plugin {
* @param method_call The \a Manager method corresponding to the hook. * @param method_call The \a Manager method corresponding to the hook.
*/ */
#define PLUGIN_HOOK_VOID(hook, method_call) \ #define PLUGIN_HOOK_VOID(hook, method_call) \
{ if ( plugin_mgr->HavePluginForHook(zeek::plugin::hook) ) plugin_mgr->method_call; } { if ( zeek::plugin_mgr->HavePluginForHook(zeek::plugin::hook) ) zeek::plugin_mgr->method_call; }
/** /**
* Macro to trigger hooks that return a result. * Macro to trigger hooks that return a result.
@ -38,7 +39,7 @@ namespace zeek::plugin {
* the hook. * the hook.
*/ */
#define PLUGIN_HOOK_WITH_RESULT(hook, method_call, default_result) \ #define PLUGIN_HOOK_WITH_RESULT(hook, method_call, default_result) \
(plugin_mgr->HavePluginForHook(zeek::plugin::hook) ? plugin_mgr->method_call : (default_result)) (zeek::plugin_mgr->HavePluginForHook(zeek::plugin::hook) ? zeek::plugin_mgr->method_call : (default_result))
/** /**
* A singleton object managing all plugins. * A singleton object managing all plugins.
@ -480,7 +481,11 @@ std::list<T *> Manager::Components() const
return result; return result;
} }
} } // namespace plugin
extern zeek::plugin::Manager* plugin_mgr;
} // namespace zeek
// TOOD: should this just be zeek::detail? // TOOD: should this just be zeek::detail?
namespace zeek::detail::plugin { namespace zeek::detail::plugin {
@ -499,10 +504,10 @@ public:
} }
namespace plugin { namespace plugin {
using Manager [[deprecated("Remove in v4.1. Use zeek::plugin::Manager instead.")]] = zeek::plugin::Manager; using Manager [[deprecated("Remove in v4.1. Use zeek::plugin::Manager.")]] = zeek::plugin::Manager;
} }
/** /**
* The global plugin manager singleton. * The global plugin manager singleton.
*/ */
extern zeek::plugin::Manager* plugin_mgr; extern zeek::plugin::Manager*& plugin_mgr [[deprecated("Remove in v4.1. Use zeek::plugin_mgr.")]];

View file

@ -347,27 +347,27 @@ void Plugin::AddComponent(zeek::plugin::Component* c)
Plugin::hook_list Plugin::EnabledHooks() const Plugin::hook_list Plugin::EnabledHooks() const
{ {
return plugin_mgr->HooksEnabledForPlugin(this); return zeek::plugin_mgr->HooksEnabledForPlugin(this);
} }
void Plugin::EnableHook(zeek::plugin::HookType hook, int priority) void Plugin::EnableHook(zeek::plugin::HookType hook, int priority)
{ {
plugin_mgr->EnableHook(hook, this, priority); zeek::plugin_mgr->EnableHook(hook, this, priority);
} }
void Plugin::DisableHook(zeek::plugin::HookType hook) void Plugin::DisableHook(zeek::plugin::HookType hook)
{ {
plugin_mgr->DisableHook(hook, this); zeek::plugin_mgr->DisableHook(hook, this);
} }
void Plugin::RequestEvent(EventHandlerPtr handler) void Plugin::RequestEvent(EventHandlerPtr handler)
{ {
plugin_mgr->RequestEvent(handler, this); zeek::plugin_mgr->RequestEvent(handler, this);
} }
void Plugin::RequestBroObjDtor(Obj* obj) void Plugin::RequestBroObjDtor(Obj* obj)
{ {
plugin_mgr->RequestBroObjDtor(obj, this); zeek::plugin_mgr->RequestBroObjDtor(obj, this);
} }
int Plugin::HookLoadFile(const LoadType type, const std::string& file, const std::string& resolved) int Plugin::HookLoadFile(const LoadType type, const std::string& file, const std::string& resolved)

View file

@ -375,7 +375,7 @@ when return TOK_WHEN;
switch ( rc ) { switch ( rc ) {
case -1: case -1:
// No plugin in charge of this file. // No plugin in charge of this file.
plugin_mgr->ActivateDynamicPlugin(plugin); zeek::plugin_mgr->ActivateDynamicPlugin(plugin);
break; break;
case 0: case 0:

View file

@ -89,6 +89,8 @@ zeek::ValManager* zeek::val_mgr = nullptr;
zeek::ValManager*& val_mgr = zeek::val_mgr; zeek::ValManager*& val_mgr = zeek::val_mgr;
zeek::analyzer::Manager* zeek::analyzer_mgr = nullptr; zeek::analyzer::Manager* zeek::analyzer_mgr = nullptr;
zeek::analyzer::Manager*& analyzer_mgr = zeek::analyzer_mgr; zeek::analyzer::Manager*& analyzer_mgr = zeek::analyzer_mgr;
zeek::plugin::Manager* zeek::plugin_mgr = nullptr;
zeek::plugin::Manager*& plugin_mgr = zeek::plugin_mgr;
DNS_Mgr* dns_mgr; DNS_Mgr* dns_mgr;
TimerMgr* timer_mgr; TimerMgr* timer_mgr;
@ -96,7 +98,6 @@ TimerMgr* timer_mgr;
logging::Manager* log_mgr = nullptr; logging::Manager* log_mgr = nullptr;
threading::Manager* thread_mgr = nullptr; threading::Manager* thread_mgr = nullptr;
input::Manager* input_mgr = nullptr; input::Manager* input_mgr = nullptr;
zeek::plugin::Manager* plugin_mgr = nullptr;
file_analysis::Manager* file_mgr = nullptr; file_analysis::Manager* file_mgr = nullptr;
zeekygen::Manager* zeekygen_mgr = nullptr; zeekygen::Manager* zeekygen_mgr = nullptr;
iosource::Manager* iosource_mgr = nullptr; iosource::Manager* iosource_mgr = nullptr;
@ -164,7 +165,7 @@ static std::vector<const char*> to_cargs(const std::vector<std::string>& args)
bool show_plugins(int level) bool show_plugins(int level)
{ {
zeek::plugin::Manager::plugin_list plugins = plugin_mgr->ActivePlugins(); zeek::plugin::Manager::plugin_list plugins = zeek::plugin_mgr->ActivePlugins();
if ( ! plugins.size() ) if ( ! plugins.size() )
{ {
@ -195,7 +196,7 @@ bool show_plugins(int level)
printf("%s", d.Description()); printf("%s", d.Description());
zeek::plugin::Manager::inactive_plugin_list inactives = plugin_mgr->InactivePlugins(); zeek::plugin::Manager::inactive_plugin_list inactives = zeek::plugin_mgr->InactivePlugins();
if ( inactives.size() && ! requested_plugins.size() ) if ( inactives.size() && ! requested_plugins.size() )
{ {
@ -300,7 +301,7 @@ void terminate_bro()
mgr.Drain(); mgr.Drain();
plugin_mgr->FinishPlugins(); zeek::plugin_mgr->FinishPlugins();
delete zeekygen_mgr; delete zeekygen_mgr;
delete zeek::analyzer_mgr; delete zeek::analyzer_mgr;
@ -310,7 +311,7 @@ void terminate_bro()
delete event_registry; delete event_registry;
delete log_mgr; delete log_mgr;
delete reporter; delete reporter;
delete plugin_mgr; delete zeek::plugin_mgr;
delete zeek::val_mgr; delete zeek::val_mgr;
// free the global scope // free the global scope
@ -471,7 +472,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv,
zeek::val_mgr = new ValManager(); zeek::val_mgr = new ValManager();
reporter = new Reporter(options.abort_on_scripting_errors); reporter = new Reporter(options.abort_on_scripting_errors);
thread_mgr = new threading::Manager(); thread_mgr = new threading::Manager();
plugin_mgr = new zeek::plugin::Manager(); zeek::plugin_mgr = new zeek::plugin::Manager();
#ifdef DEBUG #ifdef DEBUG
if ( options.debug_log_streams ) if ( options.debug_log_streams )
@ -537,7 +538,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv,
if ( ! options.bare_mode ) if ( ! options.bare_mode )
add_input_file("base/init-default.zeek"); add_input_file("base/init-default.zeek");
plugin_mgr->SearchDynamicPlugins(bro_plugin_path()); zeek::plugin_mgr->SearchDynamicPlugins(bro_plugin_path());
if ( options.plugins_to_load.empty() && options.scripts_to_load.empty() && if ( options.plugins_to_load.empty() && options.scripts_to_load.empty() &&
options.script_options_to_set.empty() && options.script_options_to_set.empty() &&
@ -575,7 +576,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv,
broker_mgr = new bro_broker::Manager(broker_real_time); broker_mgr = new bro_broker::Manager(broker_real_time);
trigger_mgr = new zeek::detail::trigger::Manager(); trigger_mgr = new zeek::detail::trigger::Manager();
plugin_mgr->InitPreScript(); zeek::plugin_mgr->InitPreScript();
zeek::analyzer_mgr->InitPreScript(); zeek::analyzer_mgr->InitPreScript();
file_mgr->InitPreScript(); file_mgr->InitPreScript();
zeekygen_mgr->InitPreScript(); zeekygen_mgr->InitPreScript();
@ -585,14 +586,14 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv,
for ( set<string>::const_iterator i = requested_plugins.begin(); for ( set<string>::const_iterator i = requested_plugins.begin();
i != requested_plugins.end(); i++ ) i != requested_plugins.end(); i++ )
{ {
if ( ! plugin_mgr->ActivateDynamicPlugin(*i) ) if ( ! zeek::plugin_mgr->ActivateDynamicPlugin(*i) )
missing_plugin = true; missing_plugin = true;
} }
if ( missing_plugin ) if ( missing_plugin )
reporter->FatalError("Failed to activate requested dynamic plugin(s)."); reporter->FatalError("Failed to activate requested dynamic plugin(s).");
plugin_mgr->ActivateDynamicPlugins(! options.bare_mode); zeek::plugin_mgr->ActivateDynamicPlugins(! options.bare_mode);
init_event_handlers(); init_event_handlers();
@ -640,14 +641,14 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv,
"BinPAC::flowbuffer_contract_threshold")->GetVal()->AsCount(); "BinPAC::flowbuffer_contract_threshold")->GetVal()->AsCount();
binpac::init(&flowbuffer_policy); binpac::init(&flowbuffer_policy);
plugin_mgr->InitBifs(); zeek::plugin_mgr->InitBifs();
if ( reporter->Errors() > 0 ) if ( reporter->Errors() > 0 )
exit(1); exit(1);
iosource_mgr->InitPostScript(); iosource_mgr->InitPostScript();
log_mgr->InitPostScript(); log_mgr->InitPostScript();
plugin_mgr->InitPostScript(); zeek::plugin_mgr->InitPostScript();
zeekygen_mgr->InitPostScript(); zeekygen_mgr->InitPostScript();
broker_mgr->InitPostScript(); broker_mgr->InitPostScript();
timer_mgr->InitPostScript(); timer_mgr->InitPostScript();

View file

@ -54,7 +54,7 @@ static string RemoveLeadingSpace(const string& s)
// use for indexing. // use for indexing.
static string NormalizeScriptPath(const string& path) static string NormalizeScriptPath(const string& path)
{ {
if ( auto p = plugin_mgr->LookupPluginByPath(path) ) if ( auto p = zeek::plugin_mgr->LookupPluginByPath(path) )
{ {
auto rval = normalize_path(path); auto rval = normalize_path(path);
auto prefix = SafeBasename(p->PluginDirectory()).result; auto prefix = SafeBasename(p->PluginDirectory()).result;

View file

@ -265,7 +265,7 @@ void ProtoAnalyzerTarget::DoCreateAnalyzerDoc(FILE* f) const
WriteAnalyzerTagDefn(f, "Analyzer"); WriteAnalyzerTagDefn(f, "Analyzer");
zeek::plugin::Manager::plugin_list plugins = plugin_mgr->ActivePlugins(); zeek::plugin::Manager::plugin_list plugins = zeek::plugin_mgr->ActivePlugins();
zeek::plugin::Manager::plugin_list::const_iterator it; zeek::plugin::Manager::plugin_list::const_iterator it;
for ( it = plugins.begin(); it != plugins.end(); ++it ) for ( it = plugins.begin(); it != plugins.end(); ++it )
@ -291,7 +291,7 @@ void FileAnalyzerTarget::DoCreateAnalyzerDoc(FILE* f) const
WriteAnalyzerTagDefn(f, "Files"); WriteAnalyzerTagDefn(f, "Files");
zeek::plugin::Manager::plugin_list plugins = plugin_mgr->ActivePlugins(); zeek::plugin::Manager::plugin_list plugins = zeek::plugin_mgr->ActivePlugins();
zeek::plugin::Manager::plugin_list::const_iterator it; zeek::plugin::Manager::plugin_list::const_iterator it;
for ( it = plugins.begin(); it != plugins.end(); ++it ) for ( it = plugins.begin(); it != plugins.end(); ++it )