mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 10:38:20 +00:00
Move BroFile to zeek namespace, rename to File
This commit is contained in:
parent
bfab224d7c
commit
910aa77d95
29 changed files with 135 additions and 115 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit ddcb00d15cab84f1b1d0e82dffa764f278e0c69c
|
Subproject commit 462ac3bd3a7ae0d30378e36ca2fe771c53a0a23e
|
|
@ -16,7 +16,7 @@
|
||||||
#define DEFAULT_SIZE 128
|
#define DEFAULT_SIZE 128
|
||||||
#define SLOP 10
|
#define SLOP 10
|
||||||
|
|
||||||
ODesc::ODesc(desc_type t, BroFile* arg_f)
|
ODesc::ODesc(desc_type t, zeek::File* arg_f)
|
||||||
{
|
{
|
||||||
type = t;
|
type = t;
|
||||||
style = STANDARD_STYLE;
|
style = STANDARD_STYLE;
|
||||||
|
|
|
@ -22,7 +22,8 @@ typedef enum {
|
||||||
RAW_STYLE,
|
RAW_STYLE,
|
||||||
} desc_style;
|
} desc_style;
|
||||||
|
|
||||||
class BroFile;
|
namespace zeek { class File; }
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
|
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(IPPrefix, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(IPPrefix, zeek);
|
||||||
|
@ -32,7 +33,7 @@ using BroType [[deprecated("Remove in v4.1. Use zeek::Type instead.")]] = zeek::
|
||||||
|
|
||||||
class ODesc {
|
class ODesc {
|
||||||
public:
|
public:
|
||||||
explicit ODesc(desc_type t=DESC_READABLE, BroFile* f=nullptr);
|
explicit ODesc(desc_type t=DESC_READABLE, zeek::File* f=nullptr);
|
||||||
|
|
||||||
~ODesc();
|
~ODesc();
|
||||||
|
|
||||||
|
@ -201,7 +202,7 @@ protected:
|
||||||
using escape_set = std::set<std::string>;
|
using escape_set = std::set<std::string>;
|
||||||
escape_set escape_sequences; // additional sequences of chars to escape
|
escape_set escape_sequences; // additional sequences of chars to escape
|
||||||
|
|
||||||
BroFile* f; // or the file we're using.
|
zeek::File* f; // or the file we're using.
|
||||||
|
|
||||||
int indent_level;
|
int indent_level;
|
||||||
bool do_flush;
|
bool do_flush;
|
||||||
|
|
52
src/File.cc
52
src/File.cc
|
@ -31,7 +31,9 @@
|
||||||
#include "Desc.h"
|
#include "Desc.h"
|
||||||
#include "Var.h"
|
#include "Var.h"
|
||||||
|
|
||||||
std::list<std::pair<std::string, BroFile*>> BroFile::open_files;
|
namespace zeek {
|
||||||
|
|
||||||
|
std::list<std::pair<std::string, File*>> File::open_files;
|
||||||
|
|
||||||
// Maximizes the number of open file descriptors.
|
// Maximizes the number of open file descriptors.
|
||||||
static void maximize_num_fds()
|
static void maximize_num_fds()
|
||||||
|
@ -53,7 +55,7 @@ static void maximize_num_fds()
|
||||||
zeek::reporter->FatalError("maximize_num_fds(): setrlimit failed");
|
zeek::reporter->FatalError("maximize_num_fds(): setrlimit failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFile::BroFile(FILE* arg_f)
|
File::File(FILE* arg_f)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
f = arg_f;
|
f = arg_f;
|
||||||
|
@ -62,7 +64,7 @@ BroFile::BroFile(FILE* arg_f)
|
||||||
is_open = (f != nullptr);
|
is_open = (f != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFile::BroFile(FILE* arg_f, const char* arg_name, const char* arg_access)
|
File::File(FILE* arg_f, const char* arg_name, const char* arg_access)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
f = arg_f;
|
f = arg_f;
|
||||||
|
@ -72,7 +74,7 @@ BroFile::BroFile(FILE* arg_f, const char* arg_name, const char* arg_access)
|
||||||
is_open = (f != nullptr);
|
is_open = (f != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFile::BroFile(const char* arg_name, const char* arg_access)
|
File::File(const char* arg_name, const char* arg_access)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
f = nullptr;
|
f = nullptr;
|
||||||
|
@ -97,7 +99,7 @@ BroFile::BroFile(const char* arg_name, const char* arg_access)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* BroFile::Name() const
|
const char* File::Name() const
|
||||||
{
|
{
|
||||||
if ( name )
|
if ( name )
|
||||||
return name;
|
return name;
|
||||||
|
@ -114,7 +116,7 @@ const char* BroFile::Name() const
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BroFile::Open(FILE* file, const char* mode)
|
bool File::Open(FILE* file, const char* mode)
|
||||||
{
|
{
|
||||||
static bool fds_maximized = false;
|
static bool fds_maximized = false;
|
||||||
open_time = network_time ? network_time : current_time();
|
open_time = network_time ? network_time : current_time();
|
||||||
|
@ -152,7 +154,7 @@ bool BroFile::Open(FILE* file, const char* mode)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFile::~BroFile()
|
File::~File()
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
Unref(attrs);
|
Unref(attrs);
|
||||||
|
@ -165,7 +167,7 @@ BroFile::~BroFile()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::Init()
|
void File::Init()
|
||||||
{
|
{
|
||||||
open_time = 0;
|
open_time = 0;
|
||||||
is_open = false;
|
is_open = false;
|
||||||
|
@ -178,14 +180,14 @@ void BroFile::Init()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* BroFile::File()
|
FILE* File::FileHandle()
|
||||||
{
|
{
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* BroFile::Seek(long new_position)
|
FILE* File::Seek(long new_position)
|
||||||
{
|
{
|
||||||
if ( ! File() )
|
if ( ! FileHandle() )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
if ( fseek(f, new_position, SEEK_SET) < 0 )
|
if ( fseek(f, new_position, SEEK_SET) < 0 )
|
||||||
|
@ -194,7 +196,7 @@ FILE* BroFile::Seek(long new_position)
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::SetBuf(bool arg_buffered)
|
void File::SetBuf(bool arg_buffered)
|
||||||
{
|
{
|
||||||
if ( ! f )
|
if ( ! f )
|
||||||
return;
|
return;
|
||||||
|
@ -205,7 +207,7 @@ void BroFile::SetBuf(bool arg_buffered)
|
||||||
buffered = arg_buffered;
|
buffered = arg_buffered;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BroFile::Close()
|
bool File::Close()
|
||||||
{
|
{
|
||||||
if ( ! is_open )
|
if ( ! is_open )
|
||||||
return true;
|
return true;
|
||||||
|
@ -227,7 +229,7 @@ bool BroFile::Close()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::Unlink()
|
void File::Unlink()
|
||||||
{
|
{
|
||||||
for ( auto it = open_files.begin(); it != open_files.end(); ++it)
|
for ( auto it = open_files.begin(); it != open_files.end(); ++it)
|
||||||
{
|
{
|
||||||
|
@ -239,7 +241,7 @@ void BroFile::Unlink()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::Describe(ODesc* d) const
|
void File::Describe(ODesc* d) const
|
||||||
{
|
{
|
||||||
d->AddSP("file");
|
d->AddSP("file");
|
||||||
|
|
||||||
|
@ -257,7 +259,7 @@ void BroFile::Describe(ODesc* d) const
|
||||||
d->Add("(no type)");
|
d->Add("(no type)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::SetAttrs(zeek::detail::Attributes* arg_attrs)
|
void File::SetAttrs(zeek::detail::Attributes* arg_attrs)
|
||||||
{
|
{
|
||||||
if ( ! arg_attrs )
|
if ( ! arg_attrs )
|
||||||
return;
|
return;
|
||||||
|
@ -269,7 +271,7 @@ void BroFile::SetAttrs(zeek::detail::Attributes* arg_attrs)
|
||||||
EnableRawOutput();
|
EnableRawOutput();
|
||||||
}
|
}
|
||||||
|
|
||||||
zeek::RecordVal* BroFile::Rotate()
|
zeek::RecordVal* File::Rotate()
|
||||||
{
|
{
|
||||||
if ( ! is_open )
|
if ( ! is_open )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -299,7 +301,7 @@ zeek::RecordVal* BroFile::Rotate()
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::CloseOpenFiles()
|
void File::CloseOpenFiles()
|
||||||
{
|
{
|
||||||
auto it = open_files.begin();
|
auto it = open_files.begin();
|
||||||
while ( it != open_files.end() )
|
while ( it != open_files.end() )
|
||||||
|
@ -309,7 +311,7 @@ void BroFile::CloseOpenFiles()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BroFile::Write(const char* data, int len)
|
bool File::Write(const char* data, int len)
|
||||||
{
|
{
|
||||||
if ( ! is_open )
|
if ( ! is_open )
|
||||||
return false;
|
return false;
|
||||||
|
@ -323,17 +325,17 @@ bool BroFile::Write(const char* data, int len)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BroFile::RaiseOpenEvent()
|
void File::RaiseOpenEvent()
|
||||||
{
|
{
|
||||||
if ( ! ::file_opened )
|
if ( ! ::file_opened )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BroFilePtr bf{zeek::NewRef{}, this};
|
FilePtr bf{zeek::NewRef{}, this};
|
||||||
Event* event = new ::Event(::file_opened, {zeek::make_intrusive<zeek::Val>(std::move(bf))});
|
Event* event = new ::Event(::file_opened, {zeek::make_intrusive<zeek::Val>(std::move(bf))});
|
||||||
mgr.Dispatch(event, true);
|
mgr.Dispatch(event, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
double BroFile::Size()
|
double File::Size()
|
||||||
{
|
{
|
||||||
fflush(f);
|
fflush(f);
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
@ -346,11 +348,13 @@ double BroFile::Size()
|
||||||
return s.st_size;
|
return s.st_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFilePtr BroFile::Get(const char* name)
|
FilePtr File::Get(const char* name)
|
||||||
{
|
{
|
||||||
for ( const auto &el : open_files )
|
for ( const auto &el : open_files )
|
||||||
if ( el.first == name )
|
if ( el.first == name )
|
||||||
return {zeek::NewRef{}, el.second};
|
return {zeek::NewRef{}, el.second};
|
||||||
|
|
||||||
return zeek::make_intrusive<BroFile>(name, "w");
|
return zeek::make_intrusive<File>(name, "w");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace zeek
|
||||||
|
|
42
src/File.h
42
src/File.h
|
@ -16,25 +16,23 @@
|
||||||
#include "IntrusivePtr.h"
|
#include "IntrusivePtr.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
namespace zeek {
|
|
||||||
class Type;
|
|
||||||
using TypePtr = zeek::IntrusivePtr<zeek::Type>;
|
|
||||||
}
|
|
||||||
using BroType [[deprecated("Remove in v4.1. Use zeek::Type instead.")]] = zeek::Type;
|
|
||||||
|
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(PrintStmt, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(PrintStmt, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(Attributes, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Attributes, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(RecordVal, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(RecordVal, zeek);
|
||||||
|
|
||||||
class BroFile;
|
namespace zeek {
|
||||||
using BroFilePtr = zeek::IntrusivePtr<BroFile>;
|
class Type;
|
||||||
|
using TypePtr = zeek::IntrusivePtr<zeek::Type>;
|
||||||
|
|
||||||
class BroFile final : public zeek::Obj {
|
class File;
|
||||||
|
using FilePtr = zeek::IntrusivePtr<File>;
|
||||||
|
|
||||||
|
class File final : public zeek::Obj {
|
||||||
public:
|
public:
|
||||||
explicit BroFile(FILE* arg_f);
|
explicit File(FILE* arg_f);
|
||||||
BroFile(FILE* arg_f, const char* filename, const char* access);
|
File(FILE* arg_f, const char* filename, const char* access);
|
||||||
BroFile(const char* filename, const char* access);
|
File(const char* filename, const char* access);
|
||||||
~BroFile() override;
|
~File() override;
|
||||||
|
|
||||||
const char* Name() const;
|
const char* Name() const;
|
||||||
|
|
||||||
|
@ -77,9 +75,9 @@ public:
|
||||||
static void CloseOpenFiles();
|
static void CloseOpenFiles();
|
||||||
|
|
||||||
// Get the file with the given name, opening it if it doesn't yet exist.
|
// Get the file with the given name, opening it if it doesn't yet exist.
|
||||||
static BroFilePtr Get(const char* name);
|
static FilePtr Get(const char* name);
|
||||||
[[deprecated("Remove in v4.1. Use BroFile::Get().")]]
|
[[deprecated("Remove in v4.1. Use File::Get().")]]
|
||||||
static BroFile* GetFile(const char* name)
|
static File* GetFile(const char* name)
|
||||||
{ return Get(name).release(); }
|
{ return Get(name).release(); }
|
||||||
|
|
||||||
void EnableRawOutput() { raw_output = true; }
|
void EnableRawOutput() { raw_output = true; }
|
||||||
|
@ -89,7 +87,7 @@ protected:
|
||||||
|
|
||||||
friend class zeek::detail::PrintStmt;
|
friend class zeek::detail::PrintStmt;
|
||||||
|
|
||||||
BroFile() { Init(); }
|
File() { Init(); }
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -105,7 +103,7 @@ protected:
|
||||||
// (Protected because we do not want anyone to write directly
|
// (Protected because we do not want anyone to write directly
|
||||||
// to the file, but the PrintStmt friend uses this to check whether
|
// to the file, but the PrintStmt friend uses this to check whether
|
||||||
// it's really stdout.)
|
// it's really stdout.)
|
||||||
FILE* File();
|
FILE* FileHandle();
|
||||||
|
|
||||||
// Raises a file_opened event.
|
// Raises a file_opened event.
|
||||||
void RaiseOpenEvent();
|
void RaiseOpenEvent();
|
||||||
|
@ -123,5 +121,11 @@ protected:
|
||||||
static const int MIN_BUFFER_SIZE = 1024;
|
static const int MIN_BUFFER_SIZE = 1024;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::list<std::pair<std::string, BroFile*>> open_files;
|
static std::list<std::pair<std::string, File*>> open_files;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // namespace zeek
|
||||||
|
|
||||||
|
using BroType [[deprecated("Remove in v4.1. Use zeek::Type instead.")]] = zeek::Type;
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File instead.")]] = zeek::File;
|
||||||
|
using BroFilePtr [[deprecated("Remove in v4.1. Use zeek::FilePtr instead.")]] = zeek::FilePtr;
|
||||||
|
|
|
@ -195,7 +195,7 @@ void Obj::PinPoint(ODesc* d, const Obj* obj2, bool pinpoint_only) const
|
||||||
|
|
||||||
void Obj::Print() const
|
void Obj::Print() const
|
||||||
{
|
{
|
||||||
static BroFile fstderr(stderr);
|
static zeek::File fstderr(stderr);
|
||||||
ODesc d(DESC_READABLE, &fstderr);
|
ODesc d(DESC_READABLE, &fstderr);
|
||||||
Describe(&d);
|
Describe(&d);
|
||||||
d.Add("\n");
|
d.Add("\n");
|
||||||
|
|
|
@ -1229,7 +1229,7 @@ void RuleMatcher::GetStats(Stats* stats, RuleHdrTest* hdr_test)
|
||||||
GetStats(stats, h);
|
GetStats(stats, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RuleMatcher::DumpStats(BroFile* f)
|
void RuleMatcher::DumpStats(zeek::File* f)
|
||||||
{
|
{
|
||||||
Stats stats;
|
Stats stats;
|
||||||
GetStats(&stats);
|
GetStats(&stats);
|
||||||
|
@ -1244,7 +1244,7 @@ void RuleMatcher::DumpStats(BroFile* f)
|
||||||
DumpStateStats(f, root);
|
DumpStateStats(f, root);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RuleMatcher::DumpStateStats(BroFile* f, RuleHdrTest* hdr_test)
|
void RuleMatcher::DumpStateStats(zeek::File* f, RuleHdrTest* hdr_test)
|
||||||
{
|
{
|
||||||
if ( ! hdr_test )
|
if ( ! hdr_test )
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -27,9 +27,10 @@ extern FILE* rules_in;
|
||||||
extern int rules_line_number;
|
extern int rules_line_number;
|
||||||
extern const char* current_rule_file;
|
extern const char* current_rule_file;
|
||||||
|
|
||||||
class BroFile;
|
|
||||||
class IntSet;
|
class IntSet;
|
||||||
|
|
||||||
|
namespace zeek { class File; }
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(RE_Match_State, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(RE_Match_State, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(Specific_RE_Matcher, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Specific_RE_Matcher, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(RuleMatcher, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(RuleMatcher, zeek::detail);
|
||||||
|
@ -311,7 +312,7 @@ public:
|
||||||
const RuleEndpointState* state) const;
|
const RuleEndpointState* state) const;
|
||||||
|
|
||||||
void GetStats(Stats* stats, RuleHdrTest* hdr_test = nullptr);
|
void GetStats(Stats* stats, RuleHdrTest* hdr_test = nullptr);
|
||||||
void DumpStats(BroFile* f);
|
void DumpStats(zeek::File* f);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Delete node and all children.
|
// Delete node and all children.
|
||||||
|
@ -354,7 +355,7 @@ private:
|
||||||
|
|
||||||
void PrintTreeDebug(RuleHdrTest* node);
|
void PrintTreeDebug(RuleHdrTest* node);
|
||||||
|
|
||||||
void DumpStateStats(BroFile* f, RuleHdrTest* hdr_test);
|
void DumpStateStats(zeek::File* f, RuleHdrTest* hdr_test);
|
||||||
|
|
||||||
static bool AllRulePatternsMatched(const Rule* r, MatchPos matchpos,
|
static bool AllRulePatternsMatched(const Rule* r, MatchPos matchpos,
|
||||||
const AcceptingMatchSet& ams);
|
const AcceptingMatchSet& ams);
|
||||||
|
|
|
@ -50,7 +50,7 @@ void ProfileTimer::Dispatch(double t, bool is_expire)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ProfileLogger::ProfileLogger(BroFile* arg_file, double interval)
|
ProfileLogger::ProfileLogger(zeek::File* arg_file, double interval)
|
||||||
: SegmentStatsReporter()
|
: SegmentStatsReporter()
|
||||||
{
|
{
|
||||||
file = arg_file;
|
file = arg_file;
|
||||||
|
@ -408,7 +408,7 @@ void SegmentProfiler::Report()
|
||||||
}
|
}
|
||||||
|
|
||||||
PacketProfiler::PacketProfiler(unsigned int mode, double freq,
|
PacketProfiler::PacketProfiler(unsigned int mode, double freq,
|
||||||
BroFile* arg_file)
|
zeek::File* arg_file)
|
||||||
{
|
{
|
||||||
update_mode = mode;
|
update_mode = mode;
|
||||||
update_freq = freq;
|
update_freq = freq;
|
||||||
|
|
13
src/Stats.h
13
src/Stats.h
|
@ -9,7 +9,8 @@
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
class BroFile;
|
namespace zeek { class File; }
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
|
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(TableVal, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(TableVal, zeek);
|
||||||
|
@ -70,18 +71,18 @@ protected:
|
||||||
|
|
||||||
class ProfileLogger final : public SegmentStatsReporter {
|
class ProfileLogger final : public SegmentStatsReporter {
|
||||||
public:
|
public:
|
||||||
ProfileLogger(BroFile* file, double interval);
|
ProfileLogger(zeek::File* file, double interval);
|
||||||
~ProfileLogger() override;
|
~ProfileLogger() override;
|
||||||
|
|
||||||
void Log();
|
void Log();
|
||||||
BroFile* File() { return file; }
|
zeek::File* File() { return file; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void SegmentProfile(const char* name, const zeek::detail::Location* loc,
|
void SegmentProfile(const char* name, const zeek::detail::Location* loc,
|
||||||
double dtime, int dmem) override;
|
double dtime, int dmem) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BroFile* file;
|
zeek::File* file;
|
||||||
unsigned int log_count;
|
unsigned int log_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -120,7 +121,7 @@ extern uint64_t tot_gap_bytes;
|
||||||
|
|
||||||
class PacketProfiler {
|
class PacketProfiler {
|
||||||
public:
|
public:
|
||||||
PacketProfiler(unsigned int mode, double freq, BroFile* arg_file);
|
PacketProfiler(unsigned int mode, double freq, zeek::File* arg_file);
|
||||||
~PacketProfiler();
|
~PacketProfiler();
|
||||||
|
|
||||||
static const unsigned int MODE_TIME = 1;
|
static const unsigned int MODE_TIME = 1;
|
||||||
|
@ -130,7 +131,7 @@ public:
|
||||||
void ProfilePkt(double t, unsigned int bytes);
|
void ProfilePkt(double t, unsigned int bytes);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BroFile* file;
|
zeek::File* file;
|
||||||
unsigned int update_mode;
|
unsigned int update_mode;
|
||||||
double update_freq;
|
double update_freq;
|
||||||
double last_Utime, last_Stime, last_Rtime;
|
double last_Utime, last_Stime, last_Rtime;
|
||||||
|
|
|
@ -203,7 +203,7 @@ TraversalCode ExprListStmt::Traverse(TraversalCallback* cb) const
|
||||||
HANDLE_TC_STMT_POST(tc);
|
HANDLE_TC_STMT_POST(tc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static BroFile* print_stdout = nullptr;
|
static zeek::File* print_stdout = nullptr;
|
||||||
|
|
||||||
static EnumValPtr lookup_enum_val(const char* module_name, const char* name)
|
static EnumValPtr lookup_enum_val(const char* module_name, const char* name)
|
||||||
{
|
{
|
||||||
|
@ -244,9 +244,9 @@ ValPtr PrintStmt::DoExec(std::vector<ValPtr> vals,
|
||||||
RegisterAccess();
|
RegisterAccess();
|
||||||
|
|
||||||
if ( ! print_stdout )
|
if ( ! print_stdout )
|
||||||
print_stdout = new BroFile(stdout);
|
print_stdout = new zeek::File(stdout);
|
||||||
|
|
||||||
BroFile* f = print_stdout;
|
zeek::File* f = print_stdout;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
if ( vals.size() > 0 && (vals)[0]->GetType()->Tag() == TYPE_FILE )
|
if ( vals.size() > 0 && (vals)[0]->GetType()->Tag() == TYPE_FILE )
|
||||||
|
@ -270,7 +270,7 @@ ValPtr PrintStmt::DoExec(std::vector<ValPtr> vals,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
case BifEnum::Log::REDIRECT_STDOUT:
|
case BifEnum::Log::REDIRECT_STDOUT:
|
||||||
if ( f->File() == stdout )
|
if ( f->FileHandle() == stdout )
|
||||||
{
|
{
|
||||||
// Should catch even printing to a "manually opened" stdout file,
|
// Should catch even printing to a "manually opened" stdout file,
|
||||||
// like "/dev/stdout" or "-".
|
// like "/dev/stdout" or "-".
|
||||||
|
|
|
@ -61,10 +61,10 @@ static const FileTypePtr& GetStringFileType() noexcept
|
||||||
return string_file_type;
|
return string_file_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
Val::Val(BroFile* f) : Val({AdoptRef{}, f})
|
Val::Val(zeek::File* f) : Val({AdoptRef{}, f})
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Val::Val(BroFilePtr f)
|
Val::Val(zeek::FilePtr f)
|
||||||
: val(f.release()), type(GetStringFileType())
|
: val(f.release()), type(GetStringFileType())
|
||||||
{
|
{
|
||||||
assert(val.file_val->GetType()->Tag() == TYPE_STRING);
|
assert(val.file_val->GetType()->Tag() == TYPE_STRING);
|
||||||
|
|
23
src/Val.h
23
src/Val.h
|
@ -28,7 +28,7 @@
|
||||||
namespace zeek {
|
namespace zeek {
|
||||||
template<typename T> class PDict;
|
template<typename T> class PDict;
|
||||||
class String;
|
class String;
|
||||||
};
|
}
|
||||||
template<typename T> using PDict [[deprecated("Remove in v4.1. Use zeek::PDict instead.")]] = zeek::PDict<T>;
|
template<typename T> using PDict [[deprecated("Remove in v4.1. Use zeek::PDict instead.")]] = zeek::PDict<T>;
|
||||||
using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String;
|
using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String;
|
||||||
|
|
||||||
|
@ -37,11 +37,16 @@ ZEEK_FORWARD_DECLARE_NAMESPACED(Frame, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(IPAddr, zeek);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(IPPrefix, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(IPPrefix, zeek);
|
||||||
|
namespace zeek {
|
||||||
|
class File;
|
||||||
|
using FilePtr = zeek::IntrusivePtr<File>;
|
||||||
|
}
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
|
using BroFilePtr [[deprecated("Remove in v4.1. Use zeek::FilePtr.")]] = zeek::FilePtr;
|
||||||
|
|
||||||
namespace zeek::detail { class ScriptFunc; }
|
namespace zeek::detail { class ScriptFunc; }
|
||||||
using BroFunc [[deprecated("Remove in v4.1. Use zeek::detail::ScriptFunc instead.")]] = zeek::detail::ScriptFunc;
|
using BroFunc [[deprecated("Remove in v4.1. Use zeek::detail::ScriptFunc instead.")]] = zeek::detail::ScriptFunc;
|
||||||
|
|
||||||
class BroFile;
|
|
||||||
class PrefixTable;
|
class PrefixTable;
|
||||||
class StateAccess;
|
class StateAccess;
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(RE_Matcher, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(RE_Matcher, zeek);
|
||||||
|
@ -54,7 +59,7 @@ extern double bro_start_network_time;
|
||||||
namespace zeek {
|
namespace zeek {
|
||||||
|
|
||||||
using FuncPtr = zeek::IntrusivePtr<Func>;
|
using FuncPtr = zeek::IntrusivePtr<Func>;
|
||||||
using BroFilePtr = zeek::IntrusivePtr<BroFile>;
|
using FilePtr = zeek::IntrusivePtr<File>;
|
||||||
|
|
||||||
class Val;
|
class Val;
|
||||||
class PortVal;
|
class PortVal;
|
||||||
|
@ -99,7 +104,7 @@ union BroValUnion {
|
||||||
|
|
||||||
String* string_val;
|
String* string_val;
|
||||||
zeek::Func* func_val;
|
zeek::Func* func_val;
|
||||||
BroFile* file_val;
|
File* file_val;
|
||||||
RE_Matcher* re_val;
|
RE_Matcher* re_val;
|
||||||
zeek::PDict<TableEntryVal>* table_val;
|
zeek::PDict<TableEntryVal>* table_val;
|
||||||
std::vector<ValPtr>* record_val;
|
std::vector<ValPtr>* record_val;
|
||||||
|
@ -128,7 +133,7 @@ union BroValUnion {
|
||||||
constexpr BroValUnion(zeek::Func* value) noexcept
|
constexpr BroValUnion(zeek::Func* value) noexcept
|
||||||
: func_val(value) {}
|
: func_val(value) {}
|
||||||
|
|
||||||
constexpr BroValUnion(BroFile* value) noexcept
|
constexpr BroValUnion(File* value) noexcept
|
||||||
: file_val(value) {}
|
: file_val(value) {}
|
||||||
|
|
||||||
constexpr BroValUnion(RE_Matcher* value) noexcept
|
constexpr BroValUnion(RE_Matcher* value) noexcept
|
||||||
|
@ -152,10 +157,10 @@ public:
|
||||||
explicit Val(zeek::FuncPtr f);
|
explicit Val(zeek::FuncPtr f);
|
||||||
|
|
||||||
[[deprecated("Remove in v4.1. Construct from IntrusivePtr instead.")]]
|
[[deprecated("Remove in v4.1. Construct from IntrusivePtr instead.")]]
|
||||||
explicit Val(BroFile* f);
|
explicit Val(File* f);
|
||||||
// Note, the file will be closed after this Val is destructed if there's
|
// Note, the file will be closed after this Val is destructed if there's
|
||||||
// no other remaining references.
|
// no other remaining references.
|
||||||
explicit Val(BroFilePtr f);
|
explicit Val(FilePtr f);
|
||||||
|
|
||||||
// Extra arg to differentiate from protected version.
|
// Extra arg to differentiate from protected version.
|
||||||
Val(zeek::TypePtr t, bool type_type)
|
Val(zeek::TypePtr t, bool type_type)
|
||||||
|
@ -241,7 +246,7 @@ public:
|
||||||
CONST_ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc)
|
CONST_ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc)
|
||||||
CONST_ACCESSOR(zeek::TYPE_TABLE, zeek::PDict<TableEntryVal>*, table_val, AsTable)
|
CONST_ACCESSOR(zeek::TYPE_TABLE, zeek::PDict<TableEntryVal>*, table_val, AsTable)
|
||||||
CONST_ACCESSOR(zeek::TYPE_RECORD, std::vector<ValPtr>*, record_val, AsRecord)
|
CONST_ACCESSOR(zeek::TYPE_RECORD, std::vector<ValPtr>*, record_val, AsRecord)
|
||||||
CONST_ACCESSOR(zeek::TYPE_FILE, BroFile*, file_val, AsFile)
|
CONST_ACCESSOR(zeek::TYPE_FILE, File*, file_val, AsFile)
|
||||||
CONST_ACCESSOR(zeek::TYPE_PATTERN, RE_Matcher*, re_val, AsPattern)
|
CONST_ACCESSOR(zeek::TYPE_PATTERN, RE_Matcher*, re_val, AsPattern)
|
||||||
CONST_ACCESSOR(zeek::TYPE_VECTOR, std::vector<ValPtr>*, vector_val, AsVector)
|
CONST_ACCESSOR(zeek::TYPE_VECTOR, std::vector<ValPtr>*, vector_val, AsVector)
|
||||||
|
|
||||||
|
@ -275,7 +280,7 @@ public:
|
||||||
// are protected to avoid external state changes.
|
// are protected to avoid external state changes.
|
||||||
// ACCESSOR(zeek::TYPE_STRING, String*, string_val, AsString)
|
// ACCESSOR(zeek::TYPE_STRING, String*, string_val, AsString)
|
||||||
ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc)
|
ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc)
|
||||||
ACCESSOR(zeek::TYPE_FILE, BroFile*, file_val, AsFile)
|
ACCESSOR(zeek::TYPE_FILE, File*, file_val, AsFile)
|
||||||
ACCESSOR(zeek::TYPE_PATTERN, RE_Matcher*, re_val, AsPattern)
|
ACCESSOR(zeek::TYPE_PATTERN, RE_Matcher*, re_val, AsPattern)
|
||||||
ACCESSOR(zeek::TYPE_VECTOR, std::vector<ValPtr>*, vector_val, AsVector)
|
ACCESSOR(zeek::TYPE_VECTOR, std::vector<ValPtr>*, vector_val, AsVector)
|
||||||
|
|
||||||
|
|
|
@ -926,12 +926,12 @@ void TransportLayerAnalyzer::Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransportLayerAnalyzer::SetContentsFile(unsigned int /* direction */,
|
void TransportLayerAnalyzer::SetContentsFile(unsigned int /* direction */,
|
||||||
BroFilePtr /* f */)
|
zeek::FilePtr /* f */)
|
||||||
{
|
{
|
||||||
reporter->Error("analyzer type does not support writing to a contents file");
|
reporter->Error("analyzer type does not support writing to a contents file");
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFilePtr TransportLayerAnalyzer::GetContentsFile(unsigned int /* direction */) const
|
zeek::FilePtr TransportLayerAnalyzer::GetContentsFile(unsigned int /* direction */) const
|
||||||
{
|
{
|
||||||
reporter->Error("analyzer type does not support writing to a contents file");
|
reporter->Error("analyzer type does not support writing to a contents file");
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -16,17 +16,19 @@
|
||||||
#include "../Timer.h"
|
#include "../Timer.h"
|
||||||
#include "../IntrusivePtr.h"
|
#include "../IntrusivePtr.h"
|
||||||
|
|
||||||
class BroFile;
|
|
||||||
using BroFilePtr = zeek::IntrusivePtr<BroFile>;
|
|
||||||
|
|
||||||
class Connection;
|
class Connection;
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(Rule, zeek::detail);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Rule, zeek::detail);
|
||||||
ZEEK_FORWARD_DECLARE_NAMESPACED(IP_Hdr, zeek);
|
ZEEK_FORWARD_DECLARE_NAMESPACED(IP_Hdr, zeek);
|
||||||
|
|
||||||
namespace zeek {
|
namespace zeek {
|
||||||
using RecordValPtr = zeek::IntrusivePtr<RecordVal>;
|
using RecordValPtr = zeek::IntrusivePtr<RecordVal>;
|
||||||
|
class File;
|
||||||
|
using FilePtr = zeek::IntrusivePtr<File>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
|
using BroFilePtr [[deprecated("Remove in v4.1. Use zeek::FilePtr.")]] = zeek::FilePtr;
|
||||||
|
|
||||||
namespace analyzer {
|
namespace analyzer {
|
||||||
namespace tcp { class TCP_ApplicationAnalyzer; }
|
namespace tcp { class TCP_ApplicationAnalyzer; }
|
||||||
namespace pia { class PIA; }
|
namespace pia { class PIA; }
|
||||||
|
@ -919,7 +921,7 @@ public:
|
||||||
* @param f The file to record to.
|
* @param f The file to record to.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
virtual void SetContentsFile(unsigned int direction, BroFilePtr f);
|
virtual void SetContentsFile(unsigned int direction, zeek::FilePtr f);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an associated contents file, if any. This must only be
|
* Returns an associated contents file, if any. This must only be
|
||||||
|
@ -929,7 +931,7 @@ public:
|
||||||
* @param direction One of the CONTENTS_* constants indicating which
|
* @param direction One of the CONTENTS_* constants indicating which
|
||||||
* direction the query is for.
|
* direction the query is for.
|
||||||
*/
|
*/
|
||||||
virtual BroFilePtr GetContentsFile(unsigned int direction) const;
|
virtual zeek::FilePtr GetContentsFile(unsigned int direction) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Associates a PIA with this analyzer. A PIA takes the
|
* Associates a PIA with this analyzer. A PIA takes the
|
||||||
|
|
|
@ -38,7 +38,7 @@ unsigned int TCPStateStats::NumStatePartial() const
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCPStateStats::PrintStats(BroFile* file, const char* prefix)
|
void TCPStateStats::PrintStats(zeek::File* file, const char* prefix)
|
||||||
{
|
{
|
||||||
file->Write(prefix);
|
file->Write(prefix);
|
||||||
file->Write(" Inact. Syn. SA Part. Est. Fin. Rst.\n");
|
file->Write(" Inact. Syn. SA Part. Est. Fin. Rst.\n");
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
{ return Cnt(TCP_ENDPOINT_INACTIVE); }
|
{ return Cnt(TCP_ENDPOINT_INACTIVE); }
|
||||||
unsigned int NumStatePartial() const;
|
unsigned int NumStatePartial() const;
|
||||||
|
|
||||||
void PrintStats(BroFile* file, const char* prefix);
|
void PrintStats(zeek::File* file, const char* prefix);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned int state_cnt[TCP_ENDPOINT_RESET+1][TCP_ENDPOINT_RESET+1];
|
unsigned int state_cnt[TCP_ENDPOINT_RESET+1][TCP_ENDPOINT_RESET+1];
|
||||||
|
|
|
@ -1584,7 +1584,7 @@ void TCP_Analyzer::ConnDeleteTimer(double t)
|
||||||
Conn()->DeleteTimer(t);
|
Conn()->DeleteTimer(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Analyzer::SetContentsFile(unsigned int direction, BroFilePtr f)
|
void TCP_Analyzer::SetContentsFile(unsigned int direction, zeek::FilePtr f)
|
||||||
{
|
{
|
||||||
if ( direction == CONTENTS_NONE )
|
if ( direction == CONTENTS_NONE )
|
||||||
{
|
{
|
||||||
|
@ -1601,7 +1601,7 @@ void TCP_Analyzer::SetContentsFile(unsigned int direction, BroFilePtr f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFilePtr TCP_Analyzer::GetContentsFile(unsigned int direction) const
|
zeek::FilePtr TCP_Analyzer::GetContentsFile(unsigned int direction) const
|
||||||
{
|
{
|
||||||
switch ( direction ) {
|
switch ( direction ) {
|
||||||
case CONTENTS_NONE:
|
case CONTENTS_NONE:
|
||||||
|
|
|
@ -60,8 +60,8 @@ public:
|
||||||
// the test is whether it has any outstanding, un-acked data.
|
// the test is whether it has any outstanding, un-acked data.
|
||||||
bool DataPending(TCP_Endpoint* closing_endp);
|
bool DataPending(TCP_Endpoint* closing_endp);
|
||||||
|
|
||||||
void SetContentsFile(unsigned int direction, BroFilePtr f) override;
|
void SetContentsFile(unsigned int direction, zeek::FilePtr f) override;
|
||||||
BroFilePtr GetContentsFile(unsigned int direction) const override;
|
zeek::FilePtr GetContentsFile(unsigned int direction) const override;
|
||||||
|
|
||||||
// From Analyzer.h
|
// From Analyzer.h
|
||||||
void UpdateConnVal(zeek::RecordVal *conn_val) override;
|
void UpdateConnVal(zeek::RecordVal *conn_val) override;
|
||||||
|
|
|
@ -254,7 +254,7 @@ void TCP_Endpoint::AckReceived(uint64_t seq)
|
||||||
contents_processor->AckReceived(seq);
|
contents_processor->AckReceived(seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Endpoint::SetContentsFile(BroFilePtr f)
|
void TCP_Endpoint::SetContentsFile(zeek::FilePtr f)
|
||||||
{
|
{
|
||||||
contents_file = std::move(f);
|
contents_file = std::move(f);
|
||||||
contents_start_seq = ToRelativeSeqSpace(last_seq, seq_wraps);
|
contents_start_seq = ToRelativeSeqSpace(last_seq, seq_wraps);
|
||||||
|
|
|
@ -188,8 +188,8 @@ public:
|
||||||
|
|
||||||
void AckReceived(uint64_t seq);
|
void AckReceived(uint64_t seq);
|
||||||
|
|
||||||
void SetContentsFile(BroFilePtr f);
|
void SetContentsFile(zeek::FilePtr f);
|
||||||
const BroFilePtr& GetContentsFile() const { return contents_file; }
|
const zeek::FilePtr& GetContentsFile() const { return contents_file; }
|
||||||
|
|
||||||
// Codes used for tracking history. For responders, we shift these
|
// Codes used for tracking history. For responders, we shift these
|
||||||
// over by 16 bits in order to fit both originator and responder
|
// over by 16 bits in order to fit both originator and responder
|
||||||
|
@ -212,7 +212,7 @@ public:
|
||||||
TCP_Endpoint* peer;
|
TCP_Endpoint* peer;
|
||||||
TCP_Reassembler* contents_processor;
|
TCP_Reassembler* contents_processor;
|
||||||
TCP_Analyzer* tcp_analyzer;
|
TCP_Analyzer* tcp_analyzer;
|
||||||
BroFilePtr contents_file;
|
zeek::FilePtr contents_file;
|
||||||
uint32_t checksum_base;
|
uint32_t checksum_base;
|
||||||
|
|
||||||
double start_time, last_time;
|
double start_time, last_time;
|
||||||
|
|
|
@ -92,7 +92,7 @@ uint64_t TCP_Reassembler::NumUndeliveredBytes() const
|
||||||
return last_block.upper - last_reassem_seq;
|
return last_block.upper - last_reassem_seq;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Reassembler::SetContentsFile(BroFilePtr f)
|
void TCP_Reassembler::SetContentsFile(zeek::FilePtr f)
|
||||||
{
|
{
|
||||||
if ( ! f->IsOpen() )
|
if ( ! f->IsOpen() )
|
||||||
{
|
{
|
||||||
|
@ -317,7 +317,7 @@ void TCP_Reassembler::MatchUndelivered(uint64_t up_to_seq, bool use_last_upper)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Reassembler::RecordToSeq(uint64_t start_seq, uint64_t stop_seq, const BroFilePtr& f)
|
void TCP_Reassembler::RecordToSeq(uint64_t start_seq, uint64_t stop_seq, const zeek::FilePtr& f)
|
||||||
{
|
{
|
||||||
auto it = block_list.Begin();
|
auto it = block_list.Begin();
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ void TCP_Reassembler::RecordToSeq(uint64_t start_seq, uint64_t stop_seq, const B
|
||||||
RecordGap(last_seq, stop_seq, f);
|
RecordGap(last_seq, stop_seq, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Reassembler::RecordBlock(const DataBlock& b, const BroFilePtr& f)
|
void TCP_Reassembler::RecordBlock(const DataBlock& b, const zeek::FilePtr& f)
|
||||||
{
|
{
|
||||||
if ( f->Write((const char*) b.block, b.Size()) )
|
if ( f->Write((const char*) b.block, b.Size()) )
|
||||||
return;
|
return;
|
||||||
|
@ -363,7 +363,7 @@ void TCP_Reassembler::RecordBlock(const DataBlock& b, const BroFilePtr& f)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCP_Reassembler::RecordGap(uint64_t start_seq, uint64_t upper_seq, const BroFilePtr& f)
|
void TCP_Reassembler::RecordGap(uint64_t start_seq, uint64_t upper_seq, const zeek::FilePtr& f)
|
||||||
{
|
{
|
||||||
if ( f->Write(fmt("\n<<gap %" PRIu64">>\n", upper_seq - start_seq)) )
|
if ( f->Write(fmt("\n<<gap %" PRIu64">>\n", upper_seq - start_seq)) )
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -48,8 +48,8 @@ public:
|
||||||
// from waiting_on_hole above; and is computed in a different fashion).
|
// from waiting_on_hole above; and is computed in a different fashion).
|
||||||
uint64_t NumUndeliveredBytes() const;
|
uint64_t NumUndeliveredBytes() const;
|
||||||
|
|
||||||
void SetContentsFile(BroFilePtr f);
|
void SetContentsFile(zeek::FilePtr f);
|
||||||
const BroFilePtr& GetContentsFile() const { return record_contents_file; }
|
const zeek::FilePtr& GetContentsFile() const { return record_contents_file; }
|
||||||
|
|
||||||
void MatchUndelivered(uint64_t up_to_seq, bool use_last_upper);
|
void MatchUndelivered(uint64_t up_to_seq, bool use_last_upper);
|
||||||
|
|
||||||
|
@ -88,9 +88,9 @@ private:
|
||||||
void Undelivered(uint64_t up_to_seq) override;
|
void Undelivered(uint64_t up_to_seq) override;
|
||||||
void Gap(uint64_t seq, uint64_t len);
|
void Gap(uint64_t seq, uint64_t len);
|
||||||
|
|
||||||
void RecordToSeq(uint64_t start_seq, uint64_t stop_seq, const BroFilePtr& f);
|
void RecordToSeq(uint64_t start_seq, uint64_t stop_seq, const zeek::FilePtr& f);
|
||||||
void RecordBlock(const DataBlock& b, const BroFilePtr& f);
|
void RecordBlock(const DataBlock& b, const zeek::FilePtr& f);
|
||||||
void RecordGap(uint64_t start_seq, uint64_t upper_seq, const BroFilePtr& f);
|
void RecordGap(uint64_t start_seq, uint64_t upper_seq, const zeek::FilePtr& f);
|
||||||
|
|
||||||
void BlockInserted(DataBlockMap::const_iterator it) override;
|
void BlockInserted(DataBlockMap::const_iterator it) override;
|
||||||
void Overlap(const u_char* b1, const u_char* b2, uint64_t n) override;
|
void Overlap(const u_char* b1, const u_char* b2, uint64_t n) override;
|
||||||
|
@ -107,7 +107,7 @@ private:
|
||||||
bool in_delivery;
|
bool in_delivery;
|
||||||
analyzer::tcp::TCP_Flags flags;
|
analyzer::tcp::TCP_Flags flags;
|
||||||
|
|
||||||
BroFilePtr record_contents_file; // file on which to reassemble contents
|
zeek::FilePtr record_contents_file; // file on which to reassemble contents
|
||||||
|
|
||||||
zeek::analyzer::Analyzer* dst_analyzer;
|
zeek::analyzer::Analyzer* dst_analyzer;
|
||||||
TCP_Analyzer* tcp_analyzer;
|
TCP_Analyzer* tcp_analyzer;
|
||||||
|
|
|
@ -136,5 +136,5 @@ function get_contents_file%(cid: conn_id, direction: count%): file
|
||||||
else
|
else
|
||||||
zeek::emit_builtin_error("no contents file for given direction");
|
zeek::emit_builtin_error("no contents file for given direction");
|
||||||
|
|
||||||
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<BroFile>(stderr, "-", "w"));
|
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<zeek::File>(stderr, "-", "w"));
|
||||||
%}
|
%}
|
||||||
|
|
|
@ -119,7 +119,7 @@ struct val_converter {
|
||||||
return zeek::make_intrusive<zeek::StringVal>(a.size(), a.data());
|
return zeek::make_intrusive<zeek::StringVal>(a.size(), a.data());
|
||||||
case zeek::TYPE_FILE:
|
case zeek::TYPE_FILE:
|
||||||
{
|
{
|
||||||
auto file = BroFile::Get(a.data());
|
auto file = zeek::File::Get(a.data());
|
||||||
|
|
||||||
if ( file )
|
if ( file )
|
||||||
return zeek::make_intrusive<zeek::Val>(std::move(file));
|
return zeek::make_intrusive<zeek::Val>(std::move(file));
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
#include "Reassem.h"
|
#include "Reassem.h"
|
||||||
|
|
||||||
class BroFile;
|
namespace zeek { class File; }
|
||||||
|
using BroFile [[deprecated("Remove in v4.1. Use zeek::File.")]] = zeek::File;
|
||||||
|
|
||||||
class Connection;
|
class Connection;
|
||||||
|
|
||||||
namespace file_analysis {
|
namespace file_analysis {
|
||||||
|
|
|
@ -993,7 +993,7 @@ threading::Value* Manager::ValToLogVal(zeek::Val* val, zeek::Type* ty)
|
||||||
|
|
||||||
case zeek::TYPE_FILE:
|
case zeek::TYPE_FILE:
|
||||||
{
|
{
|
||||||
const BroFile* f = val->AsFile();
|
const zeek::File* f = val->AsFile();
|
||||||
string s = f->Name();
|
string s = f->Name();
|
||||||
lval->val.string_val.data = copy_string(s.c_str());
|
lval->val.string_val.data = copy_string(s.c_str());
|
||||||
lval->val.string_val.length = s.size();
|
lval->val.string_val.length = s.size();
|
||||||
|
|
|
@ -338,7 +338,7 @@ void zeek_terminate_loop(const char* reason)
|
||||||
|
|
||||||
// Close files after net_delete(), because net_delete()
|
// Close files after net_delete(), because net_delete()
|
||||||
// might write to connection content files.
|
// might write to connection content files.
|
||||||
BroFile::CloseOpenFiles();
|
zeek::File::CloseOpenFiles();
|
||||||
|
|
||||||
delete zeek::detail::rule_matcher;
|
delete zeek::detail::rule_matcher;
|
||||||
|
|
||||||
|
@ -891,7 +891,7 @@ int zeek::detail::cleanup(bool did_net_run)
|
||||||
|
|
||||||
// Close files after net_delete(), because net_delete()
|
// Close files after net_delete(), because net_delete()
|
||||||
// might write to connection content files.
|
// might write to connection content files.
|
||||||
BroFile::CloseOpenFiles();
|
zeek::File::CloseOpenFiles();
|
||||||
|
|
||||||
delete rule_matcher;
|
delete rule_matcher;
|
||||||
|
|
||||||
|
|
|
@ -4438,9 +4438,9 @@ function open%(f: string%): file
|
||||||
const char* file = f->CheckString();
|
const char* file = f->CheckString();
|
||||||
|
|
||||||
if ( streq(file, "-") )
|
if ( streq(file, "-") )
|
||||||
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<BroFile>(stdout, "-", "w"));
|
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<zeek::File>(stdout, "-", "w"));
|
||||||
else
|
else
|
||||||
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<BroFile>(file, "w"));
|
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<zeek::File>(file, "w"));
|
||||||
%}
|
%}
|
||||||
|
|
||||||
## Opens a file for writing or appending. If a file with the same name already
|
## Opens a file for writing or appending. If a file with the same name already
|
||||||
|
@ -4455,7 +4455,7 @@ function open%(f: string%): file
|
||||||
## rmdir unlink rename
|
## rmdir unlink rename
|
||||||
function open_for_append%(f: string%): file
|
function open_for_append%(f: string%): file
|
||||||
%{
|
%{
|
||||||
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<BroFile>(f->CheckString(), "a"));
|
return zeek::make_intrusive<zeek::Val>(zeek::make_intrusive<zeek::File>(f->CheckString(), "a"));
|
||||||
%}
|
%}
|
||||||
|
|
||||||
## Closes an open file and flushes any buffered content.
|
## Closes an open file and flushes any buffered content.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue