diff --git a/src/CompHash.cc b/src/CompHash.cc index 2463fa39a7..4e6cc1af69 100644 --- a/src/CompHash.cc +++ b/src/CompHash.cc @@ -3,6 +3,7 @@ #include "zeek-config.h" #include "CompHash.h" +#include "BroString.h" #include "Dict.h" #include "Val.h" #include "Reporter.h" diff --git a/src/DNS_Mgr.cc b/src/DNS_Mgr.cc index bb44bfb319..f6be03077a 100644 --- a/src/DNS_Mgr.cc +++ b/src/DNS_Mgr.cc @@ -31,6 +31,7 @@ #include +#include "BroString.h" #include "Event.h" #include "Net.h" #include "Val.h" diff --git a/src/Discard.cc b/src/Discard.cc index cb279ca580..7ba0d2e7a5 100644 --- a/src/Discard.cc +++ b/src/Discard.cc @@ -6,6 +6,7 @@ #include +#include "BroString.h" #include "Net.h" #include "Func.h" #include "Var.h" diff --git a/src/IP.cc b/src/IP.cc index 24ffac2b17..c63344c88c 100644 --- a/src/IP.cc +++ b/src/IP.cc @@ -10,6 +10,7 @@ #include "Type.h" #include "Val.h" #include "Var.h" +#include "BroString.h" #include "Reporter.h" static RecordType* ip4_hdr_type = 0; diff --git a/src/RuleMatcher.cc b/src/RuleMatcher.cc index 441e41a0b4..520d34109f 100644 --- a/src/RuleMatcher.cc +++ b/src/RuleMatcher.cc @@ -7,6 +7,7 @@ #include "RuleAction.h" #include "RuleCondition.h" +#include "BroString.h" #include "ID.h" #include "IntSet.h" #include "IP.h" diff --git a/src/Val.cc b/src/Val.cc index cdf8cf12df..e28b69385b 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -14,6 +14,7 @@ #include #include "Attr.h" +#include "BroString.h" #include "CompHash.h" #include "Dict.h" #include "Net.h" @@ -998,6 +999,26 @@ StringVal::StringVal(const string& s) : Val(TYPE_STRING) val.string_val = new BroString(reinterpret_cast(s.data()), s.length(), 1); } +Val* StringVal::SizeVal() const + { + return val_mgr->GetCount(val.string_val->Len()); + } + +int StringVal::Len() + { + return AsString()->Len(); + } + +const u_char* StringVal::Bytes() + { + return AsString()->Bytes(); + } + +const char* StringVal::CheckString() + { + return AsString()->CheckString(); + } + string StringVal::ToStdString() const { auto* bs = AsString(); diff --git a/src/Val.h b/src/Val.h index 219198df95..94873a55c0 100644 --- a/src/Val.h +++ b/src/Val.h @@ -3,7 +3,6 @@ #pragma once #include "Type.h" -#include "BroString.h" #include "Timer.h" #include "Notifier.h" #include "RE.h" @@ -33,6 +32,7 @@ template class PDict; class IterCookie; class Val; +class BroString; class BroFunc; class Func; class BroFile; @@ -546,12 +546,11 @@ public: explicit StringVal(const string& s); StringVal(int length, const char* s); - Val* SizeVal() const override - { return val_mgr->GetCount(val.string_val->Len()); } + Val* SizeVal() const override; - int Len() { return AsString()->Len(); } - const u_char* Bytes() { return AsString()->Bytes(); } - const char* CheckString() { return AsString()->CheckString(); } + int Len(); + const u_char* Bytes(); + const char* CheckString(); // Note that one needs to de-allocate the return value of // ExpandedString() to avoid a memory leak. diff --git a/src/analyzer/Analyzer.cc b/src/analyzer/Analyzer.cc index 6d340f11b5..b17d7fd0e8 100644 --- a/src/analyzer/Analyzer.cc +++ b/src/analyzer/Analyzer.cc @@ -7,6 +7,7 @@ #include "binpac.h" #include "analyzer/protocol/pia/PIA.h" +#include "../BroString.h" #include "../Event.h" namespace analyzer { diff --git a/src/analyzer/protocol/dns/DNS.cc b/src/analyzer/protocol/dns/DNS.cc index a4868056f6..db072ffeb3 100644 --- a/src/analyzer/protocol/dns/DNS.cc +++ b/src/analyzer/protocol/dns/DNS.cc @@ -9,6 +9,7 @@ #include #include +#include "BroString.h" #include "NetVar.h" #include "Sessions.h" #include "Event.h" diff --git a/src/analyzer/protocol/ftp/FTP.cc b/src/analyzer/protocol/ftp/FTP.cc index 26bb780caa..820a193958 100644 --- a/src/analyzer/protocol/ftp/FTP.cc +++ b/src/analyzer/protocol/ftp/FTP.cc @@ -5,6 +5,7 @@ #include +#include "BroString.h" #include "NetVar.h" #include "Event.h" #include "Base64.h" diff --git a/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac b/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac index b693f4e792..1ef11e1f90 100644 --- a/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac +++ b/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac @@ -1,5 +1,6 @@ %extern{ #include "Sessions.h" +#include "BroString.h" %} %code{ diff --git a/src/analyzer/protocol/ident/Ident.cc b/src/analyzer/protocol/ident/Ident.cc index 5b10a19c05..2ccb66dbb9 100644 --- a/src/analyzer/protocol/ident/Ident.cc +++ b/src/analyzer/protocol/ident/Ident.cc @@ -4,6 +4,7 @@ #include +#include "BroString.h" #include "NetVar.h" #include "Ident.h" #include "Event.h" diff --git a/src/analyzer/protocol/login/Login.cc b/src/analyzer/protocol/login/Login.cc index 5bca5930c6..7db2a81155 100644 --- a/src/analyzer/protocol/login/Login.cc +++ b/src/analyzer/protocol/login/Login.cc @@ -6,6 +6,7 @@ #include #include +#include "BroString.h" #include "NetVar.h" #include "RE.h" #include "Reporter.h" diff --git a/src/analyzer/protocol/login/NVT.cc b/src/analyzer/protocol/login/NVT.cc index 0105df59f0..47dfca94fe 100644 --- a/src/analyzer/protocol/login/NVT.cc +++ b/src/analyzer/protocol/login/NVT.cc @@ -5,6 +5,7 @@ #include +#include "BroString.h" #include "NetVar.h" #include "Event.h" #include "Reporter.h" diff --git a/src/analyzer/protocol/netbios/NetbiosSSN.cc b/src/analyzer/protocol/netbios/NetbiosSSN.cc index 4aedd0d0f0..8fbedf58b6 100644 --- a/src/analyzer/protocol/netbios/NetbiosSSN.cc +++ b/src/analyzer/protocol/netbios/NetbiosSSN.cc @@ -5,6 +5,7 @@ #include +#include "BroString.h" #include "NetVar.h" #include "Sessions.h" #include "Event.h" diff --git a/src/analyzer/protocol/rpc/MOUNT.cc b/src/analyzer/protocol/rpc/MOUNT.cc index b66bf34206..8cdb3c20e2 100644 --- a/src/analyzer/protocol/rpc/MOUNT.cc +++ b/src/analyzer/protocol/rpc/MOUNT.cc @@ -6,6 +6,7 @@ #include #include +#include "BroString.h" #include "NetVar.h" #include "XDR.h" #include "Event.h" diff --git a/src/analyzer/protocol/rpc/NFS.cc b/src/analyzer/protocol/rpc/NFS.cc index bba3375ec6..eb9aa229ec 100644 --- a/src/analyzer/protocol/rpc/NFS.cc +++ b/src/analyzer/protocol/rpc/NFS.cc @@ -6,6 +6,7 @@ #include #include +#include "BroString.h" #include "NetVar.h" #include "XDR.h" #include "Event.h" diff --git a/src/analyzer/protocol/ssh/ssh-protocol.pac b/src/analyzer/protocol/ssh/ssh-protocol.pac index c0c2a9ab49..1b42a841b7 100644 --- a/src/analyzer/protocol/ssh/ssh-protocol.pac +++ b/src/analyzer/protocol/ssh/ssh-protocol.pac @@ -1,5 +1,9 @@ %include consts.pac +%extern{ +#include "BroString.h" +%} + # Common constructs across SSH1 and SSH2 ######################################## diff --git a/src/analyzer/protocol/tcp/TCP_Reassembler.cc b/src/analyzer/protocol/tcp/TCP_Reassembler.cc index 28f4139225..4ae9305145 100644 --- a/src/analyzer/protocol/tcp/TCP_Reassembler.cc +++ b/src/analyzer/protocol/tcp/TCP_Reassembler.cc @@ -3,6 +3,7 @@ #include "File.h" #include "analyzer/Analyzer.h" #include "analyzer/protocol/tcp/TCP.h" +#include "BroString.h" #include "Reporter.h" #include "RuleMatcher.h" diff --git a/src/analyzer/protocol/teredo/Teredo.cc b/src/analyzer/protocol/teredo/Teredo.cc index 1214f30e3b..cccb400ef2 100644 --- a/src/analyzer/protocol/teredo/Teredo.cc +++ b/src/analyzer/protocol/teredo/Teredo.cc @@ -5,6 +5,7 @@ #include "IP.h" #include "Reporter.h" #include "Sessions.h" +#include "BroString.h" #include "events.bif.h" diff --git a/src/supervisor/Supervisor.cc b/src/supervisor/Supervisor.cc index 4a8cd87cf5..51f2e9f8a4 100644 --- a/src/supervisor/Supervisor.cc +++ b/src/supervisor/Supervisor.cc @@ -13,6 +13,7 @@ #include #include "iosource/Manager.h" +#include "BroString.h" #include "Dict.h" #include "Reporter.h" #include "Scope.h"