mirror of
https://github.com/zeek/zeek.git
synced 2025-10-01 22:28:20 +00:00
Fix clang-tidy cppcoreguidelines-macro-usage warnings in headers
This commit is contained in:
parent
74bf987b82
commit
e84c99fb14
31 changed files with 220 additions and 117 deletions
|
@ -2,10 +2,10 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#define ZEEK_SCRIPT_INSTALL_PATH "@ZEEK_SCRIPT_INSTALL_PATH@"
|
||||
#define BRO_PLUGIN_INSTALL_PATH "@ZEEK_PLUGIN_DIR@"
|
||||
#define ZEEK_PLUGIN_INSTALL_PATH "@ZEEK_PLUGIN_DIR@"
|
||||
#define DEFAULT_ZEEKPATH "@DEFAULT_ZEEKPATH@"
|
||||
#define ZEEK_SPICY_MODULE_PATH "@ZEEK_SPICY_MODULE_PATH@"
|
||||
#define ZEEK_SPICY_LIBRARY_PATH "@ZEEK_SPICY_LIBRARY_PATH@"
|
||||
#define ZEEK_SPICY_DATA_PATH "@ZEEK_SPICY_DATA_PATH@"
|
||||
constexpr char ZEEK_SCRIPT_INSTALL_PATH[] = "@ZEEK_SCRIPT_INSTALL_PATH@";
|
||||
constexpr char BRO_PLUGIN_INSTALL_PATH[] = "@ZEEK_PLUGIN_DIR@";
|
||||
constexpr char ZEEK_PLUGIN_INSTALL_PATH[] = "@ZEEK_PLUGIN_DIR@";
|
||||
constexpr char DEFAULT_ZEEKPATH[] = "@DEFAULT_ZEEKPATH@";
|
||||
constexpr char ZEEK_SPICY_MODULE_PATH[] = "@ZEEK_SPICY_MODULE_PATH@";
|
||||
constexpr char ZEEK_SPICY_LIBRARY_PATH[] = "@ZEEK_SPICY_LIBRARY_PATH@";
|
||||
constexpr char ZEEK_SPICY_DATA_PATH[] = "@ZEEK_SPICY_DATA_PATH@";
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// See the file "COPYING" in the main distribution directory for copyright.
|
||||
// NOLINTBEGIN(modernize-macro-to-enum)
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -308,4 +309,5 @@
|
|||
/* compiled with Spicy support */
|
||||
#cmakedefine HAVE_SPICY
|
||||
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
// NOLINTEND(modernize-macro-to-enum)
|
||||
|
|
|
@ -1414,6 +1414,8 @@ TableValPtr DNS_Mgr::empty_addr_set() {
|
|||
return make_intrusive<TableVal>(std::move(s));
|
||||
}
|
||||
|
||||
DNS_Mgr::AsyncRequest::AsyncRequest(const IPAddr& addr) : addr(addr), type(T_PTR) {}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -17,11 +17,14 @@
|
|||
// those headers here and create install dependencies on them.
|
||||
struct ares_channeldata;
|
||||
using ares_channel = struct ares_channeldata*;
|
||||
|
||||
#ifndef T_PTR
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define T_PTR 12
|
||||
#endif
|
||||
|
||||
#ifndef T_TXT
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define T_TXT 16
|
||||
#endif
|
||||
|
||||
|
@ -320,7 +323,7 @@ protected:
|
|||
bool processed = false;
|
||||
|
||||
AsyncRequest(std::string host, int request_type) : host(std::move(host)), type(request_type) {}
|
||||
AsyncRequest(const IPAddr& addr) : addr(addr), type(T_PTR) {}
|
||||
AsyncRequest(const IPAddr& addr);
|
||||
|
||||
void Resolved(const std::string& name);
|
||||
void Resolved(TableValPtr addrs);
|
||||
|
|
|
@ -605,4 +605,6 @@ int dbg_cmd_trace(DebugCmd cmd, const vector<string>& args) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int num_debug_cmds() { return static_cast<int>(g_DebugCmdInfos.size()); }
|
||||
|
||||
} // namespace zeek::detail
|
||||
|
|
|
@ -51,7 +51,7 @@ extern DebugCmdInfoQueue g_DebugCmdInfos;
|
|||
|
||||
void init_global_dbg_constants();
|
||||
|
||||
#define num_debug_cmds() (static_cast<int>(g_DebugCmdInfos.size()))
|
||||
extern int num_debug_cmds();
|
||||
|
||||
// Looks up the info record and returns it; if cmd is not found returns 0.
|
||||
const DebugCmdInfo* get_debug_cmd_info(DebugCmd cmd);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <unistd.h> // Needed to ignore __attribute__((format(printf))) on MSVC
|
||||
#endif
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
#define DBG_LOG(stream, ...) \
|
||||
if ( ::zeek::detail::debug_logger.IsEnabled(stream) ) \
|
||||
::zeek::detail::debug_logger.Log(stream, __VA_ARGS__)
|
||||
|
@ -26,6 +27,7 @@
|
|||
#define DBG_POP(stream) ::zeek::detail::debug_logger.PopIndent(stream)
|
||||
|
||||
#define PLUGIN_DBG_LOG(plugin, ...) ::zeek::detail::debug_logger.Log(plugin, __VA_ARGS__)
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
||||
namespace zeek {
|
||||
|
||||
|
@ -124,9 +126,11 @@ extern DebugLogger debug_logger;
|
|||
} // namespace zeek
|
||||
|
||||
#else
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
#define DBG_LOG(...)
|
||||
#define DBG_LOG_VERBOSE(...)
|
||||
#define DBG_PUSH(stream)
|
||||
#define DBG_POP(stream)
|
||||
#define PLUGIN_DBG_LOG(plugin, ...)
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
#endif
|
||||
|
|
36
src/Dict.h
36
src/Dict.h
|
@ -790,11 +790,14 @@ public:
|
|||
int ExpectedCapacity() const { return bucket_capacity; }
|
||||
|
||||
// Debugging
|
||||
#define DUMPIF(f) \
|
||||
if ( f ) \
|
||||
Dump(1)
|
||||
|
||||
#ifdef ZEEK_DICT_DEBUG
|
||||
void DumpIfInvalid(bool valid) const {
|
||||
if ( ! valid ) {
|
||||
Dump(1);
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
void AssertValid() const {
|
||||
bool valid = true;
|
||||
int n = num_entries;
|
||||
|
@ -805,8 +808,7 @@ public:
|
|||
n--;
|
||||
|
||||
valid = (n == 0);
|
||||
ASSERT(valid);
|
||||
DUMPIF(! valid);
|
||||
DumpIfInvalid(valid);
|
||||
|
||||
// entries must clustered together
|
||||
for ( int i = 1; i < Capacity(); i++ ) {
|
||||
|
@ -815,29 +817,28 @@ public:
|
|||
|
||||
if ( table[i - 1].Empty() ) {
|
||||
valid = (table[i].distance == 0);
|
||||
ASSERT(valid);
|
||||
DUMPIF(! valid);
|
||||
DumpIfInvalid(valid);
|
||||
}
|
||||
else {
|
||||
valid = (table[i].bucket >= table[i - 1].bucket);
|
||||
ASSERT(valid);
|
||||
DUMPIF(! valid);
|
||||
DumpIfInvalid(valid);
|
||||
|
||||
if ( table[i].bucket == table[i - 1].bucket ) {
|
||||
valid = (table[i].distance == table[i - 1].distance + 1);
|
||||
ASSERT(valid);
|
||||
DUMPIF(! valid);
|
||||
DumpIfInvalid(valid);
|
||||
}
|
||||
else {
|
||||
valid = (table[i].distance <= table[i - 1].distance);
|
||||
ASSERT(valid);
|
||||
DUMPIF(! valid);
|
||||
DumpIfInvalid(valid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // ZEEK_DICT_DEBUG
|
||||
|
||||
static constexpr size_t DICT_NUM_DISTANCES = 5;
|
||||
|
||||
void Dump(int level = 0) const {
|
||||
int key_size = 0;
|
||||
for ( int i = 0; i < Capacity(); i++ ) {
|
||||
|
@ -848,7 +849,6 @@ public:
|
|||
continue;
|
||||
}
|
||||
|
||||
#define DICT_NUM_DISTANCES 5
|
||||
int distances[DICT_NUM_DISTANCES];
|
||||
int max_distance = 0;
|
||||
DistanceStats(max_distance, distances, DICT_NUM_DISTANCES);
|
||||
|
@ -858,9 +858,9 @@ public:
|
|||
Capacity(), Length(), MaxLength(), (double)Length() / (table ? Capacity() : 1), max_distance,
|
||||
key_size / (Length() ? Length() : 1), log2_buckets, remaps, remap_end);
|
||||
if ( Length() > 0 ) {
|
||||
for ( int i = 0; i < DICT_NUM_DISTANCES - 1; i++ )
|
||||
printf("[%d]%2d%% ", i, 100 * distances[i] / Length());
|
||||
printf("[%d+]%2d%% ", DICT_NUM_DISTANCES - 1, 100 * distances[DICT_NUM_DISTANCES - 1] / Length());
|
||||
for ( size_t i = 0; i < DICT_NUM_DISTANCES - 1; i++ )
|
||||
printf("[%zu]%2d%% ", i, 100 * distances[i] / Length());
|
||||
printf("[%zu+]%2d%% ", DICT_NUM_DISTANCES - 1, 100 * distances[DICT_NUM_DISTANCES - 1] / Length());
|
||||
}
|
||||
else
|
||||
printf("\n");
|
||||
|
|
1
src/IP.h
1
src/IP.h
|
@ -33,6 +33,7 @@ class FragReassembler;
|
|||
}
|
||||
|
||||
#ifndef IPPROTO_MOBILITY
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define IPPROTO_MOBILITY 135
|
||||
#endif
|
||||
|
||||
|
|
|
@ -321,6 +321,7 @@ using name_list = PList<char>;
|
|||
} // namespace zeek
|
||||
|
||||
// Macro to visit each list element in turn.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define loop_over_list(list, iterator) \
|
||||
int iterator; \
|
||||
for ( (iterator) = 0; (iterator) < (list).length(); ++(iterator) )
|
||||
|
|
|
@ -92,7 +92,9 @@ public:
|
|||
const detail::Location* expr_location = nullptr) const;
|
||||
|
||||
// Report internal errors.
|
||||
void BadTag(const char* msg, const char* t1 = nullptr, const char* t2 = nullptr) const;
|
||||
[[noreturn]] void BadTag(const char* msg, const char* t1 = nullptr, const char* t2 = nullptr) const;
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define CHECK_TAG(t1, t2, text, tag_to_text_func) \
|
||||
{ \
|
||||
if ( (t1) != (t2) ) \
|
||||
|
|
|
@ -88,6 +88,8 @@ private:
|
|||
std::unordered_map<std::string, Factory*> _types;
|
||||
};
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
|
||||
/**
|
||||
* Macro to insert into an OpaqueVal-derived class's declaration. Overrides the "new" serialization methods
|
||||
* DoSerializeData and DoUnserializeData.
|
||||
|
@ -100,12 +102,15 @@ private:
|
|||
const char* OpaqueName() const override { return #T; } \
|
||||
static zeek::OpaqueValPtr OpaqueInstantiate() { return zeek::make_intrusive<T>(); }
|
||||
|
||||
|
||||
#define __OPAQUE_MERGE(a, b) a##b
|
||||
#define __OPAQUE_ID(x) __OPAQUE_MERGE(_opaque, x)
|
||||
|
||||
/** Macro to insert into an OpaqueVal-derived class's implementation file. */
|
||||
#define IMPLEMENT_OPAQUE_VALUE(T) static zeek::OpaqueMgr::Register<T> __OPAQUE_ID(__LINE__)(#T);
|
||||
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
||||
/**
|
||||
* Base class for all opaque values. Opaque values are types that are managed
|
||||
* completely internally, with no further script-level operators provided
|
||||
|
|
|
@ -14,6 +14,7 @@ enum TraversalCode : uint8_t {
|
|||
TC_ABORTSTMT = 2,
|
||||
};
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
#define HANDLE_TC_STMT_PRE(code) \
|
||||
{ \
|
||||
switch ( code ) { \
|
||||
|
@ -46,4 +47,6 @@ enum TraversalCode : uint8_t {
|
|||
#define HANDLE_TC_ATTR_PRE(code) HANDLE_TC_STMT_PRE(code)
|
||||
#define HANDLE_TC_ATTR_POST(code) return (code);
|
||||
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
||||
} // namespace zeek::detail
|
||||
|
|
14
src/Val.h
14
src/Val.h
|
@ -157,6 +157,7 @@ public:
|
|||
return cast_intrusive<T>(type);
|
||||
}
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define UNDERLYING_ACCESSOR_DECL(ztype, ctype, name) ctype name() const;
|
||||
|
||||
UNDERLYING_ACCESSOR_DECL(detail::IntValImplementation, zeek_int_t, AsInt)
|
||||
|
@ -433,12 +434,12 @@ public:
|
|||
// Same as for IntVal: no Get() method needed.
|
||||
};
|
||||
|
||||
#define Microseconds 1e-6
|
||||
#define Milliseconds 1e-3
|
||||
#define Seconds 1.0
|
||||
#define Minutes (60 * Seconds)
|
||||
#define Hours (60 * Minutes)
|
||||
#define Days (24 * Hours)
|
||||
constexpr double Microseconds = 1e-6;
|
||||
constexpr double Milliseconds = 1e-3;
|
||||
constexpr double Seconds = 1.0;
|
||||
constexpr double Minutes = (60 * Seconds);
|
||||
constexpr double Hours = (60 * Minutes);
|
||||
constexpr double Days = (24 * Hours);
|
||||
|
||||
class IntervalVal final : public detail::DoubleValImplementation {
|
||||
public:
|
||||
|
@ -1717,6 +1718,7 @@ private:
|
|||
std::vector<TypePtr>* yield_types = nullptr;
|
||||
};
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define UNDERLYING_ACCESSOR_DEF(ztype, ctype, name) \
|
||||
inline ctype Val::name() const { return static_cast<const ztype*>(this)->Get(); }
|
||||
|
||||
|
|
|
@ -772,6 +772,8 @@ private:
|
|||
static ID id_counter;
|
||||
};
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
|
||||
/**
|
||||
* Convenience macro to add a new timer.
|
||||
*/
|
||||
|
@ -802,6 +804,8 @@ private:
|
|||
#define LOOP_OVER_GIVEN_CONST_CHILDREN(var, the_kids) \
|
||||
for ( auto(var) = (the_kids).cbegin(); (var) != (the_kids).cend(); ++(var) )
|
||||
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
||||
/**
|
||||
* Support analyzer preprocess input before it reaches an analyzer's main
|
||||
* processing. They share the input interface with of an Analyzer but they
|
||||
|
@ -893,9 +897,21 @@ private:
|
|||
};
|
||||
|
||||
// The following need to be consistent with zeek.init.
|
||||
#define CONTENTS_NONE 0
|
||||
#define CONTENTS_ORIG 1
|
||||
#define CONTENTS_RESP 2
|
||||
#define CONTENTS_BOTH 3
|
||||
constexpr int CONTENTS_NONE = 0;
|
||||
constexpr int CONTENTS_ORIG = 1;
|
||||
constexpr int CONTENTS_RESP = 2;
|
||||
constexpr int CONTENTS_BOTH = 3;
|
||||
|
||||
} // namespace zeek::analyzer
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer namespace.")]] constexpr int CONTENTS_NONE =
|
||||
zeek::analyzer::CONTENTS_NONE;
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer namespace.")]] constexpr int CONTENTS_ORIG =
|
||||
zeek::analyzer::CONTENTS_ORIG;
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer namespace.")]] constexpr int CONTENTS_RESP =
|
||||
zeek::analyzer::CONTENTS_RESP;
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer namespace.")]] constexpr int CONTENTS_BOTH =
|
||||
zeek::analyzer::CONTENTS_BOTH;
|
||||
|
|
|
@ -386,6 +386,7 @@ extern analyzer::Manager* analyzer_mgr;
|
|||
|
||||
// Macros for analyzer debug logging which include the connection id into the
|
||||
// message.
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
#ifdef DEBUG
|
||||
#define DBG_ANALYZER(conn, txt) \
|
||||
DBG_LOG(zeek::DBG_ANALYZER, "%s " txt, \
|
||||
|
@ -399,3 +400,4 @@ extern analyzer::Manager* analyzer_mgr;
|
|||
#define DBG_ANALYZER(conn, txt)
|
||||
#define DBG_ANALYZER_ARGS(conn, fmt, ...)
|
||||
#endif
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
|
|
@ -16,11 +16,11 @@ namespace zeek::analyzer::ftp {
|
|||
FTP_Analyzer::FTP_Analyzer(Connection* conn) : analyzer::tcp::TCP_ApplicationAnalyzer("FTP", conn) {
|
||||
nvt_orig = new analyzer::login::NVT_Analyzer(conn, true);
|
||||
nvt_orig->SetIsNULSensitive(true);
|
||||
nvt_orig->SetCRLFAsEOL(LF_as_EOL);
|
||||
nvt_orig->SetCRLFAsEOL(tcp::LF_as_EOL);
|
||||
|
||||
nvt_resp = new analyzer::login::NVT_Analyzer(conn, false);
|
||||
nvt_resp->SetIsNULSensitive(true);
|
||||
nvt_resp->SetCRLFAsEOL(LF_as_EOL);
|
||||
nvt_resp->SetCRLFAsEOL(tcp::LF_as_EOL);
|
||||
|
||||
nvt_resp->SetPeer(nvt_orig);
|
||||
nvt_orig->SetPeer(nvt_resp);
|
||||
|
|
|
@ -14,10 +14,14 @@ enum login_state : uint8_t {
|
|||
};
|
||||
|
||||
// If no action by this many lines, we're definitely confused.
|
||||
#define MAX_AUTHENTICATE_LINES 50
|
||||
constexpr int MAX_AUTHENTICATE_LINES = 50;
|
||||
|
||||
// Maximum # lines look after login for failure.
|
||||
#define MAX_LOGIN_LOOKAHEAD 10
|
||||
constexpr int MAX_LOGIN_LOOKAHEAD = 10;
|
||||
|
||||
// If we have more user text than this unprocessed, we complain about
|
||||
// excessive typeahead.
|
||||
constexpr int MAX_USER_TEXT = 12;
|
||||
|
||||
class Login_Analyzer : public analyzer::tcp::TCP_ApplicationAnalyzer {
|
||||
public:
|
||||
|
@ -61,9 +65,6 @@ protected:
|
|||
bool HaveTypeahead() const { return num_user_text > 0; }
|
||||
void FlushEmptyTypeahead();
|
||||
|
||||
// If we have more user text than this unprocessed, we complain about
|
||||
// excessive typeahead.
|
||||
#define MAX_USER_TEXT 12
|
||||
char* user_text[MAX_USER_TEXT] = {nullptr};
|
||||
int user_text_first, user_text_last; // indices into user_text
|
||||
int num_user_text; // number of entries in user_text
|
||||
|
|
|
@ -412,7 +412,7 @@ void NVT_Analyzer::DeliverChunk(int& len, const u_char*& data) {
|
|||
|
||||
switch ( c ) {
|
||||
case '\r':
|
||||
if ( CRLFAsEOL() & CR_as_EOL ) {
|
||||
if ( CRLFAsEOL() & tcp::CR_as_EOL ) {
|
||||
buf[offset] = '\0';
|
||||
ForwardStream(offset, buf, IsOrig());
|
||||
offset = 0;
|
||||
|
@ -423,7 +423,7 @@ void NVT_Analyzer::DeliverChunk(int& len, const u_char*& data) {
|
|||
|
||||
case '\n':
|
||||
if ( last_char == '\r' ) {
|
||||
if ( CRLFAsEOL() & CR_as_EOL )
|
||||
if ( CRLFAsEOL() & tcp::CR_as_EOL )
|
||||
// we already emitted, skip
|
||||
;
|
||||
else {
|
||||
|
@ -434,7 +434,7 @@ void NVT_Analyzer::DeliverChunk(int& len, const u_char*& data) {
|
|||
}
|
||||
}
|
||||
|
||||
else if ( CRLFAsEOL() & LF_as_EOL ) {
|
||||
else if ( CRLFAsEOL() & tcp::LF_as_EOL ) {
|
||||
buf[offset] = '\0';
|
||||
ForwardStream(offset, buf, IsOrig());
|
||||
offset = 0;
|
||||
|
@ -474,7 +474,7 @@ void NVT_Analyzer::DeliverChunk(int& len, const u_char*& data) {
|
|||
default: buf[offset++] = c; break;
|
||||
}
|
||||
|
||||
if ( ! (CRLFAsEOL() & CR_as_EOL) && last_char == '\r' && c != '\n' && c != '\0' ) {
|
||||
if ( ! (CRLFAsEOL() & tcp::CR_as_EOL) && last_char == '\r' && c != '\n' && c != '\0' ) {
|
||||
if ( Conn()->FlagEvent(SINGULAR_CR) )
|
||||
Weird("line_terminated_with_single_CR");
|
||||
}
|
||||
|
|
|
@ -30,10 +30,10 @@ namespace analyzer::mime {
|
|||
|
||||
// MIME Constants
|
||||
|
||||
#define HT '\011'
|
||||
#define SP '\040'
|
||||
#define CR '\015'
|
||||
#define LF '\012'
|
||||
constexpr char HT = '\011';
|
||||
constexpr char SP = '\040';
|
||||
constexpr char CR = '\015';
|
||||
constexpr char LF = '\012';
|
||||
|
||||
enum MIME_CONTENT_TYPE : uint8_t {
|
||||
CONTENT_TYPE_MULTIPART,
|
||||
|
|
|
@ -69,7 +69,7 @@ protected:
|
|||
size_t buf_len; // size off msg_buf
|
||||
};
|
||||
|
||||
#define NCP_TCPIP_HEADER_LENGTH 8
|
||||
constexpr int NCP_TCPIP_HEADER_LENGTH = 8;
|
||||
|
||||
class NCP_FrameBuffer : public FrameBuffer {
|
||||
public:
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
namespace zeek::analyzer::tcp {
|
||||
|
||||
#define CR_as_EOL 1
|
||||
#define LF_as_EOL 2
|
||||
constexpr int CR_as_EOL = 1;
|
||||
constexpr int LF_as_EOL = 2;
|
||||
|
||||
// Slightly smaller than 16MB so that the buffer is not unnecessarily resized to 32M.
|
||||
constexpr auto DEFAULT_MAX_LINE_LENGTH = 16 * 1024 * 1024 - 100;
|
||||
|
@ -122,3 +122,9 @@ protected:
|
|||
};
|
||||
|
||||
} // namespace zeek::analyzer::tcp
|
||||
|
||||
// These were previously #defined, so they have to be outside of the namespace.
|
||||
[[deprecated("Remove in v8.1, use the version in the zeek:::analyzer::tcp namespace")]] constexpr int CR_as_EOL =
|
||||
zeek::analyzer::tcp::CR_as_EOL;
|
||||
[[deprecated("Remove in v8.1, use the version in the zeek:::analyzer::tcp namespace")]] constexpr int LF_as_EOL =
|
||||
zeek::analyzer::tcp::LF_as_EOL;
|
||||
|
|
|
@ -193,16 +193,19 @@ public:
|
|||
// Codes used for tracking history. For responders, we shift these
|
||||
// over by 16 bits in order to fit both originator and responder
|
||||
// into a Connection's hist_seen field.
|
||||
#define HIST_SYN_PKT 0x1
|
||||
#define HIST_FIN_PKT 0x2
|
||||
#define HIST_RST_PKT 0x4
|
||||
#define HIST_FIN_RST_PKT 0x8
|
||||
#define HIST_DATA_PKT 0x10
|
||||
#define HIST_ACK_PKT 0x20
|
||||
#define HIST_MULTI_FLAG_PKT 0x40
|
||||
#define HIST_CORRUPT_PKT 0x80
|
||||
#define HIST_RXMIT 0x100
|
||||
#define HIST_WIN0 0x200
|
||||
enum HistoryMasks : uint16_t {
|
||||
HIST_SYN_PKT = 0x1,
|
||||
HIST_FIN_PKT = 0x2,
|
||||
HIST_RST_PKT = 0x4,
|
||||
HIST_FIN_RST_PKT = 0x8,
|
||||
HIST_DATA_PKT = 0x10,
|
||||
HIST_ACK_PKT = 0x20,
|
||||
HIST_MULTI_FLAG_PKT = 0x40,
|
||||
HIST_CORRUPT_PKT = 0x80,
|
||||
HIST_RXMIT = 0x100,
|
||||
HIST_WIN0 = 0x200,
|
||||
};
|
||||
|
||||
// #define HIST_UNKNOWN_PKT 0x400 (do not use - used in Session.h)
|
||||
bool CheckHistory(uint32_t mask, char code);
|
||||
void AddHistory(char code);
|
||||
|
@ -248,10 +251,50 @@ protected:
|
|||
uint32_t gap_cnt, gap_thresh;
|
||||
};
|
||||
|
||||
#define ENDIAN_UNKNOWN 0
|
||||
#define ENDIAN_LITTLE 1
|
||||
#define ENDIAN_BIG 2
|
||||
#define ENDIAN_CONFUSED 3
|
||||
enum EndianTypes : uint8_t {
|
||||
ENDIAN_UNKNOWN = 0,
|
||||
ENDIAN_LITTLE = 1,
|
||||
ENDIAN_BIG = 2,
|
||||
ENDIAN_CONFUSED = 3,
|
||||
};
|
||||
|
||||
} // namespace analyzer::tcp
|
||||
} // namespace zeek
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_SYN_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_SYN_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_FIN_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_FIN_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_RST_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_RST_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_FIN_RST_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_FIN_RST_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_DATA_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_DATA_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_ACK_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_ACK_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_MULTI_FLAG_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_MULTI_FLAG_PKT;
|
||||
|
||||
[[deprecated(
|
||||
"Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_CORRUPT_PKT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_CORRUPT_PKT;
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_RXMIT =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_RXMIT;
|
||||
|
||||
[[deprecated("Remove in v8.1. Use version in zeek::analyzer::tcp::TCP_Endpoint namespace.")]] constexpr int HIST_WIN0 =
|
||||
zeek::analyzer::tcp::TCP_Endpoint::HIST_WIN0;
|
||||
|
|
|
@ -192,16 +192,17 @@ static void update_history(analyzer::tcp::TCP_Flags flags, analyzer::tcp::TCP_En
|
|||
int bits_set = (flags.SYN() ? 1 : 0) + (flags.FIN() ? 1 : 0) + (flags.RST() ? 1 : 0);
|
||||
if ( bits_set > 1 ) {
|
||||
if ( flags.FIN() && flags.RST() )
|
||||
endpoint->CheckHistory(HIST_FIN_RST_PKT, 'I');
|
||||
endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_FIN_RST_PKT, 'I');
|
||||
else
|
||||
endpoint->CheckHistory(HIST_MULTI_FLAG_PKT, 'Q');
|
||||
endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_MULTI_FLAG_PKT, 'Q');
|
||||
}
|
||||
|
||||
else if ( bits_set == 1 ) {
|
||||
if ( flags.SYN() ) {
|
||||
char code = flags.ACK() ? 'H' : 'S';
|
||||
|
||||
if ( endpoint->CheckHistory(HIST_SYN_PKT, code) && rel_seq != endpoint->hist_last_SYN )
|
||||
if ( endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_SYN_PKT, code) &&
|
||||
rel_seq != endpoint->hist_last_SYN )
|
||||
endpoint->AddHistory(code);
|
||||
|
||||
endpoint->hist_last_SYN = rel_seq;
|
||||
|
@ -211,14 +212,16 @@ static void update_history(analyzer::tcp::TCP_Flags flags, analyzer::tcp::TCP_En
|
|||
// For FIN's, the sequence number comes at the
|
||||
// end of (any data in) the packet, not the
|
||||
// beginning as for SYNs and RSTs.
|
||||
if ( endpoint->CheckHistory(HIST_FIN_PKT, 'F') && rel_seq + len != endpoint->hist_last_FIN )
|
||||
if ( endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_FIN_PKT, 'F') &&
|
||||
rel_seq + len != endpoint->hist_last_FIN )
|
||||
endpoint->AddHistory('F');
|
||||
|
||||
endpoint->hist_last_FIN = rel_seq + len;
|
||||
}
|
||||
|
||||
if ( flags.RST() ) {
|
||||
if ( endpoint->CheckHistory(HIST_RST_PKT, 'R') && rel_seq != endpoint->hist_last_RST )
|
||||
if ( endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_RST_PKT, 'R') &&
|
||||
rel_seq != endpoint->hist_last_RST )
|
||||
endpoint->AddHistory('R');
|
||||
|
||||
endpoint->hist_last_RST = rel_seq;
|
||||
|
@ -227,10 +230,10 @@ static void update_history(analyzer::tcp::TCP_Flags flags, analyzer::tcp::TCP_En
|
|||
|
||||
else { // bits_set == 0
|
||||
if ( len )
|
||||
endpoint->CheckHistory(HIST_DATA_PKT, 'D');
|
||||
endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_DATA_PKT, 'D');
|
||||
|
||||
else if ( flags.ACK() )
|
||||
endpoint->CheckHistory(HIST_ACK_PKT, 'A');
|
||||
endpoint->CheckHistory(analyzer::tcp::TCP_Endpoint::HIST_ACK_PKT, 'A');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1142,28 +1145,28 @@ void TCPSessionAdapter::DeleteTimer(double /* t */) { session_mgr->Remove(Conn()
|
|||
void TCPSessionAdapter::ConnDeleteTimer(double t) { Conn()->DeleteTimer(t); }
|
||||
|
||||
void TCPSessionAdapter::SetContentsFile(unsigned int direction, FilePtr f) {
|
||||
if ( direction == CONTENTS_NONE ) {
|
||||
if ( direction == analyzer::CONTENTS_NONE ) {
|
||||
orig->SetContentsFile(nullptr);
|
||||
resp->SetContentsFile(nullptr);
|
||||
}
|
||||
|
||||
else {
|
||||
if ( direction == CONTENTS_ORIG || direction == CONTENTS_BOTH )
|
||||
if ( direction == analyzer::CONTENTS_ORIG || direction == analyzer::CONTENTS_BOTH )
|
||||
orig->SetContentsFile(f);
|
||||
if ( direction == CONTENTS_RESP || direction == CONTENTS_BOTH )
|
||||
if ( direction == analyzer::CONTENTS_RESP || direction == analyzer::CONTENTS_BOTH )
|
||||
resp->SetContentsFile(f);
|
||||
}
|
||||
}
|
||||
|
||||
FilePtr TCPSessionAdapter::GetContentsFile(unsigned int direction) const {
|
||||
switch ( direction ) {
|
||||
case CONTENTS_NONE: return nullptr;
|
||||
case analyzer::CONTENTS_NONE: return nullptr;
|
||||
|
||||
case CONTENTS_ORIG: return orig->GetContentsFile();
|
||||
case analyzer::CONTENTS_ORIG: return orig->GetContentsFile();
|
||||
|
||||
case CONTENTS_RESP: return resp->GetContentsFile();
|
||||
case analyzer::CONTENTS_RESP: return resp->GetContentsFile();
|
||||
|
||||
case CONTENTS_BOTH:
|
||||
case analyzer::CONTENTS_BOTH:
|
||||
if ( orig->GetContentsFile() != resp->GetContentsFile() )
|
||||
// This is an "error".
|
||||
return nullptr;
|
||||
|
|
|
@ -33,6 +33,7 @@ namespace plugin {
|
|||
*
|
||||
* @param method_call The \a Manager method corresponding to the hook.
|
||||
*/
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define PLUGIN_HOOK_VOID(hook, method_call) \
|
||||
{ \
|
||||
if ( zeek::plugin_mgr->HavePluginForHook(zeek::plugin::hook) ) \
|
||||
|
@ -49,6 +50,7 @@ namespace plugin {
|
|||
* @param default_result: The result to use if there's no plugin implementing
|
||||
* the hook.
|
||||
*/
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define PLUGIN_HOOK_WITH_RESULT(hook, method_call, default_result) \
|
||||
(zeek::plugin_mgr->HavePluginForHook(zeek::plugin::hook) ? zeek::plugin_mgr->method_call : (default_result))
|
||||
|
||||
|
|
12
src/scan.l
12
src/scan.l
|
@ -653,12 +653,12 @@ F RET_CONST(zeek::val_mgr->False()->Ref())
|
|||
RET_CONST(zeek::val_mgr->Port(p, TRANSPORT_UNKNOWN)->Ref())
|
||||
}
|
||||
|
||||
{FLOAT}{OWS}day(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Days))
|
||||
{FLOAT}{OWS}hr(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Hours))
|
||||
{FLOAT}{OWS}min(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Minutes))
|
||||
{FLOAT}{OWS}sec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Seconds))
|
||||
{FLOAT}{OWS}msec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Milliseconds))
|
||||
{FLOAT}{OWS}usec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext),Microseconds))
|
||||
{FLOAT}{OWS}day(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Days))
|
||||
{FLOAT}{OWS}hr(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Hours))
|
||||
{FLOAT}{OWS}min(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Minutes))
|
||||
{FLOAT}{OWS}sec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Seconds))
|
||||
{FLOAT}{OWS}msec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Milliseconds))
|
||||
{FLOAT}{OWS}usec(s?) RET_CONST(new zeek::IntervalVal(atof(yytext), zeek::Microseconds))
|
||||
|
||||
"0x"{HEX}+ RET_CONST(zeek::val_mgr->Count(static_cast<zeek_uint_t>(strtoull(yytext, 0, 16))).release())
|
||||
|
||||
|
|
|
@ -326,4 +326,5 @@ protected:
|
|||
} // namespace session
|
||||
} // namespace zeek
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define ADD_TIMER(timer, t, do_expire, type) AddTimer(timer_func(timer), (t), (do_expire), (type))
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
// Macro helper to report Spicy debug messages. This forwards to
|
||||
// to both the Zeek logger and the Spicy runtime logger.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define SPICY_DEBUG(msg) ::zeek::spicy::log(msg);
|
||||
|
||||
namespace hilti::rt {
|
||||
|
|
|
@ -56,7 +56,8 @@ inline const auto CxxZeekIncludesDirectories() {
|
|||
return includes;
|
||||
}
|
||||
|
||||
// Version of Spicy that we are compiling against.
|
||||
// Version of Spicy that we are compiling against. Used for codegen changes in glue-compiler.cc.
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#cmakedefine SPICY_VERSION_NUMBER ${SPICY_VERSION_NUMBER}
|
||||
|
||||
inline const auto InstallPrefix = path("${CMAKE_INSTALL_PREFIX}");
|
||||
|
|
|
@ -1156,16 +1156,7 @@ function hexdump%(data_str: string%) : string
|
|||
// 17 + For ASCII display, with spacer column
|
||||
// 6 For 5-digit offset counter, including spacer
|
||||
//
|
||||
#define HEX_LINE_WIDTH 74
|
||||
|
||||
#define HEX_LINE_START 6
|
||||
#define HEX_LINE_END 53
|
||||
#define HEX_LINE_START_ASCII 56
|
||||
#define HEX_LINE_START_RIGHT_ASCII 65
|
||||
#define HEX_LINE_LEFT_MIDDLE 28
|
||||
#define HEX_LINE_RIGHT_MIDDLE 31
|
||||
#define HEX_BLOCK_LEN 23
|
||||
#define HEX_LINE_BYTES 16
|
||||
constexpr int HEX_LINE_WIDTH = 74;
|
||||
constexpr char NULL_CHAR = '.';
|
||||
constexpr char NONPRINT_CHAR = '.';
|
||||
|
||||
|
|
17
src/util.h
17
src/util.h
|
@ -38,6 +38,7 @@
|
|||
|
||||
#include <cassert>
|
||||
|
||||
// NOLINTBEGIN(cppcoreguidelines-macro-usage)
|
||||
#ifdef ASSERT
|
||||
#undef ASSERT
|
||||
#endif
|
||||
|
@ -55,6 +56,7 @@
|
|||
#define DEBUG_fputs(...)
|
||||
|
||||
#endif
|
||||
// NOLINTEND(cppcoreguidelines-macro-usage)
|
||||
|
||||
#ifdef USE_PERFTOOLS_DEBUG
|
||||
#include <gperftools/heap-checker.h>
|
||||
|
@ -101,6 +103,10 @@ extern char* strcasestr(const char* s, const char* find);
|
|||
// This is used by the patricia code and so it remains outside of the namespace.
|
||||
extern "C" void out_of_memory(const char* where);
|
||||
|
||||
constexpr int UID_POOL_DEFAULT_INTERNAL = 1;
|
||||
constexpr int UID_POOL_DEFAULT_SCRIPT = 2;
|
||||
constexpr int UID_POOL_CUSTOM_SCRIPT = 10; // First available custom script level pool.
|
||||
|
||||
namespace zeek {
|
||||
|
||||
class ODesc;
|
||||
|
@ -408,9 +414,6 @@ extern double curr_CPU_time();
|
|||
// instances. The integer can be drawn from different pools, which is helpful
|
||||
// when the random number generator is seeded to be deterministic. In that
|
||||
// case, the same sequence of integers is generated per pool.
|
||||
#define UID_POOL_DEFAULT_INTERNAL 1
|
||||
#define UID_POOL_DEFAULT_SCRIPT 2
|
||||
#define UID_POOL_CUSTOM_SCRIPT 10 // First available custom script level pool.
|
||||
extern uint64_t calculate_unique_id();
|
||||
extern uint64_t calculate_unique_id(const size_t pool);
|
||||
|
||||
|
@ -432,7 +435,13 @@ constexpr size_t pad_size(size_t size) {
|
|||
return ((size + 3) / pad + 1) * pad;
|
||||
}
|
||||
|
||||
#define padded_sizeof(x) (zeek::util::pad_size(sizeof(x)))
|
||||
template<typename T>
|
||||
constexpr size_t padded_size_of() {
|
||||
return zeek::util::pad_size(sizeof(T));
|
||||
}
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define padded_sizeof(x) (zeek::util::padded_size_of<decltype((x))>())
|
||||
|
||||
// Like write() but handles interrupted system calls by restarting. Returns
|
||||
// true if the write was successful, otherwise sets errno. This function is
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue