diff --git a/CHANGES b/CHANGES index 6a5d6057ff..dc6f96bd3f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,13 @@ +3.3.0-dev.561 | 2020-11-23 21:50:19 -0800 + + * Move implementation of internal_{type,var,etc} methods back into global namespace. + (Tim Wojtulewicz, Corelight) + + This fixes an unknown symbol error if using those methods. They're defined + as extern in the global namespace in Var.h, but Var.cc had their + implementations defined in the zeek::detail namespace. + 3.3.0-dev.559 | 2020-11-23 21:39:29 -0800 * Simplify Debian/Ubuntu CI dependencies and setup (Dominik Charousset, Corelight) diff --git a/VERSION b/VERSION index 3a62ab2c23..af8214bd7e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.3.0-dev.559 +3.3.0-dev.561 diff --git a/src/Var.cc b/src/Var.cc index 80c181d948..1d8f369b82 100644 --- a/src/Var.cc +++ b/src/Var.cc @@ -731,11 +731,6 @@ void end_func(StmtPtr body) ingredients.release(); } -Val* internal_val(const char* name) - { - return id::find_val(name).get(); - } - IDPList gather_outer_ids(Scope* scope, Stmt* body) { OuterIDBindingFinder cb(scope); @@ -756,20 +751,27 @@ IDPList gather_outer_ids(Scope* scope, Stmt* body) return idl; } -Val* internal_const_val(const char* name) +} // namespace zeek::detail + +zeek::Val* internal_val(const char* name) { - return id::find_const(name).get(); + return zeek::id::find_val(name).get(); } -Val* opt_internal_val(const char* name) +zeek::Val* internal_const_val(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + return zeek::id::find_const(name).get(); + } + +zeek::Val* opt_internal_val(const char* name) + { + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); return id ? id->GetVal().get() : nullptr; } double opt_internal_double(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return 0.0; const auto& v = id->GetVal(); return v ? v->InternalDouble() : 0.0; @@ -777,7 +779,7 @@ double opt_internal_double(const char* name) bro_int_t opt_internal_int(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return 0; const auto& v = id->GetVal(); return v ? v->InternalInt() : 0; @@ -785,63 +787,63 @@ bro_int_t opt_internal_int(const char* name) bro_uint_t opt_internal_unsigned(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return 0; const auto& v = id->GetVal(); return v ? v->InternalUnsigned() : 0; } -StringVal* opt_internal_string(const char* name) +zeek::StringVal* opt_internal_string(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return nullptr; const auto& v = id->GetVal(); return v ? v->AsStringVal() : nullptr; } -TableVal* opt_internal_table(const char* name) +zeek::TableVal* opt_internal_table(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return nullptr; const auto& v = id->GetVal(); return v ? v->AsTableVal() : nullptr; } -ListVal* internal_list_val(const char* name) +zeek::ListVal* internal_list_val(const char* name) { - const auto& id = lookup_ID(name, GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(name, zeek::detail::GLOBAL_MODULE_NAME); if ( ! id ) return nullptr; - Val* v = id->GetVal().get(); + zeek::Val* v = id->GetVal().get(); if ( v ) { - if ( v->GetType()->Tag() == TYPE_LIST ) - return (ListVal*) v; + if ( v->GetType()->Tag() == zeek::TYPE_LIST ) + return (zeek::ListVal*) v; else if ( v->GetType()->IsSet() ) { - TableVal* tv = v->AsTableVal(); + zeek::TableVal* tv = v->AsTableVal(); auto lv = tv->ToPureListVal(); return lv.release(); } else - reporter->InternalError("internal variable %s is not a list", name); + zeek::reporter->InternalError("internal variable %s is not a list", name); } return nullptr; } -Type* internal_type(const char* name) +zeek::Type* internal_type(const char* name) { - return id::find_type(name).get(); + return zeek::id::find_type(name).get(); } -Func* internal_func(const char* name) +zeek::Func* internal_func(const char* name) { - const auto& v = id::find_val(name); + const auto& v = zeek::id::find_val(name); if ( v ) return v->AsFunc(); @@ -849,9 +851,7 @@ Func* internal_func(const char* name) return nullptr; } -EventHandlerPtr internal_handler(const char* name) +zeek::EventHandlerPtr internal_handler(const char* name) { return event_registry->Register(name); } - -} // namespace zeek::detail