Move a few smaller files to zeek namespaces

This commit is contained in:
Tim Wojtulewicz 2020-08-07 09:48:18 -07:00
parent 812ac5536d
commit db36688bf0
32 changed files with 335 additions and 193 deletions

View file

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

View file

@ -148,7 +148,7 @@ std::vector<ParseLocationRec> 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

View file

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

View file

@ -10,13 +10,13 @@
#include <string>
#include <vector>
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<string, PolicyFile*> 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

View file

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

View file

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

View file

@ -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<ValPtr>& vals)
}
ValPtr PrintStmt::DoExec(std::vector<ValPtr> 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<int, ID*> 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<IDPtr> 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;

View file

@ -33,11 +33,11 @@ using StmtPtr = zeek::IntrusivePtr<Stmt>;
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<ValPtr> 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<ValPtr> 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<IDPtr> arg_inits);
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, StmtFlowType& flow) const override;
const std::vector<IDPtr>& 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(); }

View file

@ -1,10 +1,11 @@
// See the file "COPYING" in the main distribution directory for copyright.
#pragma once
namespace zeek::detail {
// These are in a separate file to break circular dependences
typedef enum {
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;

View file

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

View file

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

View file

@ -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<std::vector<AttrPtr>> 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<std::vector<AttrPtr>> 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<std::vector<AttrPtr>> 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

View file

@ -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<zeek::detail::Stmt>;
}
typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, } decl_type;
using StmtPtr = zeek::IntrusivePtr<zeek::detail::Stmt>;
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<std::vector<zeek::detail::AttrPtr>> 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<std::vector<zeek::detail::AttrPtr>> 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);

View file

@ -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<double>(${msg.secs});
auto dhcp_msg_val = zeek::make_intrusive<zeek::RecordVal>(zeek::BifType::Record::DHCP::Msg);

View file

@ -633,7 +633,7 @@ refine flow DHCP_Flow += {
sv = zeek::make_intrusive<zeek::StringVal>(${v.client_id.hwaddr}.length(),
(const char*)${v.client_id.hwaddr}.begin());
else
sv = zeek::make_intrusive<zeek::StringVal>(fmt_mac(${v.client_id.hwaddr}.begin(),
sv = zeek::make_intrusive<zeek::StringVal>(zeek::fmt_mac(${v.client_id.hwaddr}.begin(),
${v.client_id.hwaddr}.length()));
client_id->Assign(1, std::move(sv));

View file

@ -38,7 +38,7 @@ zeek::AddrValPtr network_address_to_val(const ASN1Encoding* na)
return zeek::make_intrusive<zeek::AddrVal>(zeek::IPAddr());
const u_char* data = reinterpret_cast<const u_char*>(bs.data());
uint32 network_order = extract_uint32(data);
uint32 network_order = zeek::extract_uint32(data);
return zeek::make_intrusive<zeek::AddrVal>(ntohl(network_order));
}

View file

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

View file

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

View file

@ -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<std::string> zeek_script_prefixes; // -p flag
extern const char* command_line_policy; // -e flag
extern std::vector<std::string> 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<std::string>& 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<std::string>& params [[deprecated("Remove in v4.1. Use zeek::detail::params.")]];
extern zeek::detail::Stmt*& stmts [[deprecated("Remove in v4.1. Use zeek::detail::stmts.")]];

View file

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

View file

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

View file

@ -6,6 +6,8 @@
#include <string>
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;

View file

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

View file

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

View file

@ -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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_REGULAR);
zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_OPTION);
zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_CONST);
zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, {zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_REDEF);
zeek::detail::add_global(id, {zeek::AdoptRef{}, $3}, $4, init,
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$6});
zeek::detail::add_type(id.get(), {zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$4});
zeek::detail::begin_func(id, zeek::detail::current_module.c_str(),
zeek::FUNC_FLAVOR_FUNCTION, 0, {zeek::NewRef{}, $3},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$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::detail::function_ingredients>(
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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_REGULAR).release();
$$ = zeek::detail::add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
{zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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<std::vector<zeek::detail::AttrPtr>>{$6},
VAR_CONST).release();
$$ = zeek::detail::add_local({zeek::AdoptRef{}, $2}, {zeek::AdoptRef{}, $3}, $4,
{zeek::AdoptRef{}, $5},
std::unique_ptr<std::vector<zeek::detail::AttrPtr>>{$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();
}

View file

@ -139,7 +139,7 @@ ComponentManager<T, C>::ComponentManager(const std::string& arg_module, const st
tag_enum_type(zeek::make_intrusive<zeek::EnumType>(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));
}

View file

@ -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 = "<params>";
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 = "<command line>";
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;
}

View file

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

View file

@ -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() )
{

View file

@ -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(":");

View file

@ -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<std::string> zeek_script_prefixes;
zeek::detail::Stmt* stmts;
std::vector<std::string> zeek::detail::zeek_script_prefixes;
std::vector<std::string>& 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<string> params;
const char* zeek::detail::command_line_policy = nullptr;
const char*& command_line_policy = zeek::detail::command_line_policy;
vector<string> zeek::detail::params;
vector<string>& params = zeek::detail::params;
set<string> 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);

View file

@ -1857,8 +1857,8 @@ function zeek_args%(%): string_vec
auto sv = zeek::id::string_vec;
auto rval = zeek::make_intrusive<zeek::VectorVal>(std::move(sv));
for ( auto i = 0; i < bro_argc; ++i )
rval->Assign(rval->Size(), zeek::make_intrusive<zeek::StringVal>(bro_argv[i]));
for ( auto i = 0; i < zeek::detail::zeek_argc; ++i )
rval->Assign(rval->Size(), zeek::make_intrusive<zeek::StringVal>(zeek::detail::zeek_argv[i]));
return rval;
%}