diff --git a/src/Debug.cc b/src/Debug.cc index ea717051a4..e5c2dc920f 100644 --- a/src/Debug.cc +++ b/src/Debug.cc @@ -930,7 +930,7 @@ bool pre_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f) return true; } -bool post_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f, zeek::Val* result, stmt_flow_type* flow) +bool post_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f, zeek::Val* result, zeek::detail::StmtFlowType* flow) { // Handle the case where someone issues a "next" debugger command, // but we're at a return statement, so the next statement is in diff --git a/src/Debug.h b/src/Debug.h index 0a915df07c..92efac4615 100644 --- a/src/Debug.h +++ b/src/Debug.h @@ -148,7 +148,7 @@ std::vector parse_location_string(const std::string& s); // Return true to continue execution, false to abort. bool pre_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f); -bool post_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f, zeek::Val* result, stmt_flow_type* flow); +bool post_execute_stmt(zeek::detail::Stmt* stmt, zeek::detail::Frame* f, zeek::Val* result, StmtFlowType* flow); // Returns 1 if successful, 0 otherwise. // If cmdfile is non-nil, it contains the location of a file of commands diff --git a/src/Func.cc b/src/Func.cc index c2b272577d..17daf81c7b 100644 --- a/src/Func.cc +++ b/src/Func.cc @@ -375,7 +375,7 @@ zeek::ValPtr ScriptFunc::Invoke(zeek::Args* args, zeek::detail::Frame* parent) c GetType()->FlavorString().c_str(), d.Description()); } - stmt_flow_type flow = FLOW_NEXT; + StmtFlowType flow = FLOW_NEXT; zeek::ValPtr result; for ( const auto& body : bodies ) diff --git a/src/PolicyFile.cc b/src/PolicyFile.cc index 5346d9f21a..d833ec0211 100644 --- a/src/PolicyFile.cc +++ b/src/PolicyFile.cc @@ -10,13 +10,13 @@ #include #include -using namespace std; - #include "Debug.h" #include "util.h" #include "PolicyFile.h" #include "Reporter.h" +using namespace std; + struct PolicyFile { PolicyFile () { filedata = nullptr; lmtime = 0; } ~PolicyFile () { delete [] filedata; filedata = nullptr; } @@ -29,6 +29,8 @@ struct PolicyFile { typedef map PolicyFileMap; static PolicyFileMap policy_files; +namespace zeek::detail { + int how_many_lines_in(const char* policy_filename) { if ( ! policy_filename ) @@ -174,3 +176,5 @@ bool PrintLines(const char* policy_filename, unsigned int start_line, return true; } + +} // namespace zeek::detail diff --git a/src/PolicyFile.h b/src/PolicyFile.h index 6049254a8d..8593f38cbd 100644 --- a/src/PolicyFile.h +++ b/src/PolicyFile.h @@ -14,10 +14,14 @@ // policy_filename arguments should be absolute or relative paths; // no expansion is done. +namespace zeek::detail { + int how_many_lines_in(const char* policy_filename); bool LoadPolicyFileText(const char* policy_filename); // start_line is 1-based (the intuitive way) bool PrintLines(const char* policy_filename, unsigned int start_line, - unsigned int how_many_lines, bool show_numbers); + unsigned int how_many_lines, bool show_numbers); + +} // namespace zeek::detail diff --git a/src/Stats.cc b/src/Stats.cc index 76d5e823e2..4cf170dc6b 100644 --- a/src/Stats.cc +++ b/src/Stats.cc @@ -109,9 +109,9 @@ void ProfileLogger::Log() first_stime = stime; file->Write(zeek::util::fmt("%.06f Command line: ", zeek::net::network_time )); - for ( int i = 0; i < bro_argc; i++ ) + for ( int i = 0; i < zeek_argc; i++ ) { - file->Write(bro_argv[i]); + file->Write(zeek_argv[i]); file->Write(" "); } file->Write(zeek::util::fmt("\n%.06f ------------------------\n", zeek::net::network_time)); diff --git a/src/Stmt.cc b/src/Stmt.cc index 4c5fe7555c..e3b2e98b78 100644 --- a/src/Stmt.cc +++ b/src/Stmt.cc @@ -21,7 +21,9 @@ #include "logging/Manager.h" #include "logging/logging.bif.h" -const char* stmt_name(BroStmtTag t) +namespace zeek::detail { + +const char* stmt_name(StmtTag t) { static const char* stmt_names[int(NUM_STMTS)] = { "alarm", // Does no longer exist, but kept for keeping enums consistent. @@ -35,9 +37,7 @@ const char* stmt_name(BroStmtTag t) return stmt_names[int(t)]; } -namespace zeek::detail { - -Stmt::Stmt(BroStmtTag arg_tag) +Stmt::Stmt(StmtTag arg_tag) { tag = arg_tag; breakpoint_count = 0; @@ -151,7 +151,7 @@ void Stmt::AccessStats(ODesc* d) const } } -ExprListStmt::ExprListStmt(BroStmtTag t, ListExprPtr arg_l) +ExprListStmt::ExprListStmt(StmtTag t, ListExprPtr arg_l) : Stmt(t), l(std::move(arg_l)) { const expr_list& e = l->Exprs(); @@ -167,7 +167,7 @@ ExprListStmt::ExprListStmt(BroStmtTag t, ListExprPtr arg_l) ExprListStmt::~ExprListStmt() = default; -ValPtr ExprListStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr ExprListStmt::Exec(Frame* f, StmtFlowType& flow) const { last_access = zeek::net::network_time; flow = FLOW_NEXT; @@ -239,7 +239,7 @@ static void print_log(const std::vector& vals) } ValPtr PrintStmt::DoExec(std::vector vals, - stmt_flow_type& /* flow */) const + StmtFlowType& /* flow */) const { RegisterAccess(); @@ -316,7 +316,7 @@ ExprStmt::ExprStmt(ExprPtr arg_e) : Stmt(STMT_EXPR), e(std::move(arg_e)) SetLocationInfo(e->GetLocationInfo()); } -ExprStmt::ExprStmt(BroStmtTag t, ExprPtr arg_e) : Stmt(t), e(std::move(arg_e)) +ExprStmt::ExprStmt(StmtTag t, ExprPtr arg_e) : Stmt(t), e(std::move(arg_e)) { if ( e ) SetLocationInfo(e->GetLocationInfo()); @@ -324,7 +324,7 @@ ExprStmt::ExprStmt(BroStmtTag t, ExprPtr arg_e) : Stmt(t), e(std::move(arg_e)) ExprStmt::~ExprStmt() = default; -ValPtr ExprStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr ExprStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -337,7 +337,7 @@ ValPtr ExprStmt::Exec(Frame* f, stmt_flow_type& flow) const return nullptr; } -ValPtr ExprStmt::DoExec(Frame* /* f */, Val* /* v */, stmt_flow_type& /* flow */) const +ValPtr ExprStmt::DoExec(Frame* /* f */, Val* /* v */, StmtFlowType& /* flow */) const { return nullptr; } @@ -399,7 +399,7 @@ IfStmt::IfStmt(ExprPtr test, IfStmt::~IfStmt() = default; -ValPtr IfStmt::DoExec(Frame* f, Val* v, stmt_flow_type& flow) const +ValPtr IfStmt::DoExec(Frame* f, Val* v, StmtFlowType& flow) const { // Treat 0 as false, but don't require 1 for true. Stmt* do_stmt = v->IsZero() ? s2.get() : s1.get(); @@ -467,7 +467,7 @@ TraversalCode IfStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -static BroStmtTag get_last_stmt_tag(const Stmt* stmt) +static StmtTag get_last_stmt_tag(const Stmt* stmt) { if ( ! stmt ) return STMT_NULL; @@ -489,7 +489,7 @@ Case::Case(ListExprPtr arg_expr_cases, id_list* arg_type_cases, : expr_cases(std::move(arg_expr_cases)), type_cases(arg_type_cases), s(std::move(arg_s)) { - BroStmtTag t = get_last_stmt_tag(Body()); + StmtTag t = get_last_stmt_tag(Body()); if ( t != STMT_BREAK && t != STMT_FALLTHROUGH && t != STMT_RETURN ) Error("case block must end in break/fallthrough/return statement"); @@ -817,7 +817,7 @@ std::pair SwitchStmt::FindCaseLabelMatch(const Val* v) const return std::make_pair(label_idx, label_id); } -ValPtr SwitchStmt::DoExec(Frame* f, Val* v, stmt_flow_type& flow) const +ValPtr SwitchStmt::DoExec(Frame* f, Val* v, StmtFlowType& flow) const { ValPtr rval; @@ -913,7 +913,7 @@ bool AddStmt::IsPure() const return false; } -ValPtr AddStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr AddStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -949,7 +949,7 @@ bool DelStmt::IsPure() const return false; } -ValPtr DelStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr DelStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -975,7 +975,7 @@ EventStmt::EventStmt(EventExprPtr arg_e) { } -ValPtr EventStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr EventStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); auto args = eval_list(f, event_expr->Args()); @@ -1052,7 +1052,7 @@ TraversalCode WhileStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr WhileStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr WhileStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -1195,7 +1195,7 @@ ForStmt::~ForStmt() delete loop_vars; } -ValPtr ForStmt::DoExec(Frame* f, Val* v, stmt_flow_type& flow) const +ValPtr ForStmt::DoExec(Frame* f, Val* v, StmtFlowType& flow) const { ValPtr ret; @@ -1353,7 +1353,7 @@ TraversalCode ForStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr NextStmt::Exec(Frame* /* f */, stmt_flow_type& flow) const +ValPtr NextStmt::Exec(Frame* /* f */, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_LOOP; @@ -1380,7 +1380,7 @@ TraversalCode NextStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr BreakStmt::Exec(Frame* /* f */, stmt_flow_type& flow) const +ValPtr BreakStmt::Exec(Frame* /* f */, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_BREAK; @@ -1407,7 +1407,7 @@ TraversalCode BreakStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr FallthroughStmt::Exec(Frame* /* f */, stmt_flow_type& flow) const +ValPtr FallthroughStmt::Exec(Frame* /* f */, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_FALLTHROUGH; @@ -1478,7 +1478,7 @@ ReturnStmt::ReturnStmt(ExprPtr arg_e) } } -ValPtr ReturnStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr ReturnStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_RETURN; @@ -1517,7 +1517,7 @@ StmtList::~StmtList() Unref(stmt); } -ValPtr StmtList::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr StmtList::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -1596,7 +1596,7 @@ TraversalCode StmtList::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr EventBodyList::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr EventBodyList::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -1621,7 +1621,7 @@ ValPtr EventBodyList::Exec(Frame* f, stmt_flow_type& flow) const } // Simulate a return so the hooks operate properly. - stmt_flow_type ft = FLOW_RETURN; + StmtFlowType ft = FLOW_RETURN; (void) post_execute_stmt(f->GetNextStmt(), f, nullptr, &ft); return nullptr; @@ -1662,7 +1662,7 @@ InitStmt::InitStmt(std::vector arg_inits) : Stmt(STMT_INIT) SetLocationInfo(inits[0]->GetLocationInfo()); } -ValPtr InitStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr InitStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -1727,7 +1727,7 @@ TraversalCode InitStmt::Traverse(TraversalCallback* cb) const HANDLE_TC_STMT_POST(tc); } -ValPtr NullStmt::Exec(Frame* /* f */, stmt_flow_type& flow) const +ValPtr NullStmt::Exec(Frame* /* f */, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; @@ -1782,7 +1782,7 @@ WhenStmt::WhenStmt(ExprPtr arg_cond, WhenStmt::~WhenStmt() = default; -ValPtr WhenStmt::Exec(Frame* f, stmt_flow_type& flow) const +ValPtr WhenStmt::Exec(Frame* f, StmtFlowType& flow) const { RegisterAccess(); flow = FLOW_NEXT; diff --git a/src/Stmt.h b/src/Stmt.h index 20a536dbf8..e0a9b76b78 100644 --- a/src/Stmt.h +++ b/src/Stmt.h @@ -33,11 +33,11 @@ using StmtPtr = zeek::IntrusivePtr; class Stmt : public Obj { public: - BroStmtTag Tag() const { return tag; } + StmtTag Tag() const { return tag; } ~Stmt() override; - virtual ValPtr Exec(Frame* f, stmt_flow_type& flow) const = 0; + virtual ValPtr Exec(Frame* f, StmtFlowType& flow) const = 0; Stmt* Ref() { zeek::Ref(this); return this; } @@ -67,12 +67,12 @@ public: virtual TraversalCode Traverse(TraversalCallback* cb) const = 0; protected: - explicit Stmt(BroStmtTag arg_tag); + explicit Stmt(StmtTag arg_tag); void AddTag(ODesc* d) const; void DescribeDone(ODesc* d) const; - BroStmtTag tag; + StmtTag tag; int breakpoint_count; // how many breakpoints on this statement // FIXME: Learn the exact semantics of mutable. @@ -87,13 +87,13 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ExprListStmt(BroStmtTag t, ListExprPtr arg_l); + ExprListStmt(StmtTag t, ListExprPtr arg_l); ~ExprListStmt() override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; virtual ValPtr DoExec(std::vector vals, - stmt_flow_type& flow) const = 0; + StmtFlowType& flow) const = 0; void Describe(ODesc* d) const override; @@ -107,7 +107,7 @@ public: protected: ValPtr DoExec(std::vector vals, - stmt_flow_type& flow) const override; + StmtFlowType& flow) const override; }; class ExprStmt : public Stmt { @@ -115,7 +115,7 @@ public: explicit ExprStmt(ExprPtr e); ~ExprStmt() override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; const Expr* StmtExpr() const { return e.get(); } @@ -124,9 +124,9 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ExprStmt(BroStmtTag t, ExprPtr e); + ExprStmt(StmtTag t, ExprPtr e); - virtual ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const; + virtual ValPtr DoExec(Frame* f, Val* v, StmtFlowType& flow) const; bool IsPure() const override; @@ -146,7 +146,7 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override; + ValPtr DoExec(Frame* f, Val* v, StmtFlowType& flow) const override; bool IsPure() const override; StmtPtr s1; @@ -191,7 +191,7 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override; + ValPtr DoExec(Frame* f, Val* v, StmtFlowType& flow) const override; bool IsPure() const override; // Initialize composite hash and case label map. @@ -225,7 +225,7 @@ public: explicit AddStmt(ExprPtr e); bool IsPure() const override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; TraversalCode Traverse(TraversalCallback* cb) const override; }; @@ -235,7 +235,7 @@ public: explicit DelStmt(ExprPtr e); bool IsPure() const override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; TraversalCode Traverse(TraversalCallback* cb) const override; }; @@ -244,7 +244,7 @@ class EventStmt final : public ExprStmt { public: explicit EventStmt(EventExprPtr e); - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; TraversalCode Traverse(TraversalCallback* cb) const override; @@ -265,7 +265,7 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; ExprPtr loop_condition; StmtPtr body; @@ -291,7 +291,7 @@ public: TraversalCode Traverse(TraversalCallback* cb) const override; protected: - ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override; + ValPtr DoExec(Frame* f, Val* v, StmtFlowType& flow) const override; id_list* loop_vars; StmtPtr body; @@ -304,7 +304,7 @@ class NextStmt final : public Stmt { public: NextStmt() : Stmt(STMT_NEXT) { } - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; bool IsPure() const override; void Describe(ODesc* d) const override; @@ -318,7 +318,7 @@ class BreakStmt final : public Stmt { public: BreakStmt() : Stmt(STMT_BREAK) { } - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; bool IsPure() const override; void Describe(ODesc* d) const override; @@ -332,7 +332,7 @@ class FallthroughStmt final : public Stmt { public: FallthroughStmt() : Stmt(STMT_FALLTHROUGH) { } - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; bool IsPure() const override; void Describe(ODesc* d) const override; @@ -346,7 +346,7 @@ class ReturnStmt final : public ExprStmt { public: explicit ReturnStmt(ExprPtr e); - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; void Describe(ODesc* d) const override; }; @@ -356,7 +356,7 @@ public: StmtList(); ~StmtList() override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; const stmt_list& Stmts() const { return stmts; } stmt_list& Stmts() { return stmts; } @@ -376,7 +376,7 @@ public: EventBodyList() : StmtList() { topmost = false; tag = STMT_EVENT_BODY_LIST; } - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; void Describe(ODesc* d) const override; @@ -392,7 +392,7 @@ class InitStmt final : public Stmt { public: explicit InitStmt(std::vector arg_inits); - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; const std::vector& Inits() const { return inits; } @@ -409,7 +409,7 @@ class NullStmt final : public Stmt { public: NullStmt() : Stmt(STMT_NULL) { } - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; bool IsPure() const override; void Describe(ODesc* d) const override; @@ -425,7 +425,7 @@ public: ExprPtr timeout, bool is_return); ~WhenStmt() override; - ValPtr Exec(Frame* f, stmt_flow_type& flow) const override; + ValPtr Exec(Frame* f, StmtFlowType& flow) const override; bool IsPure() const override; const Expr* Cond() const { return cond.get(); } diff --git a/src/StmtEnums.h b/src/StmtEnums.h index d2c2eb9e62..7847206a76 100644 --- a/src/StmtEnums.h +++ b/src/StmtEnums.h @@ -1,10 +1,11 @@ // See the file "COPYING" in the main distribution directory for copyright. - #pragma once -// These are in a separate file to break circular dependences -typedef enum { +namespace zeek::detail { + +// These are in a separate file to break circular dependences +enum StmtTag { STMT_ANY = -1, STMT_ALARM, // Does no longer exist but kept to create enums consistent. STMT_PRINT, STMT_EVENT, @@ -19,14 +20,47 @@ typedef enum { STMT_WHILE, STMT_NULL #define NUM_STMTS (int(STMT_NULL) + 1) -} BroStmtTag; +}; -typedef enum { +enum StmtFlowType { FLOW_NEXT, // continue on to next statement FLOW_LOOP, // go to top of loop FLOW_BREAK, // break out of loop FLOW_RETURN, // return from function FLOW_FALLTHROUGH // fall through to next switch case -} stmt_flow_type; +}; -extern const char* stmt_name(BroStmtTag t); +extern const char* stmt_name(StmtTag t); + +} // namespace zeek::detail + +using BroStmtTag [[deprecated("Remove in v4.1. Use zeek::detail::StmtTag.")]] = zeek::detail::StmtTag; +constexpr auto STMT_ANY [[deprecated("Remove in v4.1. Use zeek::detail::STMT_ANY.")]] = zeek::detail::STMT_ANY; +constexpr auto STMT_ALARM [[deprecated("Remove in v4.1. Use zeek::detail::STMT_ALARM.")]] = zeek::detail::STMT_ALARM; +constexpr auto STMT_PRINT [[deprecated("Remove in v4.1. Use zeek::detail::STMT_PRINT.")]] = zeek::detail::STMT_PRINT; +constexpr auto STMT_EVENT [[deprecated("Remove in v4.1. Use zeek::detail::STMT_EVENT.")]] = zeek::detail::STMT_EVENT; +constexpr auto STMT_EXPR [[deprecated("Remove in v4.1. Use zeek::detail::STMT_EXPR.")]] = zeek::detail::STMT_EXPR; +constexpr auto STMT_IF [[deprecated("Remove in v4.1. Use zeek::detail::STMT_IF.")]] = zeek::detail::STMT_IF; +constexpr auto STMT_WHEN [[deprecated("Remove in v4.1. Use zeek::detail::STMT_WHEN.")]] = zeek::detail::STMT_WHEN; +constexpr auto STMT_SWITCH [[deprecated("Remove in v4.1. Use zeek::detail::STMT_SWITCH.")]] = zeek::detail::STMT_SWITCH; +constexpr auto STMT_FOR [[deprecated("Remove in v4.1. Use zeek::detail::STMT_FOR.")]] = zeek::detail::STMT_FOR; +constexpr auto STMT_NEXT [[deprecated("Remove in v4.1. Use zeek::detail::STMT_NEXT.")]] = zeek::detail::STMT_NEXT; +constexpr auto STMT_BREAK [[deprecated("Remove in v4.1. Use zeek::detail::STMT_BREAK.")]] = zeek::detail::STMT_BREAK; +constexpr auto STMT_RETURN [[deprecated("Remove in v4.1. Use zeek::detail::STMT_RETURN.")]] = zeek::detail::STMT_RETURN; +constexpr auto STMT_ADD [[deprecated("Remove in v4.1. Use zeek::detail::STMT_ADD.")]] = zeek::detail::STMT_ADD; +constexpr auto STMT_DELETE [[deprecated("Remove in v4.1. Use zeek::detail::STMT_DELETE.")]] = zeek::detail::STMT_DELETE; +constexpr auto STMT_LIST [[deprecated("Remove in v4.1. Use zeek::detail::STMT_LIST.")]] = zeek::detail::STMT_LIST; +constexpr auto STMT_EVENT_BODY_LIST [[deprecated("Remove in v4.1. Use zeek::detail::STMT_EVENT_BODY_LIST.")]] = zeek::detail::STMT_EVENT_BODY_LIST; +constexpr auto STMT_INIT [[deprecated("Remove in v4.1. Use zeek::detail::STMT_INIT.")]] = zeek::detail::STMT_INIT; +constexpr auto STMT_FALLTHROUGH [[deprecated("Remove in v4.1. Use zeek::detail::STMT_FALLTHROUGH.")]] = zeek::detail::STMT_FALLTHROUGH; +constexpr auto STMT_WHILE [[deprecated("Remove in v4.1. Use zeek::detail::STMT_WHILE.")]] = zeek::detail::STMT_WHILE; +constexpr auto STMT_NULL [[deprecated("Remove in v4.1. Use zeek::detail::STMT_NULL.")]] = zeek::detail::STMT_NULL; + +using stmt_flow_type [[deprecated("Remove in v4.1. Use zeek::detail::StmtFlowType.")]] = zeek::detail::StmtFlowType; +constexpr auto FLOW_NEXT [[deprecated("Remove in v4.1. Use zeek::detail::FLOW_NEXT.")]] = zeek::detail::FLOW_NEXT; +constexpr auto FLOW_LOOP [[deprecated("Remove in v4.1. Use zeek::detail::FLOW_LOOP.")]] = zeek::detail::FLOW_LOOP; +constexpr auto FLOW_BREAK [[deprecated("Remove in v4.1. Use zeek::detail::FLOW_BREAK.")]] = zeek::detail::FLOW_BREAK; +constexpr auto FLOW_RETURN [[deprecated("Remove in v4.1. Use zeek::detail::FLOW_RETURN.")]] = zeek::detail::FLOW_RETURN; +constexpr auto FLOW_FALLTHROUGH [[deprecated("Remove in v4.1. Use zeek::detail::FLOW_FALLTHROUGH.")]] = zeek::detail::FLOW_FALLTHROUGH; + +constexpr auto stmt_name [[deprecated("Remove in v4.1. Use zeek::detail::stmt_name.")]] = zeek::detail::stmt_name; diff --git a/src/Trigger.cc b/src/Trigger.cc index a6f57108a8..e9576d0103 100644 --- a/src/Trigger.cc +++ b/src/Trigger.cc @@ -296,7 +296,7 @@ bool Trigger::Eval() Name()); v = nullptr; - stmt_flow_type flow; + StmtFlowType flow; try { @@ -347,7 +347,7 @@ void Trigger::Timeout() DBG_LOG(zeek::DBG_NOTIFIERS, "%s: timeout", Name()); if ( timeout_stmts ) { - stmt_flow_type flow; + StmtFlowType flow; FramePtr f{zeek::AdoptRef{}, frame->Clone()}; ValPtr v; diff --git a/src/Type.cc b/src/Type.cc index 9413b42864..fb1090625b 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -1247,7 +1247,7 @@ void EnumType::CheckAndAddName(const string& module_name, const char* name, return; } - auto fullname = make_full_var_name(module_name.c_str(), name); + auto fullname = zeek::detail::make_full_var_name(module_name.c_str(), name); auto id = zeek::id::find(fullname); if ( ! id ) @@ -1298,14 +1298,14 @@ void EnumType::CheckAndAddName(const string& module_name, const char* name, void EnumType::AddNameInternal(const string& module_name, const char* name, bro_int_t val, bool is_export) { - string fullname = make_full_var_name(module_name.c_str(), name); + string fullname = zeek::detail::make_full_var_name(module_name.c_str(), name); names[fullname] = val; } bro_int_t EnumType::Lookup(const string& module_name, const char* name) const { NameMap::const_iterator pos = - names.find(make_full_var_name(module_name.c_str(), name).c_str()); + names.find(zeek::detail::make_full_var_name(module_name.c_str(), name).c_str()); if ( pos == names.end() ) return -1; diff --git a/src/Var.cc b/src/Var.cc index edfa10d773..d6f137b4bb 100644 --- a/src/Var.cc +++ b/src/Var.cc @@ -125,7 +125,7 @@ static void make_var(const zeek::detail::IDPtr& id, zeek::TypePtr t, zeek::detail::InitClass c, zeek::detail::ExprPtr init, std::unique_ptr> attr, - decl_type dt, + DeclType dt, bool do_init) { if ( id->GetType() ) @@ -327,7 +327,7 @@ void add_global( zeek::TypePtr t, zeek::detail::InitClass c, zeek::detail::ExprPtr init, std::unique_ptr> attr, - decl_type dt) + DeclType dt) { make_var(id, std::move(t), c, std::move(init), std::move(attr), dt, true); } @@ -336,7 +336,7 @@ zeek::detail::StmtPtr add_local( zeek::detail::IDPtr id, zeek::TypePtr t, zeek::detail::InitClass c, zeek::detail::ExprPtr init, std::unique_ptr> attr, - decl_type dt) + DeclType dt) { make_var(id, std::move(t), c, init, std::move(attr), dt, false); @@ -861,3 +861,5 @@ zeek::EventHandlerPtr internal_handler(const char* name) { return zeek::event_registry->Register(name); } + +} // namespace zeek::detail diff --git a/src/Var.h b/src/Var.h index a33c4270be..66090fccc1 100644 --- a/src/Var.h +++ b/src/Var.h @@ -16,17 +16,17 @@ ZEEK_FORWARD_DECLARE_NAMESPACED(Expr, zeek::detail); ZEEK_FORWARD_DECLARE_NAMESPACED(Scope, zeek::detail); namespace zeek::detail { -using StmtPtr = zeek::IntrusivePtr; -} -typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, } decl_type; +using StmtPtr = zeek::IntrusivePtr; + +enum DeclType { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, }; extern void add_global(const zeek::detail::IDPtr& id, zeek::TypePtr t, zeek::detail::InitClass c, zeek::detail::ExprPtr init, std::unique_ptr> attr, - decl_type dt); + DeclType dt); extern zeek::detail::StmtPtr add_local( zeek::detail::IDPtr id, @@ -34,7 +34,7 @@ extern zeek::detail::StmtPtr add_local( zeek::detail::InitClass c, zeek::detail::ExprPtr init, std::unique_ptr> attr, - decl_type dt); + DeclType dt); extern zeek::detail::ExprPtr add_and_assign_local( zeek::detail::IDPtr id, @@ -54,6 +54,22 @@ extern void end_func(zeek::detail::StmtPtr body); // Gather all IDs referenced inside a body that aren't part of a given scope. extern id_list gather_outer_ids(zeek::detail::Scope* scope, zeek::detail::Stmt* body); +} // namespace zeek::detail + +using decl_type [[deprecated("Remove in v4.1. Use zeek::detail::DeclType.")]] = zeek::detail::DeclType; +constexpr auto VAR_REGULAR [[deprecated("Remove in v4.1. Use zeek::detail::VAR_REGULAR.")]] = zeek::detail::VAR_REGULAR; +constexpr auto VAR_CONST [[deprecated("Remove in v4.1. Use zeek::detail::VAR_CONST.")]] = zeek::detail::VAR_CONST; +constexpr auto VAR_REDEF [[deprecated("Remove in v4.1. Use zeek::detail::VAR_REDEF.")]] = zeek::detail::VAR_REDEF; +constexpr auto VAR_OPTION [[deprecated("Remove in v4.1. Use zeek::detail::VAR_OPTION.")]] = zeek::detail::VAR_OPTION; + +constexpr auto add_global [[deprecated("Remove in v4.1. Use zeek::detail::add_global.")]] = zeek::detail::add_global; +constexpr auto add_local [[deprecated("Remove in v4.1. Use zeek::detail::add_local.")]] = zeek::detail::add_local; +constexpr auto add_and_assign_local [[deprecated("Remove in v4.1. Use zeek::detail::add_and_assign_local.")]] = zeek::detail::add_and_assign_local; +constexpr auto add_type [[deprecated("Remove in v4.1. Use zeek::detail::add_type.")]] = zeek::detail::add_type; +constexpr auto begin_func [[deprecated("Remove in v4.1. Use zeek::detail::begin_func.")]] = zeek::detail::begin_func; +constexpr auto end_func [[deprecated("Remove in v4.1. Use zeek::detail::end_func.")]] = zeek::detail::end_func; +constexpr auto gather_outer_ids [[deprecated("Remove in v4.1. Use zeek::detail::gather_outer_ids.")]] = zeek::detail::gather_outer_ids; + [[deprecated("Remove in v4.1. Use zeek::id::find_val().")]] extern zeek::Val* internal_val(const char* name); diff --git a/src/analyzer/protocol/dhcp/dhcp-analyzer.pac b/src/analyzer/protocol/dhcp/dhcp-analyzer.pac index 54dc969565..b8f02139e3 100644 --- a/src/analyzer/protocol/dhcp/dhcp-analyzer.pac +++ b/src/analyzer/protocol/dhcp/dhcp-analyzer.pac @@ -50,7 +50,7 @@ refine flow DHCP_Flow += { if ( dhcp_message ) { - std::string mac_str = fmt_mac(${msg.chaddr}.data(), ${msg.chaddr}.length()); + std::string mac_str = zeek::fmt_mac(${msg.chaddr}.data(), ${msg.chaddr}.length()); double secs = static_cast(${msg.secs}); auto dhcp_msg_val = zeek::make_intrusive(zeek::BifType::Record::DHCP::Msg); diff --git a/src/analyzer/protocol/dhcp/dhcp-options.pac b/src/analyzer/protocol/dhcp/dhcp-options.pac index 34351c3700..bd658a802f 100644 --- a/src/analyzer/protocol/dhcp/dhcp-options.pac +++ b/src/analyzer/protocol/dhcp/dhcp-options.pac @@ -633,7 +633,7 @@ refine flow DHCP_Flow += { sv = zeek::make_intrusive(${v.client_id.hwaddr}.length(), (const char*)${v.client_id.hwaddr}.begin()); else - sv = zeek::make_intrusive(fmt_mac(${v.client_id.hwaddr}.begin(), + sv = zeek::make_intrusive(zeek::fmt_mac(${v.client_id.hwaddr}.begin(), ${v.client_id.hwaddr}.length())); client_id->Assign(1, std::move(sv)); diff --git a/src/analyzer/protocol/snmp/snmp-analyzer.pac b/src/analyzer/protocol/snmp/snmp-analyzer.pac index 4aa9d7bd4f..a0e4894711 100644 --- a/src/analyzer/protocol/snmp/snmp-analyzer.pac +++ b/src/analyzer/protocol/snmp/snmp-analyzer.pac @@ -38,7 +38,7 @@ zeek::AddrValPtr network_address_to_val(const ASN1Encoding* na) return zeek::make_intrusive(zeek::IPAddr()); const u_char* data = reinterpret_cast(bs.data()); - uint32 network_order = extract_uint32(data); + uint32 network_order = zeek::extract_uint32(data); return zeek::make_intrusive(ntohl(network_order)); } diff --git a/src/analyzer/protocol/udp/UDP.cc b/src/analyzer/protocol/udp/UDP.cc index c66feb1fe4..0f5262493f 100644 --- a/src/analyzer/protocol/udp/UDP.cc +++ b/src/analyzer/protocol/udp/UDP.cc @@ -268,14 +268,14 @@ bool UDP_Analyzer::ValidateChecksum(const zeek::IP_Hdr* ip, const udphdr* up, in else sum = 0; - sum = ones_complement_checksum(ip->SrcAddr(), sum); - sum = ones_complement_checksum(ip->DstAddr(), sum); + sum = zeek::ones_complement_checksum(ip->SrcAddr(), sum); + sum = zeek::ones_complement_checksum(ip->DstAddr(), sum); // Note, for IPv6, strictly speaking the protocol and length fields are // 32 bits rather than 16 bits. But because the upper bits are all zero, // we get the same checksum either way. sum += htons(IPPROTO_UDP); sum += htons((unsigned short) len); - sum = ones_complement_checksum((void*) up, len, sum); + sum = zeek::ones_complement_checksum((void*) up, len, sum); return sum == 0xffff; } diff --git a/src/broker/Data.cc b/src/broker/Data.cc index 28e66d0999..e27f8d4b06 100644 --- a/src/broker/Data.cc +++ b/src/broker/Data.cc @@ -189,7 +189,7 @@ struct val_converter { if ( type->Tag() == zeek::TYPE_ENUM ) { auto etype = type->AsEnumType(); - auto i = etype->Lookup(GLOBAL_MODULE_NAME, a.name.data()); + auto i = etype->Lookup(zeek::detail::GLOBAL_MODULE_NAME, a.name.data()); if ( i == -1 ) return nullptr; @@ -540,7 +540,7 @@ struct type_checker { if ( type->Tag() == zeek::TYPE_ENUM ) { auto etype = type->AsEnumType(); - auto i = etype->Lookup(GLOBAL_MODULE_NAME, a.name.data()); + auto i = etype->Lookup(zeek::detail::GLOBAL_MODULE_NAME, a.name.data()); return i != -1; } diff --git a/src/input.h b/src/input.h index ab21d276ad..8c36f45655 100644 --- a/src/input.h +++ b/src/input.h @@ -7,6 +7,7 @@ #include "BroList.h" +// These are required by the lexer in scan.l and are intentionally not namespaced. extern int yyparse(); extern int yydebug; extern int brolex(); @@ -33,13 +34,28 @@ extern void do_doc_token_stop(); extern int line_number; extern const char* filename; -extern int bro_argc; -extern char** bro_argv; +ZEEK_FORWARD_DECLARE_NAMESPACED(Stmt, zeek::detail); + +namespace zeek::detail { + +extern int zeek_argc; +extern char** zeek_argv; extern const char* prog; extern std::vector zeek_script_prefixes; // -p flag extern const char* command_line_policy; // -e flag extern std::vector params; -ZEEK_FORWARD_DECLARE_NAMESPACED(Stmt, zeek::detail); -extern zeek::detail::Stmt* stmts; // global statements +extern zeek::detail::Stmt* stmts; // global statements + +} // namespace zeek::detail + +extern int& bro_argc [[deprecated("Remove in v4.1. Use zeek::detail::zeek_argc.")]]; +extern char**& bro_argv [[deprecated("Remove in v4.1. Use zeek::detail::zeek_argv.")]]; +extern const char*& prog [[deprecated("Remove in v4.1. Use zeek::detail::prog.")]]; + +extern std::vector& zeek_script_prefixes [[deprecated("Remove in v4.1. Use zeek::detail::zeek_script_prefixes.")]]; +extern const char*& command_line_policy [[deprecated("Remove in v4.1. Use zeek::detail::command_line_policy.")]]; +extern std::vector& params [[deprecated("Remove in v4.1. Use zeek::detail::params.")]]; + +extern zeek::detail::Stmt*& stmts [[deprecated("Remove in v4.1. Use zeek::detail::stmts.")]]; diff --git a/src/input/Manager.cc b/src/input/Manager.cc index 2089da05b3..1ee05c7d0c 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -2320,8 +2320,8 @@ zeek::Val* Manager::ValueToVal(const Stream* i, const Value* val, zeek::Type* re // \0's... string enum_string(val->val.string_val.data, val->val.string_val.length); - string module = extract_module_name(enum_string.c_str()); - string var = extract_var_name(enum_string.c_str()); + string module = zeek::detail::extract_module_name(enum_string.c_str()); + string var = zeek::detail::extract_var_name(enum_string.c_str()); // Well, this is kind of stupid, because EnumType just // mangles the module name and the var name together again... diff --git a/src/module_util.cc b/src/module_util.cc index e0737fc35e..32ac0fc837 100644 --- a/src/module_util.cc +++ b/src/module_util.cc @@ -11,6 +11,8 @@ using namespace std; +namespace zeek::detail { + static int streq(const char* s1, const char* s2) { return ! strcmp(s1, s2); @@ -111,3 +113,5 @@ string make_full_var_name(const char* module_name, const char* var_name) return full_name; } + +} // namespace zeek::detail diff --git a/src/module_util.h b/src/module_util.h index 1186ddcb12..169b7d4bbc 100644 --- a/src/module_util.h +++ b/src/module_util.h @@ -6,6 +6,8 @@ #include +namespace zeek::detail { + static constexpr const char* GLOBAL_MODULE_NAME = "GLOBAL"; extern std::string extract_module_name(const char* name); @@ -15,3 +17,11 @@ extern std::string normalized_module_name(const char* module_name); // w/o :: // Concatenates module_name::var_name unless var_name is already fully // qualified, in which case it is returned unmodified. extern std::string make_full_var_name(const char* module_name, const char* var_name); + +} // namespace zeek::detail + +constexpr auto GLOBAL_MODULE_NAME [[deprecated("Remove in v4.1. Use zeek::detail::GLOBAL_MODULE_NAME.")]] = zeek::detail::GLOBAL_MODULE_NAME; +constexpr auto extract_module_name [[deprecated("Remove in v4.1. Use zeek::detail::extract_module_name.")]] = zeek::detail::extract_module_name; +constexpr auto extract_var_name [[deprecated("Remove in v4.1. Use zeek::detail::extract_var_name.")]] = zeek::detail::extract_var_name; +constexpr auto normalized_module_name [[deprecated("Remove in v4.1. Use zeek::detail::normalized_module_name.")]] = zeek::detail::normalized_module_name; +constexpr auto make_full_var_name [[deprecated("Remove in v4.1. Use zeek::detail::make_full_var_name.")]] = zeek::detail::make_full_var_name; diff --git a/src/net_util.cc b/src/net_util.cc index 0f0f89d63e..54b6c22dae 100644 --- a/src/net_util.cc +++ b/src/net_util.cc @@ -14,6 +14,8 @@ #include "IPAddr.h" #include "IP.h" +namespace zeek { + // - adapted from tcpdump // Returns the ones-complement checksum of a chunk of b short-aligned bytes. int ones_complement_checksum(const void* p, int b, uint32_t sum) @@ -182,3 +184,5 @@ uint32_t extract_uint32(const u_char* data) return val; } + +} // namespace zeek diff --git a/src/net_util.h b/src/net_util.h index 6bd094e9e6..cc3b0b423c 100644 --- a/src/net_util.h +++ b/src/net_util.h @@ -116,6 +116,23 @@ struct ip6_rthdr { #define TCPOPT_TIMESTAMP TCPOPT_TSTAMP #endif +ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek); +ZEEK_FORWARD_DECLARE_NAMESPACED(IP_Hdr, zeek); + +namespace zeek { + +// Returns the ones-complement checksum of a chunk of b short-aligned bytes. +extern int ones_complement_checksum(const void* p, int b, uint32_t sum); + +extern int ones_complement_checksum(const zeek::IPAddr& a, uint32_t sum); + +extern int icmp6_checksum(const struct icmp* icmpp, const zeek::IP_Hdr* ip, int len); +extern int icmp_checksum(const struct icmp* icmpp, int len); + +#ifdef ENABLE_MOBILE_IPV6 +extern int mobility_header_checksum(const zeek::IP_Hdr* ip); +#endif + // True if sequence # a is between b and c (b <= a <= c). It must be true // that b <= c in the sequence space. inline bool seq_between(uint32_t a, uint32_t b, uint32_t c) @@ -132,21 +149,6 @@ inline int32_t seq_delta(uint32_t a, uint32_t b) return a - b; } -ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek); -ZEEK_FORWARD_DECLARE_NAMESPACED(IP_Hdr, zeek); - -// Returns the ones-complement checksum of a chunk of b short-aligned bytes. -extern int ones_complement_checksum(const void* p, int b, uint32_t sum); - -extern int ones_complement_checksum(const zeek::IPAddr& a, uint32_t sum); - -extern int icmp6_checksum(const struct icmp* icmpp, const zeek::IP_Hdr* ip, int len); -extern int icmp_checksum(const struct icmp* icmpp, int len); - -#ifdef ENABLE_MOBILE_IPV6 -extern int mobility_header_checksum(const zeek::IP_Hdr* ip); -#endif - // Returns 'A', 'B', 'C' or 'D' extern char addr_to_class(uint32_t addr); @@ -230,3 +232,43 @@ inline uint64_t htonll(uint64_t i) { return ntohll(i); } #endif #endif + +} // namespace zeek + +constexpr auto seq_between [[deprecated("Remove in v4.1. Use zeek::seq_between.")]] = zeek::seq_between; +constexpr auto seq_delta [[deprecated("Remove in v4.1. Use zeek::seq_delta.")]] = zeek::seq_delta; +constexpr auto icmp6_checksum [[deprecated("Remove in v4.1. Use zeek::icmp6_checksum.")]] = zeek::icmp6_checksum; +constexpr auto icmp_checksum [[deprecated("Remove in v4.1. Use zeek::icmp_checksum.")]] = zeek::icmp_checksum; + +[[deprecated("Remove in v4.1. Use zeek::ones_complement_checksum.")]] +inline int ones_complement_checksum(const void* p, int b, uint32_t sum) + { return zeek::ones_complement_checksum(p, b, sum); } +[[deprecated("Remove in v4.1. Use zeek::ones_complement_checksum.")]] +inline int ones_complement_checksum(const zeek::IPAddr& a, uint32_t sum) + { return zeek::ones_complement_checksum(a, sum); } + +#ifdef ENABLE_MOBILE_IPV6 +constexpr auto mobility_header_checksum [[deprecated("Remove in v4.1. Use zeek::mobility_header_checksum.")]] = zeek::mobility_header_checksum; +#endif + +constexpr auto addr_to_class [[deprecated("Remove in v4.1. Use zeek::addr_to_class.")]] = zeek::addr_to_class; + +[[deprecated("Remove in v4.1. Use zeek::fmt_conn_id.")]] +inline const char* fmt_conn_id(const zeek::IPAddr& src_addr, uint32_t src_port, + const zeek::IPAddr& dst_addr, uint32_t dst_port) + { return zeek::fmt_conn_id(src_addr, src_port, dst_addr, dst_port); } +[[deprecated("Remove in v4.1. Use zeek::fmt_conn_id.")]] +inline const char* fmt_conn_id(const uint32_t* src_addr, uint32_t src_port, + const uint32_t* dst_addr, uint32_t dst_port) + { return zeek::fmt_conn_id(src_addr, src_port, dst_addr, dst_port); } + +constexpr auto fmt_mac [[deprecated("Remove in v4.1. Use zeek::fmt_mac.")]] = zeek::fmt_mac; +constexpr auto extract_uint32 [[deprecated("Remove in v4.1. Use zeek::extract_uint32.")]] = zeek::extract_uint32; + +constexpr auto ntohd [[deprecated("Remove in v4.1. Use zeek::ntohd.")]] = zeek::ntohd; +constexpr auto htond [[deprecated("Remove in v4.1. Use zeek::htond.")]] = zeek::htond; + +#ifndef HAVE_BYTEORDER_64 +constexpr auto ntohll [[deprecated("Remove in v4.1. Use zeek::ntohll.")]] = zeek::ntohll; +constexpr auto htonll [[deprecated("Remove in v4.1. Use zeek::htonll.")]] = zeek::htonll; +#endif diff --git a/src/parse.y b/src/parse.y index ceb5097cd0..b573af3337 100644 --- a/src/parse.y +++ b/src/parse.y @@ -259,10 +259,10 @@ static bool expr_is_table_type_name(const zeek::detail::Expr* expr) bro: decl_list stmt_list { - if ( stmts ) - stmts->AsStmtList()->Stmts().push_back($2); + if ( zeek::detail::stmts ) + zeek::detail::stmts->AsStmtList()->Stmts().push_back($2); else - stmts = $2; + zeek::detail::stmts = $2; // Any objects creates from here on out should not // have file positions associated with them. @@ -468,8 +468,8 @@ expr: | TOK_LOCAL local_id '=' expr { zeek::detail::set_location(@2, @4); - $$ = add_and_assign_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4}, - zeek::val_mgr->True()).release(); + $$ = zeek::detail::add_and_assign_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $4}, + zeek::val_mgr->True()).release(); } | expr '[' expr_list ']' @@ -497,9 +497,9 @@ expr: func_hdr_location = @1; auto func_id = zeek::detail::current_scope()->GenerateTemporary("anonymous-function"); func_id->SetInferReturnType(true); - begin_func(std::move(func_id), zeek::detail::current_module.c_str(), - zeek::FUNC_FLAVOR_FUNCTION, false, - {zeek::AdoptRef{}, $3}); + zeek::detail::begin_func(std::move(func_id), zeek::detail::current_module.c_str(), + zeek::FUNC_FLAVOR_FUNCTION, false, + {zeek::AdoptRef{}, $3}); } lambda_body { @@ -1076,27 +1076,27 @@ decl: | TOK_GLOBAL def_global_id opt_type init_class opt_init opt_attr ';' { zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; - add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}, - VAR_REGULAR); + zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}, + zeek::detail::VAR_REGULAR); zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } | TOK_OPTION def_global_id opt_type init_class opt_init opt_attr ';' { zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; - add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}, - VAR_OPTION); + zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}, + zeek::detail::VAR_OPTION); zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } | TOK_CONST def_global_id opt_type init_class opt_init opt_attr ';' { zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; - add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}, - VAR_CONST); + zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}, + zeek::detail::VAR_CONST); zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } @@ -1104,9 +1104,9 @@ decl: { zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; zeek::detail::ExprPtr init{zeek::AdoptRef{}, $5}; - add_global(id, {zeek::AdoptRef{}, $3}, $4, init, - std::unique_ptr>{$6}, - VAR_REDEF); + zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, init, + std::unique_ptr>{$6}, + zeek::detail::VAR_REDEF); zeek::detail::zeekygen_mgr->Redef(id.get(), ::filename, $4, std::move(init)); } @@ -1140,8 +1140,8 @@ decl: { cur_decl_type_id = 0; zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; - add_type(id.get(), {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}); + zeek::detail::add_type(id.get(), {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}); zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } @@ -1173,9 +1173,9 @@ func_hdr: TOK_FUNCTION def_global_id func_params opt_attr { zeek::IntrusivePtr id{zeek::AdoptRef{}, $2}; - begin_func(id, zeek::detail::current_module.c_str(), - zeek::FUNC_FLAVOR_FUNCTION, 0, {zeek::NewRef{}, $3}, - std::unique_ptr>{$4}); + zeek::detail::begin_func(id, zeek::detail::current_module.c_str(), + zeek::FUNC_FLAVOR_FUNCTION, 0, {zeek::NewRef{}, $3}, + std::unique_ptr>{$4}); $$ = $3; zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } @@ -1188,25 +1188,25 @@ func_hdr: zeek::reporter->Error("event %s() is no longer available, use zeek_%s() instead", name, base.c_str()); } - begin_func({zeek::NewRef{}, $2}, zeek::detail::current_module.c_str(), - zeek::FUNC_FLAVOR_EVENT, 0, {zeek::NewRef{}, $3}, - std::unique_ptr>{$4}); + zeek::detail::begin_func({zeek::NewRef{}, $2}, zeek::detail::current_module.c_str(), + zeek::FUNC_FLAVOR_EVENT, 0, {zeek::NewRef{}, $3}, + std::unique_ptr>{$4}); $$ = $3; } | TOK_HOOK def_global_id func_params opt_attr { $3->ClearYieldType(zeek::FUNC_FLAVOR_HOOK); $3->SetYieldType(zeek::base_type(zeek::TYPE_BOOL)); - begin_func({zeek::NewRef{}, $2}, zeek::detail::current_module.c_str(), - zeek::FUNC_FLAVOR_HOOK, 0, {zeek::NewRef{}, $3}, - std::unique_ptr>{$4}); + zeek::detail::begin_func({zeek::NewRef{}, $2}, zeek::detail::current_module.c_str(), + zeek::FUNC_FLAVOR_HOOK, 0, {zeek::NewRef{}, $3}, + std::unique_ptr>{$4}); $$ = $3; } | TOK_REDEF TOK_EVENT event_id func_params opt_attr { - begin_func({zeek::NewRef{}, $3}, zeek::detail::current_module.c_str(), - zeek::FUNC_FLAVOR_EVENT, 1, {zeek::NewRef{}, $4}, - std::unique_ptr>{$5}); + zeek::detail::begin_func({zeek::NewRef{}, $3}, zeek::detail::current_module.c_str(), + zeek::FUNC_FLAVOR_EVENT, 1, {zeek::NewRef{}, $4}, + std::unique_ptr>{$5}); $$ = $4; } ; @@ -1227,7 +1227,7 @@ func_body: '}' { zeek::detail::set_location(func_hdr_location, @5); - end_func({zeek::AdoptRef{}, $3}); + zeek::detail::end_func({zeek::AdoptRef{}, $3}); } ; @@ -1256,7 +1256,7 @@ lambda_body: auto ingredients = std::make_unique( zeek::IntrusivePtr{zeek::NewRef{}, zeek::detail::current_scope()}, zeek::IntrusivePtr{zeek::AdoptRef{}, $3}); - id_list outer_ids = gather_outer_ids(zeek::detail::pop_scope().get(), ingredients->body.get()); + id_list outer_ids = zeek::detail::gather_outer_ids(zeek::detail::pop_scope().get(), ingredients->body.get()); $$ = new zeek::detail::LambdaExpr(std::move(ingredients), std::move(outer_ids)); } @@ -1271,7 +1271,7 @@ begin_func: func_params { auto id = zeek::detail::current_scope()->GenerateTemporary("anonymous-function"); - begin_func(id, zeek::detail::current_module.c_str(), zeek::FUNC_FLAVOR_FUNCTION, 0, {zeek::AdoptRef{}, $1}); + zeek::detail::begin_func(id, zeek::detail::current_module.c_str(), zeek::FUNC_FLAVOR_FUNCTION, 0, {zeek::AdoptRef{}, $1}); $$ = id.release(); } ; @@ -1517,10 +1517,10 @@ stmt: | TOK_LOCAL local_id opt_type init_class opt_init opt_attr ';' opt_no_test { zeek::detail::set_location(@1, @7); - $$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4, - {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}, - VAR_REGULAR).release(); + $$ = zeek::detail::add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4, + {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}, + zeek::detail::VAR_REGULAR).release(); if ( ! $8 ) zeek::detail::script_coverage_mgr.AddStmt($$); } @@ -1528,10 +1528,10 @@ stmt: | TOK_CONST local_id opt_type init_class opt_init opt_attr ';' opt_no_test { zeek::detail::set_location(@1, @6); - $$ = add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4, - {zeek::AdoptRef{}, $5}, - std::unique_ptr>{$6}, - VAR_CONST).release(); + $$ = zeek::detail::add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4, + {zeek::AdoptRef{}, $5}, + std::unique_ptr>{$6}, + zeek::detail::VAR_CONST).release(); if ( ! $8 ) zeek::detail::script_coverage_mgr.AddStmt($$); } @@ -1677,8 +1677,8 @@ case_type: else case_var = zeek::detail::install_ID(name, zeek::detail::current_module.c_str(), false, false); - add_local(case_var, std::move(type), zeek::detail::INIT_NONE, nullptr, nullptr, - VAR_REGULAR); + zeek::detail::add_local(case_var, std::move(type), zeek::detail::INIT_NONE, nullptr, nullptr, + zeek::detail::VAR_REGULAR); $$ = case_var.release(); } diff --git a/src/plugin/ComponentManager.h b/src/plugin/ComponentManager.h index 19b563a6c2..4f4bf1ab1b 100644 --- a/src/plugin/ComponentManager.h +++ b/src/plugin/ComponentManager.h @@ -139,7 +139,7 @@ ComponentManager::ComponentManager(const std::string& arg_module, const st tag_enum_type(zeek::make_intrusive(module + "::" + local_id)) { auto id = zeek::detail::install_ID(local_id.c_str(), module.c_str(), true, true); - add_type(id.get(), tag_enum_type, nullptr); + zeek::detail::add_type(id.get(), tag_enum_type, nullptr); zeek::detail::zeekygen_mgr->Identifier(std::move(id)); } diff --git a/src/scan.l b/src/scan.l index 3ae0c29672..7e399f6a98 100644 --- a/src/scan.l +++ b/src/scan.l @@ -151,7 +151,7 @@ ESCSEQ (\\([^\n]|[0-7]+|x[[:xdigit:]]+)) ##<.* { std::string hint(cur_enum_type && last_id_tok ? - make_full_var_name(zeek::detail::current_module.c_str(), last_id_tok) : ""); + zeek::detail::make_full_var_name(zeek::detail::current_module.c_str(), last_id_tok) : ""); zeek::detail::zeekygen_mgr->PostComment(yytext + 3, hint); } @@ -422,9 +422,9 @@ when return TOK_WHEN; pref = zeek::util::skip_whitespace(pref + 1); // Skip over '='. if ( ! append ) - zeek_script_prefixes = { "" }; // don't delete the "" prefix + zeek::detail::zeek_script_prefixes = { "" }; // don't delete the "" prefix - zeek::util::tokenize_string(pref, ":", &zeek_script_prefixes); + zeek::util::tokenize_string(pref, ":", &zeek::detail::zeek_script_prefixes); } @if return TOK_ATIF; @@ -897,14 +897,14 @@ int yywrap() it->prefixes_checked = true; // Prefixes are pushed onto a stack, so iterate backwards. - for ( int i = zeek_script_prefixes.size() - 1; i >= 0; --i ) + for ( int i = zeek::detail::zeek_script_prefixes.size() - 1; i >= 0; --i ) { // Don't look at empty prefixes. - if ( ! zeek_script_prefixes[i][0] ) + if ( ! zeek::detail::zeek_script_prefixes[i][0] ) continue; std::string canon = zeek::util::detail::without_zeekpath_component(it->name); - std::string flat = zeek::util::detail::flatten_script_name(canon, zeek_script_prefixes[i]); + std::string flat = zeek::util::detail::flatten_script_name(canon, zeek::detail::zeek_script_prefixes[i]); std::string path = find_relative_script_file(flat); if ( ! path.empty() ) @@ -926,11 +926,11 @@ int yywrap() return 0; // Add redef statements for any X=Y command line parameters. - if ( ! params.empty() ) + if ( ! zeek::detail::params.empty() ) { std::string policy; - for ( const auto& pi : params ) + for ( const auto& pi : zeek::detail::params ) { auto p = pi.data(); @@ -976,7 +976,7 @@ int yywrap() policy += zeek::util::fmt(fmt_str, id_str.data(), op.data(), val_str.data()); } - params.clear(); + zeek::detail::params.clear(); yylloc.filename = filename = ""; yy_scan_string(policy.c_str()); return 0; @@ -987,18 +987,18 @@ int yywrap() // Use a synthetic filename, and add an extra semicolon on its own // line (so that things like @load work), so that a semicolon is // not strictly necessary. - if ( command_line_policy ) + if ( zeek::detail::command_line_policy ) { - int tmp_len = strlen(command_line_policy) + 32; + int tmp_len = strlen(zeek::detail::command_line_policy) + 32; char* tmp = new char[tmp_len]; - snprintf(tmp, tmp_len, "%s\n;\n", command_line_policy); + snprintf(tmp, tmp_len, "%s\n;\n", zeek::detail::command_line_policy); yylloc.filename = filename = ""; yy_scan_string(tmp); delete [] tmp; // Make sure we do not get here again: - command_line_policy = 0; + zeek::detail::command_line_policy = 0; return 0; } diff --git a/src/supervisor/Supervisor.cc b/src/supervisor/Supervisor.cc index cf66bad118..9888be2a03 100644 --- a/src/supervisor/Supervisor.cc +++ b/src/supervisor/Supervisor.cc @@ -435,12 +435,12 @@ void Supervisor::HandleChildSignal() stem_pipe->In().UnsetFlags(FD_CLOEXEC); stem_pipe->Out().UnsetFlags(FD_CLOEXEC); - char** args = new char*[bro_argc + 1]; + char** args = new char*[zeek::detail::zeek_argc + 1]; args[0] = config.zeek_exe_path.data(); - args[bro_argc] = nullptr; + args[zeek::detail::zeek_argc] = nullptr; - for ( auto i = 1; i < bro_argc; ++i ) - args[i] = bro_argv[i]; + for ( auto i = 1; i < zeek::detail::zeek_argc; ++i ) + args[i] = zeek::detail::zeek_argv[i]; auto res = execv(config.zeek_exe_path.data(), args); fprintf(stderr, "failed to exec Zeek supervisor stem process: %s\n", diff --git a/src/threading/SerialTypes.cc b/src/threading/SerialTypes.cc index b5de44650b..5593bf4da2 100644 --- a/src/threading/SerialTypes.cc +++ b/src/threading/SerialTypes.cc @@ -603,7 +603,7 @@ zeek::Val* Value::ValueToVal(const std::string& source, const Value* val, bool& std::string enum_string(val->val.string_val.data, val->val.string_val.length); // let's try looking it up by global ID. - const auto& id = zeek::detail::lookup_ID(enum_string.c_str(), GLOBAL_MODULE_NAME); + const auto& id = zeek::detail::lookup_ID(enum_string.c_str(), zeek::detail::GLOBAL_MODULE_NAME); if ( ! id || ! id->IsEnumConst() ) { diff --git a/src/util.cc b/src/util.cc index e8333f4957..b4830b993a 100644 --- a/src/util.cc +++ b/src/util.cc @@ -1752,7 +1752,7 @@ string zeek_prefixes() { string rval; - for ( const auto& prefix : zeek_script_prefixes ) + for ( const auto& prefix : zeek::detail::zeek_script_prefixes ) { if ( ! rval.empty() ) rval.append(":"); diff --git a/src/zeek-setup.cc b/src/zeek-setup.cc index 4c38755a37..d9d690121e 100644 --- a/src/zeek-setup.cc +++ b/src/zeek-setup.cc @@ -120,8 +120,10 @@ zeek::Supervisor* zeek::supervisor_mgr = nullptr; zeek::detail::trigger::Manager* zeek::detail::trigger_mgr = nullptr; zeek::detail::trigger::Manager*& trigger_mgr = zeek::detail::trigger_mgr; -std::vector zeek_script_prefixes; -zeek::detail::Stmt* stmts; +std::vector zeek::detail::zeek_script_prefixes; +std::vector& zeek_script_prefixes = zeek::detail::zeek_script_prefixes; +zeek::detail::Stmt* zeek::detail::stmts = nullptr; +zeek::detail::Stmt*& stmts = zeek::detail::stmts; zeek::EventRegistry* zeek::event_registry = nullptr; zeek::EventRegistry*& event_registry = zeek::event_registry; zeek::detail::ProfileLogger* zeek::detail::profiling_logger = nullptr; @@ -132,8 +134,10 @@ zeek::detail::SampleLogger* zeek::detail::sample_logger = nullptr; zeek::detail::SampleLogger*& sample_logger = zeek::detail::sample_logger; int signal_val = 0; extern char version[]; -const char* command_line_policy = nullptr; -vector params; +const char* zeek::detail::command_line_policy = nullptr; +const char*& command_line_policy = zeek::detail::command_line_policy; +vector zeek::detail::params; +vector& params = zeek::detail::params; set requested_plugins; const char* proc_status_file = nullptr; @@ -149,8 +153,10 @@ zeek::OpaqueTypePtr ocsp_resp_opaque_type; zeek::OpaqueTypePtr paraglob_type; // Keep copy of command line -int bro_argc; -char** bro_argv; +int zeek::detail::zeek_argc; +int& bro_argc = zeek::detail::zeek_argc; +char** zeek::detail::zeek_argv; +char**& bro_argv = zeek::detail::zeek_argv; const char* zeek_version() { @@ -415,11 +421,11 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv, exit(1); } - bro_argc = argc; - bro_argv = new char* [argc]; + zeek_argc = argc; + zeek_argv = new char* [argc]; for ( int i = 0; i < argc; i++ ) - bro_argv[i] = zeek::util::copy_string(argv[i]); + zeek_argv[i] = zeek::util::copy_string(argv[i]); auto options = zopts ? *zopts : zeek::parse_cmdline(argc, argv); @@ -552,7 +558,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv, zeek::detail::timer_mgr = new zeek::detail::PQ_TimerMgr(); auto zeekygen_cfg = options.zeekygen_config_file.value_or(""); - zeek::detail::zeekygen_mgr = new zeek::zeekygen::detail::Manager(zeekygen_cfg, bro_argv[0]); + zeek::detail::zeekygen_mgr = new zeek::zeekygen::detail::Manager(zeekygen_cfg, zeek_argv[0]); add_essential_input_file("base/init-bare.zeek"); add_essential_input_file("base/init-frameworks-and-bifs.zeek"); @@ -842,7 +848,7 @@ zeek::detail::SetupResult zeek::detail::setup(int argc, char** argv, if ( stmts ) { - stmt_flow_type flow; + StmtFlowType flow; Frame f(current_scope()->Length(), nullptr, nullptr); g_frame_stack.push_back(&f); diff --git a/src/zeek.bif b/src/zeek.bif index 3a8fefd20d..8ff6eaec34 100644 --- a/src/zeek.bif +++ b/src/zeek.bif @@ -1857,8 +1857,8 @@ function zeek_args%(%): string_vec auto sv = zeek::id::string_vec; auto rval = zeek::make_intrusive(std::move(sv)); - for ( auto i = 0; i < bro_argc; ++i ) - rval->Assign(rval->Size(), zeek::make_intrusive(bro_argv[i])); + for ( auto i = 0; i < zeek::detail::zeek_argc; ++i ) + rval->Assign(rval->Size(), zeek::make_intrusive(zeek::detail::zeek_argv[i])); return rval; %}