Merge remote-tracking branch 'origin/topic/timw/266-namespaces'

Merge adjustments:

- Preserved original `base_type_no_ref` argument type as ::TypeTag
- Removed superfluous #pragma guard around deprecated TableVal ctor
- Clarify NEWS regarding MetaHook{Pre,Post} deprecations
- Simplify some `::zeek::` qualifications to just `zeek::`
- Prefixed FORWARD_DECLARE_NAMESPACED macro with ZEEK_

* origin/topic/timw/266-namespaces:
  Disable some deprecation diagnostics for GCC
  Rename BroType to Type
  Update NEWS
  Review cleanup
  Move Type types to zeek namespace
  Move Flare/Pipe from the bro namespace to zeek::detail
  Move Attr to the zeek::detail namespace
  Move Trigger into the zeek::detail namespace
  Move ID to the zeek::detail namespace
  Move Anon.h into zeek::detail namespace
  Mark all of the aliased classes in plugin/Plugin.h deprecated, and fix all of the plugins that were using them
  Move all of the base plugin classes into the zeek::plugin namespace
  Expr: move all classes into zeek::detail
  Stmt: move Stmt classes into zeek::detail namespace
  Add utility macro for creating namespaced aliases for classes
This commit is contained in:
Jon Siwek 2020-06-11 23:12:02 -07:00
commit d4f3cad7d1
256 changed files with 4277 additions and 3501 deletions

View file

@ -19,7 +19,7 @@
#include "../input.h"
using namespace std;
using namespace plugin;
using namespace zeek::plugin;
Plugin* Manager::current_plugin = nullptr;
const char* Manager::current_dir = nullptr;
@ -515,28 +515,22 @@ static bool hook_cmp(std::pair<int, Plugin*> a, std::pair<int, Plugin*> b)
return a.first > b.first;
}
std::list<std::pair<HookType, int> > Manager::HooksEnabledForPlugin(const Plugin* plugin) const
std::list<std::pair<zeek::plugin::HookType, int> > Manager::HooksEnabledForPlugin(const Plugin* plugin) const
{
std::list<std::pair<HookType, int> > enabled;
std::list<std::pair<zeek::plugin::HookType, int> > enabled;
for ( int i = 0; i < NUM_HOOKS; i++ )
{
hook_list* l = hooks[i];
if ( ! l )
continue;
for ( hook_list::iterator j = l->begin(); j != l->end(); j++ )
{
if ( (*j).second == plugin )
enabled.push_back(std::make_pair((HookType)i, (*j).first));
}
if ( hook_list* l = hooks[i] )
for ( const auto& [hook, hook_plugin] : *l )
if ( hook_plugin == plugin )
enabled.push_back(std::make_pair(static_cast<zeek::plugin::HookType>(i), hook));
}
return enabled;
}
void Manager::EnableHook(HookType hook, Plugin* plugin, int prio)
void Manager::EnableHook(zeek::plugin::HookType hook, Plugin* plugin, int prio)
{
if ( ! hooks[hook] )
hooks[hook] = new hook_list;
@ -554,7 +548,7 @@ void Manager::EnableHook(HookType hook, Plugin* plugin, int prio)
l->sort(hook_cmp);
}
void Manager::DisableHook(HookType hook, Plugin* plugin)
void Manager::DisableHook(zeek::plugin::HookType hook, Plugin* plugin)
{
hook_list* l = hooks[hook];
@ -577,6 +571,19 @@ void Manager::DisableHook(HookType hook, Plugin* plugin)
}
}
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
void Manager::EnableHook(::plugin::HookType hook, Plugin* plugin, int prio)
{
EnableHook(static_cast<zeek::plugin::HookType>(hook), plugin, prio);
}
void Manager::DisableHook(::plugin::HookType hook, Plugin* plugin)
{
DisableHook(static_cast<zeek::plugin::HookType>(hook), plugin);
}
#pragma GCC diagnostic pop
void Manager::RequestEvent(EventHandlerPtr handler, Plugin* plugin)
{
DBG_LOG(DBG_PLUGINS, "Plugin %s requested event %s",
@ -593,15 +600,15 @@ int Manager::HookLoadFile(const Plugin::LoadType type, const string& file, const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(type));
args.push_back(HookArgument(file));
args.push_back(HookArgument(resolved));
MetaHookPre(HOOK_LOAD_FILE, args);
MetaHookPre(zeek::plugin::HOOK_LOAD_FILE, args);
}
hook_list* l = hooks[HOOK_LOAD_FILE];
hook_list* l = hooks[zeek::plugin::HOOK_LOAD_FILE];
int rc = -1;
@ -616,8 +623,8 @@ int Manager::HookLoadFile(const Plugin::LoadType type, const string& file, const
break;
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_LOAD_FILE, args, HookArgument(rc));
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_LOAD_FILE, args, HookArgument(rc));
return rc;
}
@ -629,7 +636,7 @@ Manager::HookCallFunction(const Func* func, Frame* parent,
HookArgumentList args;
val_list vargs;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
vargs.resize(vecargs->size());
@ -639,10 +646,10 @@ Manager::HookCallFunction(const Func* func, Frame* parent,
args.push_back(HookArgument(func));
args.push_back(HookArgument(parent));
args.push_back(HookArgument(&vargs));
MetaHookPre(HOOK_CALL_FUNCTION, args);
MetaHookPre(zeek::plugin::HOOK_CALL_FUNCTION, args);
}
hook_list* l = hooks[HOOK_CALL_FUNCTION];
hook_list* l = hooks[zeek::plugin::HOOK_CALL_FUNCTION];
std::pair<bool, IntrusivePtr<Val>> rval{false, nullptr};
@ -659,8 +666,8 @@ Manager::HookCallFunction(const Func* func, Frame* parent,
}
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_CALL_FUNCTION, args,
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_CALL_FUNCTION, args,
HookArgument(std::make_pair(rval.first, rval.second.get())));
return rval;
@ -670,13 +677,13 @@ bool Manager::HookQueueEvent(Event* event) const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(event));
MetaHookPre(HOOK_QUEUE_EVENT, args);
MetaHookPre(zeek::plugin::HOOK_QUEUE_EVENT, args);
}
hook_list* l = hooks[HOOK_QUEUE_EVENT];
hook_list* l = hooks[zeek::plugin::HOOK_QUEUE_EVENT];
bool result = false;
@ -692,8 +699,8 @@ bool Manager::HookQueueEvent(Event* event) const
}
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_QUEUE_EVENT, args, HookArgument(result));
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_QUEUE_EVENT, args, HookArgument(result));
return result;
}
@ -702,10 +709,10 @@ void Manager::HookDrainEvents() const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
MetaHookPre(HOOK_DRAIN_EVENTS, args);
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
MetaHookPre(zeek::plugin::HOOK_DRAIN_EVENTS, args);
hook_list* l = hooks[HOOK_DRAIN_EVENTS];
hook_list* l = hooks[zeek::plugin::HOOK_DRAIN_EVENTS];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
@ -714,8 +721,8 @@ void Manager::HookDrainEvents() const
p->HookDrainEvents();
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_DRAIN_EVENTS, args, HookArgument());
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_DRAIN_EVENTS, args, HookArgument());
}
@ -723,13 +730,13 @@ void Manager::HookSetupAnalyzerTree(Connection *conn) const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(conn));
MetaHookPre(HOOK_SETUP_ANALYZER_TREE, args);
MetaHookPre(zeek::plugin::HOOK_SETUP_ANALYZER_TREE, args);
}
hook_list *l = hooks[HOOK_SETUP_ANALYZER_TREE];
hook_list *l = hooks[zeek::plugin::HOOK_SETUP_ANALYZER_TREE];
if ( l )
{
@ -740,9 +747,9 @@ void Manager::HookSetupAnalyzerTree(Connection *conn) const
}
}
if ( HavePluginForHook(META_HOOK_POST) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
{
MetaHookPost(HOOK_SETUP_ANALYZER_TREE, args, HookArgument());
MetaHookPost(zeek::plugin::HOOK_SETUP_ANALYZER_TREE, args, HookArgument());
}
}
@ -750,13 +757,13 @@ void Manager::HookUpdateNetworkTime(double network_time) const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(network_time));
MetaHookPre(HOOK_UPDATE_NETWORK_TIME, args);
MetaHookPre(zeek::plugin::HOOK_UPDATE_NETWORK_TIME, args);
}
hook_list* l = hooks[HOOK_UPDATE_NETWORK_TIME];
hook_list* l = hooks[zeek::plugin::HOOK_UPDATE_NETWORK_TIME];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
@ -765,21 +772,21 @@ void Manager::HookUpdateNetworkTime(double network_time) const
p->HookUpdateNetworkTime(network_time);
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_UPDATE_NETWORK_TIME, args, HookArgument());
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_UPDATE_NETWORK_TIME, args, HookArgument());
}
void Manager::HookBroObjDtor(void* obj) const
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(obj));
MetaHookPre(HOOK_BRO_OBJ_DTOR, args);
MetaHookPre(zeek::plugin::HOOK_BRO_OBJ_DTOR, args);
}
hook_list* l = hooks[HOOK_BRO_OBJ_DTOR];
hook_list* l = hooks[zeek::plugin::HOOK_BRO_OBJ_DTOR];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
@ -788,8 +795,8 @@ void Manager::HookBroObjDtor(void* obj) const
p->HookBroObjDtor(obj);
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_BRO_OBJ_DTOR, args, HookArgument());
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_BRO_OBJ_DTOR, args, HookArgument());
}
void Manager::HookLogInit(const std::string& writer,
@ -801,7 +808,7 @@ void Manager::HookLogInit(const std::string& writer,
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(writer));
args.push_back(HookArgument(instantiating_filter));
@ -810,10 +817,10 @@ void Manager::HookLogInit(const std::string& writer,
args.push_back(HookArgument(&info));
args.push_back(HookArgument(num_fields));
args.push_back(HookArgument(std::make_pair(num_fields, fields)));
MetaHookPre(HOOK_LOG_INIT, args);
MetaHookPre(zeek::plugin::HOOK_LOG_INIT, args);
}
hook_list* l = hooks[HOOK_LOG_INIT];
hook_list* l = hooks[zeek::plugin::HOOK_LOG_INIT];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
@ -823,8 +830,8 @@ void Manager::HookLogInit(const std::string& writer,
num_fields, fields);
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_LOG_INIT, args, HookArgument());
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_LOG_INIT, args, HookArgument());
}
bool Manager::HookLogWrite(const std::string& writer,
@ -836,7 +843,7 @@ bool Manager::HookLogWrite(const std::string& writer,
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(writer));
args.push_back(HookArgument(filter));
@ -844,10 +851,10 @@ bool Manager::HookLogWrite(const std::string& writer,
args.push_back(HookArgument(num_fields));
args.push_back(HookArgument(std::make_pair(num_fields, fields)));
args.push_back(HookArgument(vals));
MetaHookPre(HOOK_LOG_WRITE, args);
MetaHookPre(zeek::plugin::HOOK_LOG_WRITE, args);
}
hook_list* l = hooks[HOOK_LOG_WRITE];
hook_list* l = hooks[zeek::plugin::HOOK_LOG_WRITE];
bool result = true;
@ -864,8 +871,8 @@ bool Manager::HookLogWrite(const std::string& writer,
}
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_LOG_WRITE, args, HookArgument(result));
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_LOG_WRITE, args, HookArgument(result));
return result;
}
@ -878,7 +885,7 @@ bool Manager::HookReporter(const std::string& prefix, const EventHandlerPtr even
{
HookArgumentList args;
if ( HavePluginForHook(META_HOOK_PRE) )
if ( HavePluginForHook(zeek::plugin::META_HOOK_PRE) )
{
args.push_back(HookArgument(prefix));
args.push_back(HookArgument(conn));
@ -888,10 +895,10 @@ bool Manager::HookReporter(const std::string& prefix, const EventHandlerPtr even
args.push_back(HookArgument(location));
args.push_back(HookArgument(time));
args.push_back(HookArgument(message));
MetaHookPre(HOOK_REPORTER, args);
MetaHookPre(zeek::plugin::HOOK_REPORTER, args);
}
hook_list* l = hooks[HOOK_REPORTER];
hook_list* l = hooks[zeek::plugin::HOOK_REPORTER];
bool result = true;
@ -909,33 +916,23 @@ bool Manager::HookReporter(const std::string& prefix, const EventHandlerPtr even
}
}
if ( HavePluginForHook(META_HOOK_POST) )
MetaHookPost(HOOK_REPORTER, args, HookArgument(result));
if ( HavePluginForHook(zeek::plugin::META_HOOK_POST) )
MetaHookPost(zeek::plugin::HOOK_REPORTER, args, HookArgument(result));
return result;
}
void Manager::MetaHookPre(HookType hook, const HookArgumentList& args) const
void Manager::MetaHookPre(zeek::plugin::HookType hook, const HookArgumentList& args) const
{
hook_list* l = hooks[HOOK_CALL_FUNCTION];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
{
Plugin* p = (*i).second;
p->MetaHookPre(hook, args);
}
if ( hook_list* l = hooks[zeek::plugin::HOOK_CALL_FUNCTION] )
for ( const auto& [hook_type, plugin] : *l )
plugin->MetaHookPre(hook, args);
}
void Manager::MetaHookPost(HookType hook, const HookArgumentList& args, HookArgument result) const
void Manager::MetaHookPost(zeek::plugin::HookType hook, const HookArgumentList& args, HookArgument result) const
{
hook_list* l = hooks[HOOK_CALL_FUNCTION];
if ( l )
for ( hook_list::iterator i = l->begin(); i != l->end(); ++i )
{
Plugin* p = (*i).second;
p->MetaHookPost(hook, args, result);
}
if ( hook_list* l = hooks[zeek::plugin::HOOK_CALL_FUNCTION] )
for ( const auto& [hook_type, plugin] : *l )
plugin->MetaHookPost(hook, args, result);
}