From 736a3f53d426396f2cce23af2b2cac9dbefe853d Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Thu, 2 Jul 2020 14:59:24 -0700 Subject: [PATCH] Rename BroString to zeek::String --- src/Base64.cc | 8 +- src/Base64.h | 8 +- src/BroString.cc | 96 +++++++++---------- src/BroString.h | 64 ++++++------- src/CompHash.cc | 4 +- src/Desc.cc | 4 +- src/Desc.h | 2 +- src/Discard.cc | 2 +- src/Expr.cc | 20 ++-- src/Hash.cc | 2 +- src/Hash.h | 6 +- src/IP.cc | 6 +- src/IPAddr.cc | 2 +- src/IPAddr.h | 5 +- src/OpaqueVal.cc | 2 +- src/RE.cc | 6 +- src/RE.h | 15 +-- src/RuleMatcher.cc | 6 +- src/RuleMatcher.h | 4 +- src/SmithWaterman.cc | 30 +++--- src/SmithWaterman.h | 20 ++-- src/Val.cc | 14 +-- src/Val.h | 17 ++-- src/analyzer/Analyzer.cc | 2 +- src/analyzer/protocol/dns/DNS.cc | 50 +++++----- src/analyzer/protocol/dns/DNS.h | 24 ++--- src/analyzer/protocol/ftp/FTP.cc | 2 +- .../protocol/gtpv1/gtpv1-analyzer.pac | 20 ++-- src/analyzer/protocol/http/HTTP.cc | 16 ++-- src/analyzer/protocol/http/HTTP.h | 6 +- src/analyzer/protocol/icmp/ICMP.cc | 8 +- src/analyzer/protocol/ident/Ident.cc | 10 +- src/analyzer/protocol/krb/KRB.cc | 10 +- src/analyzer/protocol/krb/KRB.h | 4 +- src/analyzer/protocol/krb/KRB_TCP.h | 4 +- src/analyzer/protocol/login/Login.cc | 4 +- src/analyzer/protocol/login/NVT.cc | 2 +- src/analyzer/protocol/mime/MIME.cc | 32 +++---- src/analyzer/protocol/mime/MIME.h | 20 ++-- src/analyzer/protocol/netbios/NetbiosSSN.cc | 8 +- src/analyzer/protocol/pop3/POP3.cc | 6 +- src/analyzer/protocol/rpc/MOUNT.cc | 4 +- src/analyzer/protocol/rpc/NFS.cc | 6 +- src/analyzer/protocol/smtp/SMTP.cc | 2 +- src/analyzer/protocol/smtp/SMTP.h | 2 +- src/analyzer/protocol/tcp/TCP_Reassembler.cc | 4 +- src/analyzer/protocol/teredo/Teredo.cc | 4 +- src/broker/messaging.bif | 2 +- src/file_analysis/File.cc | 6 +- src/file_analysis/File.h | 2 +- src/file_analysis/Manager.cc | 2 +- .../analyzer/data_event/DataEvent.cc | 4 +- src/input/Manager.cc | 4 +- src/logging/Manager.cc | 2 +- src/scan.l | 2 +- src/strings.bif | 50 +++++----- src/threading/SerialTypes.cc | 2 +- src/zeek.bif | 16 ++-- 58 files changed, 346 insertions(+), 339 deletions(-) diff --git a/src/Base64.cc b/src/Base64.cc index a945131c38..1e2cba3872 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -228,7 +228,7 @@ void Base64Converter::IllegalEncoding(const char* msg) reporter->Error("%s", msg); } -zeek::BroString* decode_base64(const zeek::BroString* s, const zeek::BroString* a, Connection* conn) +zeek::String* decode_base64(const zeek::String* s, const zeek::String* a, Connection* conn) { if ( a && a->Len() != 0 && a->Len() != 64 ) { @@ -255,14 +255,14 @@ zeek::BroString* decode_base64(const zeek::BroString* s, const zeek::BroString* rlen += rlen2; rbuf[rlen] = '\0'; - return new zeek::BroString(true, (u_char*) rbuf, rlen); + return new zeek::String(true, (u_char*) rbuf, rlen); err: delete [] rbuf; return nullptr; } -zeek::BroString* encode_base64(const zeek::BroString* s, const zeek::BroString* a, Connection* conn) +zeek::String* encode_base64(const zeek::String* s, const zeek::String* a, Connection* conn) { if ( a && a->Len() != 0 && a->Len() != 64 ) { @@ -276,5 +276,5 @@ zeek::BroString* encode_base64(const zeek::BroString* s, const zeek::BroString* Base64Converter enc(conn, a ? a->CheckString() : ""); enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); - return new zeek::BroString(true, (u_char*)outbuf, outlen); + return new zeek::String(true, (u_char*)outbuf, outlen); } diff --git a/src/Base64.h b/src/Base64.h index a02e192091..81ac32b695 100644 --- a/src/Base64.h +++ b/src/Base64.h @@ -3,7 +3,9 @@ #include "zeek-config.h" #include -ZEEK_FORWARD_DECLARE_NAMESPACED(BroString, zeek); +namespace zeek { class String; } +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; + class Connection; // Maybe we should have a base class for generic decoders? @@ -58,5 +60,5 @@ protected: }; -zeek::BroString* decode_base64(const zeek::BroString* s, const zeek::BroString* a = nullptr, Connection* conn = nullptr); -zeek::BroString* encode_base64(const zeek::BroString* s, const zeek::BroString* a = nullptr, Connection* conn = nullptr); +zeek::String* decode_base64(const zeek::String* s, const zeek::String* a = nullptr, Connection* conn = nullptr); +zeek::String* encode_base64(const zeek::String* s, const zeek::String* a = nullptr, Connection* conn = nullptr); diff --git a/src/BroString.cc b/src/BroString.cc index eed1f05b47..0ac18bdaba 100644 --- a/src/BroString.cc +++ b/src/BroString.cc @@ -20,15 +20,15 @@ namespace zeek { -constexpr int BroString::EXPANDED_STRING; -constexpr int BroString::BRO_STRING_LITERAL; +constexpr int String::EXPANDED_STRING; +constexpr int String::BRO_STRING_LITERAL; // This constructor forces the user to specify arg_final_NUL. When str // is a *normal* NUL-terminated string, make arg_n == strlen(str) and // arg_final_NUL == 1; when str is a sequence of n bytes, make // arg_final_NUL == 0. -BroString::BroString(bool arg_final_NUL, byte_vec str, int arg_n) +String::String(bool arg_final_NUL, byte_vec str, int arg_n) { b = str; n = arg_n; @@ -36,27 +36,27 @@ BroString::BroString(bool arg_final_NUL, byte_vec str, int arg_n) use_free_to_delete = false; } -BroString::BroString(const u_char* str, int arg_n, bool add_NUL) : BroString() +String::String(const u_char* str, int arg_n, bool add_NUL) : String() { Set(str, arg_n, add_NUL); } -BroString::BroString(const char* str) : BroString() +String::String(const char* str) : String() { Set(str); } -BroString::BroString(const std::string &str) : BroString() +String::String(const std::string &str) : String() { Set(str); } -BroString::BroString(const BroString& bs) : BroString() +String::String(const String& bs) : String() { *this = bs; } -BroString::BroString() +String::String() { b = nullptr; n = 0; @@ -64,7 +64,7 @@ BroString::BroString() use_free_to_delete = false; } -void BroString::Reset() +void String::Reset() { if ( use_free_to_delete ) free(b); @@ -77,7 +77,7 @@ void BroString::Reset() use_free_to_delete = false; } -const BroString& BroString::operator=(const BroString &bs) +const String& String::operator=(const String &bs) { Reset(); n = bs.n; @@ -91,17 +91,17 @@ const BroString& BroString::operator=(const BroString &bs) return *this; } -bool BroString::operator==(const BroString &bs) const +bool String::operator==(const String &bs) const { return Bstr_eq(this, &bs); } -bool BroString::operator<(const BroString &bs) const +bool String::operator<(const String &bs) const { return Bstr_cmp(this, &bs) < 0; } -void BroString::Adopt(byte_vec bytes, int len) +void String::Adopt(byte_vec bytes, int len) { Reset(); @@ -113,7 +113,7 @@ void BroString::Adopt(byte_vec bytes, int len) n = len - final_NUL; } -void BroString::Set(const u_char* str, int len, bool add_NUL) +void String::Set(const u_char* str, int len, bool add_NUL) { Reset(); @@ -128,7 +128,7 @@ void BroString::Set(const u_char* str, int len, bool add_NUL) use_free_to_delete = false; } -void BroString::Set(const char* str) +void String::Set(const char* str) { Reset(); @@ -139,7 +139,7 @@ void BroString::Set(const char* str) use_free_to_delete = false; } -void BroString::Set(const std::string& str) +void String::Set(const std::string& str) { Reset(); @@ -150,12 +150,12 @@ void BroString::Set(const std::string& str) use_free_to_delete = false; } -void BroString::Set(const BroString& str) +void String::Set(const String& str) { *this = str; } -const char* BroString::CheckString() const +const char* String::CheckString() const { void *nulTerm; if ( n == 0 ) @@ -178,7 +178,7 @@ const char* BroString::CheckString() const return (const char*) b; } -char* BroString::Render(int format, int* len) const +char* String::Render(int format, int* len) const { // Maxmimum character expansion is as \xHH, so a factor of 4. char* s = new char[n*4 + 1]; // +1 is for final '\0' @@ -236,7 +236,7 @@ char* BroString::Render(int format, int* len) const return s; } -std::ostream& BroString::Render(std::ostream &os, int format) const +std::ostream& String::Render(std::ostream &os, int format) const { char* tmp = Render(format); os << tmp; @@ -244,9 +244,9 @@ std::ostream& BroString::Render(std::ostream &os, int format) const return os; } -std::istream& BroString::Read(std::istream &is, int format) +std::istream& String::Read(std::istream &is, int format) { - if ( (format & BroString::ESC_SER) ) + if ( (format & String::ESC_SER) ) { int len; is >> len; // Get the length of the string @@ -270,19 +270,19 @@ std::istream& BroString::Read(std::istream &is, int format) return is; } -void BroString::ToUpper() +void String::ToUpper() { for ( int i = 0; i < n; ++i ) if ( islower(b[i]) ) b[i] = toupper(b[i]); } -unsigned int BroString::MemoryAllocation() const +unsigned int String::MemoryAllocation() const { return padded_sizeof(*this) + pad_size(n + final_NUL); } -BroString* BroString::GetSubstring(int start, int len) const +String* String::GetSubstring(int start, int len) const { // This code used to live in zeek.bif's sub_bytes() routine. if ( start < 0 || start > n ) @@ -291,15 +291,15 @@ BroString* BroString::GetSubstring(int start, int len) const if ( len < 0 || len > n - start ) len = n - start; - return new BroString(&b[start], len, true); + return new String(&b[start], len, true); } -int BroString::FindSubstring(const BroString* s) const +int String::FindSubstring(const String* s) const { return strstr_n(n, b, s->Len(), s->Bytes()); } -BroString::Vec* BroString::Split(const BroString::IdxVec& indices) const +String::Vec* String::Split(const String::IdxVec& indices) const { unsigned int i; @@ -340,13 +340,13 @@ BroString::Vec* BroString::Split(const BroString::IdxVec& indices) const return result; } -zeek::VectorVal* BroString:: VecToPolicy(Vec* vec) +zeek::VectorVal* String:: VecToPolicy(Vec* vec) { auto result = zeek::make_intrusive(zeek::id::string_vec); for ( unsigned int i = 0; i < vec->size(); ++i ) { - BroString* string = (*vec)[i]; + String* string = (*vec)[i]; auto val = zeek::make_intrusive(string->Len(), (const char*) string->Bytes()); result->Assign(i+1, std::move(val)); @@ -355,7 +355,7 @@ zeek::VectorVal* BroString:: VecToPolicy(Vec* vec) return result.release(); } -BroString::Vec* BroString::VecFromPolicy(zeek::VectorVal* vec) +String::Vec* String::VecFromPolicy(zeek::VectorVal* vec) { Vec* result = new Vec(); @@ -366,18 +366,18 @@ BroString::Vec* BroString::VecFromPolicy(zeek::VectorVal* vec) if ( ! v ) continue; - BroString* string = new BroString(*(v->AsString())); + String* string = new String(*(v->AsString())); result->push_back(string); } return result; } -char* BroString::VecToString(const Vec* vec) +char* String::VecToString(const Vec* vec) { std::string result("["); - for ( BroString::VecCIt it = vec->begin(); it != vec->end(); ++it ) + for ( String::VecCIt it = vec->begin(); it != vec->end(); ++it ) { result += (*it)->CheckString(); result += ","; @@ -388,22 +388,22 @@ char* BroString::VecToString(const Vec* vec) return strdup(result.c_str()); } -bool BroStringLenCmp::operator()(BroString * const& bst1, - BroString * const& bst2) +bool StringLenCmp::operator()(String * const& bst1, + String * const& bst2) { return _increasing ? (bst1->Len() < bst2->Len()) : (bst1->Len() > bst2->Len()); } -std::ostream& operator<<(std::ostream& os, const BroString& bs) +std::ostream& operator<<(std::ostream& os, const String& bs) { - char* tmp = bs.Render(BroString::EXPANDED_STRING); + char* tmp = bs.Render(String::EXPANDED_STRING); os << tmp; delete [] tmp; return os; } -int Bstr_eq(const BroString* s1, const BroString* s2) +int Bstr_eq(const String* s1, const String* s2) { if ( s1->Len() != s2->Len() ) return 0; @@ -411,7 +411,7 @@ int Bstr_eq(const BroString* s1, const BroString* s2) return memcmp(s1->Bytes(), s2->Bytes(), s1->Len()) == 0; } -int Bstr_cmp(const BroString* s1, const BroString* s2) +int Bstr_cmp(const String* s1, const String* s2) { int n = std::min(s1->Len(), s2->Len()); int cmp = memcmp(s1->Bytes(), s2->Bytes(), n); @@ -427,7 +427,7 @@ int Bstr_cmp(const BroString* s1, const BroString* s2) return 1; } -BroString* concatenate(std::vector& v) +String* concatenate(std::vector& v) { int n = v.size(); int len = 0; @@ -446,10 +446,10 @@ BroString* concatenate(std::vector& v) *b = '\0'; - return new BroString(true, (byte_vec) data, len); + return new String(true, (byte_vec) data, len); } -BroString* concatenate(BroString::CVec& v) +String* concatenate(String::CVec& v) { int n = v.size(); int len = 0; @@ -467,20 +467,20 @@ BroString* concatenate(BroString::CVec& v) } *b = '\0'; - return new BroString(true, (byte_vec) data, len); + return new String(true, (byte_vec) data, len); } -BroString* concatenate(BroString::Vec& v) +String* concatenate(String::Vec& v) { - BroString::CVec cv; + String::CVec cv; - for ( BroString::VecIt it = v.begin(); it != v.end(); ++it ) + for ( String::VecIt it = v.begin(); it != v.end(); ++it ) cv.push_back(*it); return concatenate(cv); } -void delete_strings(std::vector& v) +void delete_strings(std::vector& v) { for ( unsigned int i = 0; i < v.size(); ++i ) delete v[i]; diff --git a/src/BroString.h b/src/BroString.h index c35a5bbe6e..0b0ab3db60 100644 --- a/src/BroString.h +++ b/src/BroString.h @@ -19,13 +19,13 @@ namespace zeek { typedef u_char* byte_vec; -class BroString { +class String { public: - typedef std::vector Vec; + typedef std::vector Vec; typedef Vec::iterator VecIt; typedef Vec::const_iterator VecCIt; - typedef std::vector CVec; + typedef std::vector CVec; typedef Vec::iterator CVecIt; typedef Vec::const_iterator CVecCIt; @@ -35,20 +35,20 @@ public: typedef IdxVec::const_iterator IdxVecCIt; // Constructors creating internal copies of the data passed in. - BroString(const u_char* str, int arg_n, bool add_NUL); - explicit BroString(const char* str); - explicit BroString(const std::string& str); - BroString(const BroString& bs); + String(const u_char* str, int arg_n, bool add_NUL); + explicit String(const char* str); + explicit String(const std::string& str); + String(const String& bs); // Constructor that takes owernship of the vector passed in. - BroString(bool arg_final_NUL, byte_vec str, int arg_n); + String(bool arg_final_NUL, byte_vec str, int arg_n); - BroString(); - ~BroString() { Reset(); } + String(); + ~String() { Reset(); } - const BroString& operator=(const BroString& bs); - bool operator==(const BroString& bs) const; - bool operator<(const BroString& bs) const; + const String& operator=(const String& bs); + bool operator==(const String& bs) const; + bool operator<(const String& bs) const; byte_vec Bytes() const { return b; } int Len() const { return n; } @@ -66,7 +66,7 @@ public: void Set(const u_char* str, int len, bool add_NUL=true); void Set(const char* str); void Set(const std::string& str); - void Set(const BroString &str); + void Set(const String &str); void SetUseFreeToDelete(int use_it) { use_free_to_delete = use_it; } @@ -113,7 +113,7 @@ public: std::istream& Read(std::istream& is, int format = ESC_SER); // XXX Fix redundancy: strings.bif implements both to_lower - // XXX and to_upper; the latter doesn't use BroString::ToUpper(). + // XXX and to_upper; the latter doesn't use String::ToUpper(). void ToUpper(); unsigned int MemoryAllocation() const; @@ -123,12 +123,12 @@ public: // A negative @length means "until end of string". Other invalid // values result in a return value of 0. // - BroString* GetSubstring(int start, int length) const; + String* GetSubstring(int start, int length) const; // Returns the start index of s in this string, counting from 0. // If s is not found, -1 is returned. // - int FindSubstring(const BroString* s) const; + int FindSubstring(const String* s) const; // Splits the string into substrings, taking all the indices in // the given vector as cutting points. The vector does not need @@ -151,28 +151,28 @@ protected: bool use_free_to_delete; // free() vs. operator delete }; -// A comparison class that sorts pointers to BroString's according to +// A comparison class that sorts pointers to String's according to // the length of the pointed-to strings. Sort order can be specified // through the constructor. // -class BroStringLenCmp { +class StringLenCmp { public: - explicit BroStringLenCmp(bool increasing = true) { _increasing = increasing; } - bool operator()(BroString*const& bst1, BroString*const& bst2); + explicit StringLenCmp(bool increasing = true) { _increasing = increasing; } + bool operator()(String*const& bst1, String*const& bst2); private: unsigned int _increasing; }; // Default output stream operator, using rendering mode EXPANDED_STRING. -std::ostream& operator<<(std::ostream& os, const BroString& bs); +std::ostream& operator<<(std::ostream& os, const String& bs); -extern int Bstr_eq(const BroString* s1, const BroString* s2); -extern int Bstr_cmp(const BroString* s1, const BroString* s2); +extern int Bstr_eq(const String* s1, const String* s2); +extern int Bstr_cmp(const String* s1, const String* s2); // A data_chunk_t specifies a length-delimited constant string. It is -// often used for substrings of other BroString's to avoid memory copy, -// which would be necessary if BroString were used. Unlike BroString, +// often used for substrings of other String's to avoid memory copy, +// which would be necessary if String were used. Unlike String, // the string should not be deallocated on destruction. // // "BroConstString" might be a better name here. @@ -182,14 +182,14 @@ struct data_chunk_t { const char* data; }; -extern BroString* concatenate(std::vector& v); -extern BroString* concatenate(BroString::Vec& v); -extern BroString* concatenate(BroString::CVec& v); -extern void delete_strings(std::vector& v); +extern String* concatenate(std::vector& v); +extern String* concatenate(String::Vec& v); +extern String* concatenate(String::CVec& v); +extern void delete_strings(std::vector& v); } // namespace zeek -using BroString [[deprecated("Remove in v4.1. Use zeek::BroString instead.")]] = zeek::BroString; -using BroStringLenCmp [[deprecated("Remove in v4.1. Use zeek::BroStringLenCmp instead.")]] = zeek::BroStringLenCmp; +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; +using BroStringLenCmp [[deprecated("Remove in v4.1. Use zeek::StringLenCmp instead.")]] = zeek::StringLenCmp; using byte_vec [[deprecated("Remove in v4.1. Use zeek::byte_vec instead.")]] = zeek::byte_vec; using data_chunk_t [[deprecated("Remove in v4.1. Use zeek::data_chunk_t instead.")]] = zeek::data_chunk_t; diff --git a/src/CompHash.cc b/src/CompHash.cc index 47fd0a11d1..d61349cc59 100644 --- a/src/CompHash.cc +++ b/src/CompHash.cc @@ -317,7 +317,7 @@ char* CompositeHash::SingleValHash(bool type_check, char* kp0, { // Align to int for the length field. int* kp = AlignAndPadType(kp0); - const zeek::BroString* sval = v->AsString(); + const zeek::String* sval = v->AsString(); *kp = sval->Len(); // so we can recover the value @@ -1047,7 +1047,7 @@ const char* CompositeHash::RecoverOneVal( kp1 = reinterpret_cast(kp+1); } - *pval = zeek::make_intrusive(new zeek::BroString((const zeek::byte_vec) kp1, n, true)); + *pval = zeek::make_intrusive(new zeek::String((const zeek::byte_vec) kp1, n, true)); kp1 += n; } break; diff --git a/src/Desc.cc b/src/Desc.cc index 16588342ab..9d41ca8b27 100644 --- a/src/Desc.cc +++ b/src/Desc.cc @@ -197,7 +197,7 @@ void ODesc::AddCS(const char* s) Add(s); } -void ODesc::AddBytes(const zeek::BroString* s) +void ODesc::AddBytes(const zeek::String* s) { if ( IsReadable() ) { @@ -205,7 +205,7 @@ void ODesc::AddBytes(const zeek::BroString* s) AddBytes(reinterpret_cast(s->Bytes()), s->Len()); else { - const char* str = s->Render(zeek::BroString::EXPANDED_STRING); + const char* str = s->Render(zeek::String::EXPANDED_STRING); Add(str); delete [] str; } diff --git a/src/Desc.h b/src/Desc.h index 5095b2f5d9..b6e64fe22c 100644 --- a/src/Desc.h +++ b/src/Desc.h @@ -93,7 +93,7 @@ public: // Add s as a counted string. void AddCS(const char* s); - void AddBytes(const zeek::BroString* s); + void AddBytes(const zeek::String* s); void Add(const char* s1, const char* s2) { Add(s1); Add(s2); } diff --git a/src/Discard.cc b/src/Discard.cc index 480019ee4e..3803adde40 100644 --- a/src/Discard.cc +++ b/src/Discard.cc @@ -163,5 +163,5 @@ zeek::Val* Discarder::BuildData(const u_char* data, int hdrlen, int len, int cap len = std::max(std::min(std::min(len, caplen), discarder_maxlen), 0); - return new zeek::StringVal(new zeek::BroString(data, len, true)); + return new zeek::StringVal(new zeek::String(data, len, true)); } diff --git a/src/Expr.cc b/src/Expr.cc index 09c49c4e52..5c86b11da2 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -692,8 +692,8 @@ ValPtr BinaryExpr::Fold(Val* v1, Val* v2) const ValPtr BinaryExpr::StringFold(Val* v1, Val* v2) const { - const BroString* s1 = v1->AsString(); - const BroString* s2 = v2->AsString(); + const String* s1 = v1->AsString(); + const String* s2 = v2->AsString(); int result = 0; switch ( tag ) { @@ -710,7 +710,7 @@ ValPtr BinaryExpr::StringFold(Val* v1, Val* v2) const case EXPR_ADD: case EXPR_ADD_TO: { - std::vector strings; + std::vector strings; strings.push_back(s1); strings.push_back(s2); @@ -1760,7 +1760,7 @@ ValPtr EqExpr::Fold(Val* v1, Val* v2) const if ( op1->GetType()->Tag() == zeek::TYPE_PATTERN ) { RE_Matcher* re = v1->AsPattern(); - const BroString* s = v2->AsString(); + const String* s = v2->AsString(); if ( tag == EXPR_EQ ) return zeek::val_mgr->Bool(re->MatchExactly(s)); else @@ -2661,9 +2661,9 @@ ValPtr IndexExpr::Fold(Val* v1, Val* v2) const case zeek::TYPE_STRING: { const ListVal* lv = v2->AsListVal(); - const BroString* s = v1->AsString(); + const String* s = v1->AsString(); int len = s->Len(); - BroString* substring = nullptr; + String* substring = nullptr; if ( lv->Length() == 1 ) { @@ -2687,7 +2687,7 @@ ValPtr IndexExpr::Fold(Val* v1, Val* v2) const substring = s->GetSubstring(first, substring_len); } - return zeek::make_intrusive(substring ? substring : new BroString("")); + return zeek::make_intrusive(substring ? substring : new String("")); } default: @@ -3948,14 +3948,14 @@ ValPtr InExpr::Fold(Val* v1, Val* v2) const if ( v1->GetType()->Tag() == zeek::TYPE_PATTERN ) { RE_Matcher* re = v1->AsPattern(); - const BroString* s = v2->AsString(); + const String* s = v2->AsString(); return zeek::val_mgr->Bool(re->MatchAnywhere(s) != 0); } if ( v2->GetType()->Tag() == zeek::TYPE_STRING ) { - const BroString* s1 = v1->AsString(); - const BroString* s2 = v2->AsString(); + const String* s1 = v1->AsString(); + const String* s2 = v2->AsString(); // Could do better here e.g. Boyer-Moore if done repeatedly. auto s = reinterpret_cast(s1->CheckString()); diff --git a/src/Hash.cc b/src/Hash.cc index 0972c970e5..3879bed42b 100644 --- a/src/Hash.cc +++ b/src/Hash.cc @@ -145,7 +145,7 @@ HashKey::HashKey(const char* s) hash = HashBytes(key, size); } -HashKey::HashKey(const zeek::BroString* s) +HashKey::HashKey(const zeek::String* s) { size = s->Len(); key = (void*) s->Bytes(); diff --git a/src/Hash.h b/src/Hash.h index 0227b60cc4..3456eb0573 100644 --- a/src/Hash.h +++ b/src/Hash.h @@ -27,7 +27,9 @@ #include "ZeekArgs.h" ZEEK_FORWARD_DECLARE_NAMESPACED(Frame, zeek::detail); -ZEEK_FORWARD_DECLARE_NAMESPACED(BroString, zeek); + +namespace zeek { class String; } +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; class BifReturnVal; namespace zeek::BifFunc { @@ -215,7 +217,7 @@ public: explicit HashKey(double d); explicit HashKey(const void* p); explicit HashKey(const char* s); - explicit HashKey(const zeek::BroString* s); + explicit HashKey(const zeek::String* s); ~HashKey() { if ( is_our_dynamic ) diff --git a/src/IP.cc b/src/IP.cc index 2b1dd47f80..41d68539a3 100644 --- a/src/IP.cc +++ b/src/IP.cc @@ -38,7 +38,7 @@ static zeek::VectorValPtr BuildOptionsVal(const u_char* data, int len) uint16_t off = 2 * sizeof(uint8_t); rv->Assign(1, zeek::val_mgr->Count(opt->ip6o_len)); rv->Assign(2, zeek::make_intrusive( - new zeek::BroString(data + off, opt->ip6o_len, true))); + new zeek::String(data + off, opt->ip6o_len, true))); data += opt->ip6o_len + off; len -= opt->ip6o_len + off; } @@ -108,7 +108,7 @@ zeek::RecordValPtr IPv6_Hdr::ToVal(zeek::VectorValPtr chain) const rv->Assign(2, zeek::val_mgr->Count(rt->ip6r_type)); rv->Assign(3, zeek::val_mgr->Count(rt->ip6r_segleft)); uint16_t off = 4 * sizeof(uint8_t); - rv->Assign(4, zeek::make_intrusive(new zeek::BroString(data + off, Length() - off, true))); + rv->Assign(4, zeek::make_intrusive(new zeek::String(data + off, Length() - off, true))); } break; @@ -141,7 +141,7 @@ zeek::RecordValPtr IPv6_Hdr::ToVal(zeek::VectorValPtr chain) const // Payload Len was non-zero for this header. rv->Assign(4, zeek::val_mgr->Count(ntohl(((uint32_t*)data)[2]))); uint16_t off = 3 * sizeof(uint32_t); - rv->Assign(5, zeek::make_intrusive(new zeek::BroString(data + off, Length() - off, true))); + rv->Assign(5, zeek::make_intrusive(new zeek::String(data + off, Length() - off, true))); } } break; diff --git a/src/IPAddr.cc b/src/IPAddr.cc index 2ce4de71b0..8b04ab5d20 100644 --- a/src/IPAddr.cc +++ b/src/IPAddr.cc @@ -47,7 +47,7 @@ ConnIDKey BuildConnIDKey(const ConnID& id) return key; } -IPAddr::IPAddr(const zeek::BroString& s) +IPAddr::IPAddr(const zeek::String& s) { Init(s.CheckString()); } diff --git a/src/IPAddr.h b/src/IPAddr.h index c5c4b2b2c8..3a2b9d01ef 100644 --- a/src/IPAddr.h +++ b/src/IPAddr.h @@ -10,7 +10,8 @@ #include "threading/SerialTypes.h" -ZEEK_FORWARD_DECLARE_NAMESPACED(BroString, zeek); +namespace zeek { class String; } +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; struct ConnID; class HashKey; @@ -111,7 +112,7 @@ public: * @param s String containing an IP address as either a dotted IPv4 * address or a hex IPv6 address. */ - explicit IPAddr(const zeek::BroString& s); + explicit IPAddr(const zeek::String& s); /** * Constructs an address instance from a raw byte representation. diff --git a/src/OpaqueVal.cc b/src/OpaqueVal.cc index 147121b2f8..b1f0c741ad 100644 --- a/src/OpaqueVal.cc +++ b/src/OpaqueVal.cc @@ -230,7 +230,7 @@ void HashVal::digest_one(EVP_MD_CTX* h, const Val* v) { if ( v->GetType()->Tag() == zeek::TYPE_STRING ) { - const BroString* str = v->AsString(); + const String* str = v->AsString(); hash_update(h, str->Bytes(), str->Len()); } else diff --git a/src/RE.cc b/src/RE.cc index f0506fbbad..db8928e12e 100644 --- a/src/RE.cc +++ b/src/RE.cc @@ -209,7 +209,7 @@ bool Specific_RE_Matcher::MatchAll(const char* s) return MatchAll((const u_char*)(s), strlen(s)); } -bool Specific_RE_Matcher::MatchAll(const zeek::BroString* s) +bool Specific_RE_Matcher::MatchAll(const zeek::String* s) { // s->Len() does not include '\0'. return MatchAll(s->Bytes(), s->Len()); @@ -220,7 +220,7 @@ int Specific_RE_Matcher::Match(const char* s) return Match((const u_char*)(s), strlen(s)); } -int Specific_RE_Matcher::Match(const zeek::BroString* s) +int Specific_RE_Matcher::Match(const zeek::String* s) { return Match(s->Bytes(), s->Len()); } @@ -230,7 +230,7 @@ int Specific_RE_Matcher::LongestMatch(const char* s) return LongestMatch((const u_char*)(s), strlen(s)); } -int Specific_RE_Matcher::LongestMatch(const zeek::BroString* s) +int Specific_RE_Matcher::LongestMatch(const zeek::String* s) { return LongestMatch(s->Bytes(), s->Len()); } diff --git a/src/RE.h b/src/RE.h index c302f9b9d1..d639934f97 100644 --- a/src/RE.h +++ b/src/RE.h @@ -14,7 +14,8 @@ #include typedef int (*cce_func)(int); -ZEEK_FORWARD_DECLARE_NAMESPACED(BroString, zeek); +namespace zeek { class String; } +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; class CCL; class NFA_Machine; @@ -82,7 +83,7 @@ public: void ConvertCCLs(); bool MatchAll(const char* s); - bool MatchAll(const zeek::BroString* s); + bool MatchAll(const zeek::String* s); // Compiles a set of regular expressions simultaniously. // 'idx' contains indizes associated with the expressions. @@ -95,10 +96,10 @@ public: // if the pattern matches empty strings, matching continues // in an attempt to match at least one character. int Match(const char* s); - int Match(const zeek::BroString* s); + int Match(const zeek::String* s); int LongestMatch(const char* s); - int LongestMatch(const zeek::BroString* s); + int LongestMatch(const zeek::String* s); int LongestMatch(const u_char* bv, int n); EquivClass* EC() { return &equiv_class; } @@ -192,7 +193,7 @@ public: // Returns true if s exactly matches the pattern, false otherwise. bool MatchExactly(const char* s) { return re_exact->MatchAll(s); } - bool MatchExactly(const zeek::BroString* s) + bool MatchExactly(const zeek::String* s) { return re_exact->MatchAll(s); } // Returns the position in s just beyond where the first match @@ -201,14 +202,14 @@ public: // in an attempt to match at least one character. int MatchAnywhere(const char* s) { return re_anywhere->Match(s); } - int MatchAnywhere(const zeek::BroString* s) + int MatchAnywhere(const zeek::String* s) { return re_anywhere->Match(s); } // Note: it matches the *longest* prefix and returns the // length of matched prefix. It returns -1 on mismatch. int MatchPrefix(const char* s) { return re_exact->LongestMatch(s); } - int MatchPrefix(const zeek::BroString* s) + int MatchPrefix(const zeek::String* s) { return re_exact->LongestMatch(s); } int MatchPrefix(const u_char* s, int n) { return re_exact->LongestMatch(s, n); } diff --git a/src/RuleMatcher.cc b/src/RuleMatcher.cc index c6f4ce9f79..a19c4c25e9 100644 --- a/src/RuleMatcher.cc +++ b/src/RuleMatcher.cc @@ -958,7 +958,7 @@ void RuleMatcher::Match(RuleEndpointState* state, Rule::PatternType type, if ( ! state->matched_by_patterns.is_member(r) ) { state->matched_by_patterns.push_back(r); - zeek::BroString* s = new zeek::BroString(data, data_len, false); + zeek::String* s = new zeek::String(data, data_len, false); state->matched_text.push_back(s); } @@ -998,7 +998,7 @@ void RuleMatcher::ExecPureRules(RuleEndpointState* state, bool eos) } } -bool RuleMatcher::ExecRulePurely(Rule* r, zeek::BroString* s, +bool RuleMatcher::ExecRulePurely(Rule* r, zeek::String* s, RuleEndpointState* state, bool eos) { if ( is_member_of(state->matched_rules, r->Index()) ) @@ -1377,7 +1377,7 @@ void id_to_maskedvallist(const char* id, maskedvalue_list* append_to, char* id_to_str(const char* id) { - const zeek::BroString* src; + const zeek::String* src; char* dst; zeek::Val* v = get_bro_val(id); diff --git a/src/RuleMatcher.h b/src/RuleMatcher.h index 20be272999..bdbea606ce 100644 --- a/src/RuleMatcher.h +++ b/src/RuleMatcher.h @@ -59,7 +59,7 @@ struct MaskedValue { using maskedvalue_list = zeek::PList; using string_list = zeek::PList; -using bstr_list = zeek::PList; +using bstr_list = zeek::PList; // Get values from Bro's script-level variables. extern void id_to_maskedvallist(const char* id, maskedvalue_list* append_to, @@ -338,7 +338,7 @@ private: // Eval a rule under the assumption that all its patterns // have already matched. s holds the text the rule matched, // or nil if N/A. - bool ExecRulePurely(Rule* r, zeek::BroString* s, + bool ExecRulePurely(Rule* r, zeek::String* s, RuleEndpointState* state, bool eos); // Execute the actions associated with a rule. diff --git a/src/SmithWaterman.cc b/src/SmithWaterman.cc index 9de26c623d..4d24a0d70c 100644 --- a/src/SmithWaterman.cc +++ b/src/SmithWaterman.cc @@ -12,7 +12,7 @@ #include "Val.h" BroSubstring::BroSubstring(const BroSubstring& bst) -: zeek::BroString((const zeek::BroString&) bst), _num(), _new(bst._new) +: zeek::String((const zeek::String&) bst), _num(), _new(bst._new) { for ( BSSAlignVecCIt it = bst._aligns.begin(); it != bst._aligns.end(); ++it ) _aligns.push_back(*it); @@ -20,7 +20,7 @@ BroSubstring::BroSubstring(const BroSubstring& bst) const BroSubstring& BroSubstring::operator=(const BroSubstring& bst) { - zeek::BroString::operator=(bst); + zeek::String::operator=(bst); _aligns.clear(); @@ -32,7 +32,7 @@ const BroSubstring& BroSubstring::operator=(const BroSubstring& bst) return *this; } -void BroSubstring::AddAlignment(const zeek::BroString* str, int index) +void BroSubstring::AddAlignment(const zeek::String* str, int index) { _aligns.push_back(BSSAlign(str, index)); } @@ -72,7 +72,7 @@ zeek::VectorVal* BroSubstring::VecToPolicy(Vec* vec) BroSubstring* bst = (*vec)[i]; auto st_val = zeek::make_intrusive(sw_substring_type); - st_val->Assign(0, zeek::make_intrusive(new zeek::BroString(*bst))); + st_val->Assign(0, zeek::make_intrusive(new zeek::String(*bst))); auto aligns = zeek::make_intrusive(sw_align_vec_type); @@ -81,7 +81,7 @@ zeek::VectorVal* BroSubstring::VecToPolicy(Vec* vec) const BSSAlign& align = (bst->GetAlignments())[j]; auto align_val = zeek::make_intrusive(sw_align_type); - align_val->Assign(0, zeek::make_intrusive(new zeek::BroString(*align.string))); + align_val->Assign(0, zeek::make_intrusive(new zeek::String(*align.string))); align_val->Assign(1, zeek::val_mgr->Count(align.index)); aligns->Assign(j + 1, std::move(align_val)); @@ -107,14 +107,14 @@ BroSubstring::Vec* BroSubstring::VecFromPolicy(zeek::VectorVal* vec) if ( ! v ) continue; - const zeek::BroString* str = v->AsRecordVal()->GetField(0)->AsString(); + const zeek::String* str = v->AsRecordVal()->GetField(0)->AsString(); BroSubstring* substr = new BroSubstring(*str); const zeek::VectorVal* aligns = v->AsRecordVal()->GetField(1)->AsVectorVal(); for ( unsigned int j = 1; j <= aligns->Size(); ++j ) { const zeek::RecordVal* align = aligns->AsVectorVal()->At(j)->AsRecordVal(); - const zeek::BroString* str = align->GetField(0)->AsString(); + const zeek::String* str = align->GetField(0)->AsString(); int index = align->GetField(1)->AsCount(); substr->AddAlignment(str, index); } @@ -142,9 +142,9 @@ char* BroSubstring::VecToString(Vec* vec) return strdup(result.c_str()); } -zeek::BroString::IdxVec* BroSubstring::GetOffsetsVec(const Vec* vec, unsigned int index) +zeek::String::IdxVec* BroSubstring::GetOffsetsVec(const Vec* vec, unsigned int index) { - zeek::BroString::IdxVec* result = new zeek::BroString::IdxVec(); + zeek::String::IdxVec* result = new zeek::String::IdxVec(); for ( VecCIt it = vec->begin(); it != vec->end(); ++it ) { @@ -209,7 +209,7 @@ struct SWNode { // class SWNodeMatrix { public: - SWNodeMatrix(const zeek::BroString* s1, const zeek::BroString* s2) + SWNodeMatrix(const zeek::String* s1, const zeek::String* s2) : _s1(s1), _s2(s2), _rows(s1->Len() + 1), _cols(s2->Len() + 1) { _nodes = new SWNode[_cols * _rows]; @@ -229,8 +229,8 @@ public: return &(_nodes[row * _cols + col]); } - const zeek::BroString* GetRowsString() const { return _s1; } - const zeek::BroString* GetColsString() const { return _s2; } + const zeek::String* GetRowsString() const { return _s1; } + const zeek::String* GetColsString() const { return _s2; } int GetHeight() const { return _rows; } int GetWidth() const { return _cols; } @@ -247,8 +247,8 @@ public: } private: - const zeek::BroString* _s1; - const zeek::BroString* _s2; + const zeek::String* _s1; + const zeek::String* _s2; int _rows, _cols; SWNode* _nodes; @@ -398,7 +398,7 @@ end_loop: // The main Smith-Waterman algorithm. // -BroSubstring::Vec* smith_waterman(const zeek::BroString* s1, const zeek::BroString* s2, +BroSubstring::Vec* smith_waterman(const zeek::String* s1, const zeek::String* s2, SWParams& params) { BroSubstring::Vec* result = new BroSubstring::Vec(); diff --git a/src/SmithWaterman.h b/src/SmithWaterman.h index 92683bc766..3acfdd2414 100644 --- a/src/SmithWaterman.h +++ b/src/SmithWaterman.h @@ -11,7 +11,7 @@ // for each of which we store where the substring starts. // // -class BroSubstring : public zeek::BroString { +class BroSubstring : public zeek::String { public: typedef std::vector Vec; @@ -22,12 +22,12 @@ public: // struct BSSAlign { - BSSAlign(const zeek::BroString* string, int index) + BSSAlign(const zeek::String* string, int index) { this->string = string; this->index = index; } // The other string // - const zeek::BroString* string; + const zeek::String* string; // Offset in the string that substring // starts at, counting from 0. @@ -40,10 +40,10 @@ public: typedef BSSAlignVec::const_iterator BSSAlignVecCIt; explicit BroSubstring(const std::string& string) - : zeek::BroString(string), _num(), _new(false) { } + : zeek::String(string), _num(), _new(false) { } - explicit BroSubstring(const zeek::BroString& string) - : zeek::BroString(string), _num(), _new(false) { } + explicit BroSubstring(const zeek::String& string) + : zeek::String(string), _num(), _new(false) { } BroSubstring(const BroSubstring& bst); @@ -56,7 +56,7 @@ public: // bool DoesCover(const BroSubstring* bst) const; - void AddAlignment(const zeek::BroString* string, int index); + void AddAlignment(const zeek::String* string, int index); const BSSAlignVec& GetAlignments() const { return _aligns; } unsigned int GetNumAlignments() const { return _aligns.size(); } @@ -71,7 +71,7 @@ public: static zeek::VectorVal* VecToPolicy(Vec* vec); static Vec* VecFromPolicy(zeek::VectorVal* vec); static char* VecToString(Vec* vec); - static zeek::BroString::IdxVec* GetOffsetsVec(const Vec* vec, + static zeek::String::IdxVec* GetOffsetsVec(const Vec* vec, unsigned int index); private: @@ -148,6 +148,6 @@ struct SWParams { // input strings where the string occurs. On error, or if no common // subsequence exists, an empty vector is returned. // -extern BroSubstring::Vec* smith_waterman(const zeek::BroString* s1, - const zeek::BroString* s2, +extern BroSubstring::Vec* smith_waterman(const zeek::String* s1, + const zeek::String* s2, SWParams& params); diff --git a/src/Val.cc b/src/Val.cc index 41354830ed..3d2c0d71e4 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -970,17 +970,17 @@ ValPtr SubNetVal::DoClone(CloneState* state) return {NewRef{}, this}; } -StringVal::StringVal(BroString* s) : Val(s, TYPE_STRING) +StringVal::StringVal(String* s) : Val(s, TYPE_STRING) { } // The following adds a NUL at the end. StringVal::StringVal(int length, const char* s) - : StringVal(new BroString(reinterpret_cast(s), length, true)) + : StringVal(new String(reinterpret_cast(s), length, true)) { } -StringVal::StringVal(const char* s) : StringVal(new BroString(s)) +StringVal::StringVal(const char* s) : StringVal(new String(s)) { } @@ -1036,7 +1036,7 @@ unsigned int StringVal::MemoryAllocation() const } StringValPtr StringVal::Replace( - RE_Matcher* re, const BroString& repl, bool do_all) + RE_Matcher* re, const String& repl, bool do_all) { const u_char* s = Bytes(); int offset = 0; @@ -1117,7 +1117,7 @@ StringValPtr StringVal::Replace( // the NUL. r[0] = '\0'; - return make_intrusive(new BroString(true, result, r - result)); + return make_intrusive(new String(true, result, r - result)); } ValPtr StringVal::DoClone(CloneState* state) @@ -1126,8 +1126,8 @@ ValPtr StringVal::DoClone(CloneState* state) // instead of creating a new copy, but we first need to be careful and // audit whether anything internal actually does mutate it. return state->NewClone(this, make_intrusive( - new BroString((u_char*) val.string_val->Bytes(), - val.string_val->Len(), true))); + new String((u_char*) val.string_val->Bytes(), + val.string_val->Len(), true))); } PatternVal::PatternVal(RE_Matcher* re) diff --git a/src/Val.h b/src/Val.h index d02998f815..502c23f68c 100644 --- a/src/Val.h +++ b/src/Val.h @@ -27,11 +27,12 @@ namespace zeek { template class PDict; +class String; }; template using PDict [[deprecated("Remove in v4.1. Use zeek::PDict instead.")]] = zeek::PDict; +using BroString [[deprecated("Remove in v4.1. Use zeek::String instead.")]] = zeek::String; ZEEK_FORWARD_DECLARE_NAMESPACED(IterCookie, zeek); -ZEEK_FORWARD_DECLARE_NAMESPACED(BroString, zeek); ZEEK_FORWARD_DECLARE_NAMESPACED(Frame, zeek::detail); ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek); @@ -96,7 +97,7 @@ union BroValUnion { // Used for double, time, interval. double double_val; - BroString* string_val; + String* string_val; zeek::Func* func_val; BroFile* file_val; RE_Matcher* re_val; @@ -121,7 +122,7 @@ union BroValUnion { constexpr BroValUnion(double value) noexcept : double_val(value) {} - constexpr BroValUnion(BroString* value) noexcept + constexpr BroValUnion(String* value) noexcept : string_val(value) {} constexpr BroValUnion(zeek::Func* value) noexcept @@ -236,7 +237,7 @@ public: CONST_ACCESSOR2(zeek::TYPE_TIME, double, double_val, AsTime) CONST_ACCESSOR2(zeek::TYPE_INTERVAL, double, double_val, AsInterval) CONST_ACCESSOR2(zeek::TYPE_ENUM, int, int_val, AsEnum) - CONST_ACCESSOR(zeek::TYPE_STRING, BroString*, string_val, AsString) + CONST_ACCESSOR(zeek::TYPE_STRING, String*, string_val, AsString) CONST_ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc) CONST_ACCESSOR(zeek::TYPE_TABLE, zeek::PDict*, table_val, AsTable) CONST_ACCESSOR(zeek::TYPE_RECORD, std::vector*, record_val, AsRecord) @@ -272,7 +273,7 @@ public: // Accessors for mutable values are called AsNonConst* and // are protected to avoid external state changes. - // ACCESSOR(zeek::TYPE_STRING, BroString*, string_val, AsString) + // ACCESSOR(zeek::TYPE_STRING, String*, string_val, AsString) ACCESSOR(zeek::TYPE_FUNC, zeek::Func*, func_val, AsFunc) ACCESSOR(zeek::TYPE_FILE, BroFile*, file_val, AsFile) ACCESSOR(zeek::TYPE_PATTERN, RE_Matcher*, re_val, AsPattern) @@ -615,7 +616,7 @@ protected: class StringVal final : public Val { public: - explicit StringVal(BroString* s); + explicit StringVal(String* s); explicit StringVal(const char* s); explicit StringVal(const std::string& s); StringVal(int length, const char* s); @@ -628,7 +629,7 @@ public: // Note that one needs to de-allocate the return value of // ExpandedString() to avoid a memory leak. - // char* ExpandedString(int format = BroString::EXPANDED_STRING) + // char* ExpandedString(int format = String::EXPANDED_STRING) // { return AsString()->ExpandedString(format); } std::string ToStdString() const; @@ -636,7 +637,7 @@ public: unsigned int MemoryAllocation() const override; - StringValPtr Replace(RE_Matcher* re, const BroString& repl, + StringValPtr Replace(RE_Matcher* re, const String& repl, bool do_all); [[deprecated("Remove in v4.1. Use Replace().")]] diff --git a/src/analyzer/Analyzer.cc b/src/analyzer/Analyzer.cc index 58df444002..3b085dff1f 100644 --- a/src/analyzer/Analyzer.cc +++ b/src/analyzer/Analyzer.cc @@ -941,7 +941,7 @@ void TransportLayerAnalyzer::PacketContents(const u_char* data, int len) { if ( packet_contents && len > 0 ) { - zeek::BroString* cbs = new zeek::BroString(data, len, true); + zeek::String* cbs = new zeek::String(data, len, true); auto contents = zeek::make_intrusive(cbs); EnqueueConnEvent(packet_contents, ConnVal(), std::move(contents)); } diff --git a/src/analyzer/protocol/dns/DNS.cc b/src/analyzer/protocol/dns/DNS.cc index f32c337d8a..743b683111 100644 --- a/src/analyzer/protocol/dns/DNS.cc +++ b/src/analyzer/protocol/dns/DNS.cc @@ -196,14 +196,14 @@ bool DNS_Interpreter::ParseQuestion(DNS_MsgInfo* msg, if ( dns_event && ! msg->skip_event ) { - zeek::BroString* original_name = new zeek::BroString(name, name_end - name, true); + zeek::String* original_name = new zeek::String(name, name_end - name, true); // Downcase the Name to normalize it for ( u_char* np = name; np < name_end; ++np ) if ( isupper(*np) ) *np = tolower(*np); - zeek::BroString* question_name = new zeek::BroString(name, name_end - name, true); + zeek::String* question_name = new zeek::String(name, name_end - name, true); SendReplyOrRejectEvent(msg, dns_event, data, len, question_name, original_name); } @@ -238,7 +238,7 @@ bool DNS_Interpreter::ParseAnswer(DNS_MsgInfo* msg, // Note that the exact meaning of some of these fields will be // re-interpreted by other, more adventurous RR types. - msg->query_name = zeek::make_intrusive(new zeek::BroString(name, name_end - name, true)); + msg->query_name = zeek::make_intrusive(new zeek::String(name, name_end - name, true)); msg->atype = RR_Type(ExtractShort(data, len)); msg->aclass = ExtractShort(data, len); msg->ttl = ExtractLong(data, len); @@ -562,7 +562,7 @@ bool DNS_Interpreter::ParseRR_Name(DNS_MsgInfo* msg, analyzer->ConnVal(), msg->BuildHdrVal(), msg->BuildAnswerVal(), - zeek::make_intrusive(new zeek::BroString(name, name_end - name, true)) + zeek::make_intrusive(new zeek::String(name, name_end - name, true)) ); return true; @@ -604,8 +604,8 @@ bool DNS_Interpreter::ParseRR_SOA(DNS_MsgInfo* msg, { static auto dns_soa = zeek::id::find_type("dns_soa"); auto r = zeek::make_intrusive(dns_soa); - r->Assign(0, zeek::make_intrusive(new zeek::BroString(mname, mname_end - mname, true))); - r->Assign(1, zeek::make_intrusive(new zeek::BroString(rname, rname_end - rname, true))); + r->Assign(0, zeek::make_intrusive(new zeek::String(mname, mname_end - mname, true))); + r->Assign(1, zeek::make_intrusive(new zeek::String(rname, rname_end - rname, true))); r->Assign(2, zeek::val_mgr->Count(serial)); r->Assign(3, zeek::make_intrusive(double(refresh), Seconds)); r->Assign(4, zeek::make_intrusive(double(retry), Seconds)); @@ -646,7 +646,7 @@ bool DNS_Interpreter::ParseRR_MX(DNS_MsgInfo* msg, analyzer->ConnVal(), msg->BuildHdrVal(), msg->BuildAnswerVal(), - zeek::make_intrusive(new zeek::BroString(name, name_end - name, true)), + zeek::make_intrusive(new zeek::String(name, name_end - name, true)), zeek::val_mgr->Count(preference) ); @@ -687,7 +687,7 @@ bool DNS_Interpreter::ParseRR_SRV(DNS_MsgInfo* msg, analyzer->ConnVal(), msg->BuildHdrVal(), msg->BuildAnswerVal(), - zeek::make_intrusive(new zeek::BroString(name, name_end - name, true)), + zeek::make_intrusive(new zeek::String(name, name_end - name, true)), zeek::val_mgr->Count(priority), zeek::val_mgr->Count(weight), zeek::val_mgr->Count(port) @@ -723,23 +723,23 @@ bool DNS_Interpreter::ParseRR_EDNS(DNS_MsgInfo* msg, } void DNS_Interpreter::ExtractOctets(const u_char*& data, int& len, - zeek::BroString** p) + zeek::String** p) { uint16_t dlen = ExtractShort(data, len); dlen = min(len, static_cast(dlen)); if ( p ) - *p = new zeek::BroString(data, dlen, false); + *p = new zeek::String(data, dlen, false); data += dlen; len -= dlen; } -zeek::BroString* DNS_Interpreter::ExtractStream(const u_char*& data, int& len, int l) +zeek::String* DNS_Interpreter::ExtractStream(const u_char*& data, int& len, int l) { l = max(l, 0); int dlen = min(len, l); // Len in bytes of the algorithm use - auto rval = new zeek::BroString(data, dlen, false); + auto rval = new zeek::String(data, dlen, false); data += dlen; len -= dlen; @@ -763,7 +763,7 @@ bool DNS_Interpreter::ParseRR_TSIG(DNS_MsgInfo* msg, uint32_t sign_time_sec = ExtractLong(data, len); unsigned int sign_time_msec = ExtractShort(data, len); unsigned int fudge = ExtractShort(data, len); - zeek::BroString* request_MAC; + zeek::String* request_MAC; ExtractOctets(data, len, dns_TSIG_addl ? &request_MAC : nullptr); unsigned int orig_id = ExtractShort(data, len); unsigned int rr_error = ExtractShort(data, len); @@ -773,7 +773,7 @@ bool DNS_Interpreter::ParseRR_TSIG(DNS_MsgInfo* msg, { TSIG_DATA tsig; tsig.alg_name = - new zeek::BroString(alg_name, alg_name_end - alg_name, true); + new zeek::String(alg_name, alg_name_end - alg_name, true); tsig.sig = request_MAC; tsig.time_s = sign_time_sec; tsig.time_ms = sign_time_msec; @@ -827,7 +827,7 @@ bool DNS_Interpreter::ParseRR_RRSIG(DNS_MsgInfo* msg, int sig_len = rdlength - ((data - data_start) + 18); DNSSEC_Algo dsa = DNSSEC_Algo(algo); - zeek::BroString* sign = ExtractStream(data, len, sig_len); + zeek::String* sign = ExtractStream(data, len, sig_len); switch ( dsa ) { case RSA_MD5: @@ -879,7 +879,7 @@ bool DNS_Interpreter::ParseRR_RRSIG(DNS_MsgInfo* msg, rrsig.sig_exp = sign_exp; rrsig.sig_incep = sign_incp; rrsig.key_tag = key_tag; - rrsig.signer_name = new zeek::BroString(name, name_end - name, true); + rrsig.signer_name = new zeek::String(name, name_end - name, true); rrsig.signature = sign; analyzer->EnqueueConnEvent(dns_RRSIG, @@ -914,7 +914,7 @@ bool DNS_Interpreter::ParseRR_DNSKEY(DNS_MsgInfo* msg, unsigned int dalgorithm = proto_algo & 0xff; DNSSEC_Algo dsa = DNSSEC_Algo(dalgorithm); //Evaluating the size of remaining bytes for Public Key - zeek::BroString* key = ExtractStream(data, len, rdlength - 4); + zeek::String* key = ExtractStream(data, len, rdlength - 4); // flags bit 7: zone key // flags bit 8: revoked @@ -1023,7 +1023,7 @@ bool DNS_Interpreter::ParseRR_NSEC(DNS_MsgInfo* msg, break; } - zeek::BroString* bitmap = ExtractStream(data, len, bmlen); + zeek::String* bitmap = ExtractStream(data, len, bmlen); char_strings->Assign(char_strings->Size(), zeek::make_intrusive(bitmap)); typebitmaps_len = typebitmaps_len - (2 + bmlen); } @@ -1033,7 +1033,7 @@ bool DNS_Interpreter::ParseRR_NSEC(DNS_MsgInfo* msg, analyzer->ConnVal(), msg->BuildHdrVal(), msg->BuildAnswerVal(), - zeek::make_intrusive(new zeek::BroString(name, name_end - name, true)), + zeek::make_intrusive(new zeek::String(name, name_end - name, true)), std::move(char_strings) ); @@ -1098,7 +1098,7 @@ bool DNS_Interpreter::ParseRR_NSEC3(DNS_MsgInfo* msg, break; } - zeek::BroString* bitmap = ExtractStream(data, len, bmlen); + zeek::String* bitmap = ExtractStream(data, len, bmlen); char_strings->Assign(char_strings->Size(), zeek::make_intrusive(bitmap)); typebitmaps_len = typebitmaps_len - (2 + bmlen); } @@ -1146,7 +1146,7 @@ bool DNS_Interpreter::ParseRR_DS(DNS_MsgInfo* msg, unsigned int ds_algo = (ds_algo_dtype >> 8) & 0xff; unsigned int ds_dtype = ds_algo_dtype & 0xff; DNSSEC_Digest ds_digest_type = DNSSEC_Digest(ds_dtype); - zeek::BroString* ds_digest = ExtractStream(data, len, rdlength - 4); + zeek::String* ds_digest = ExtractStream(data, len, rdlength - 4); switch ( ds_digest_type ) { case SHA1: @@ -1364,11 +1364,11 @@ bool DNS_Interpreter::ParseRR_CAA(DNS_MsgInfo* msg, analyzer->Weird("DNS_CAA_char_str_past_rdlen"); return false; } - zeek::BroString* tag = new zeek::BroString(data, tagLen, true); + zeek::String* tag = new zeek::String(data, tagLen, true); len -= tagLen; data += tagLen; rdlength -= tagLen; - zeek::BroString* value = new zeek::BroString(data, rdlength, false); + zeek::String* value = new zeek::String(data, rdlength, false); len -= value->Len(); data += value->Len(); @@ -1396,8 +1396,8 @@ bool DNS_Interpreter::ParseRR_CAA(DNS_MsgInfo* msg, void DNS_Interpreter::SendReplyOrRejectEvent(DNS_MsgInfo* msg, EventHandlerPtr event, const u_char*& data, int& len, - zeek::BroString* question_name, - zeek::BroString* original_name) + zeek::String* question_name, + zeek::String* original_name) { RR_Type qtype = RR_Type(ExtractShort(data, len)); int qclass = ExtractShort(data, len); diff --git a/src/analyzer/protocol/dns/DNS.h b/src/analyzer/protocol/dns/DNS.h index 2072b09cdf..73a882a985 100644 --- a/src/analyzer/protocol/dns/DNS.h +++ b/src/analyzer/protocol/dns/DNS.h @@ -129,10 +129,10 @@ struct EDNS_ADDITIONAL { // size }; struct TSIG_DATA { - zeek::BroString* alg_name; + zeek::String* alg_name; unsigned long time_s; unsigned short time_ms; - zeek::BroString* sig; + zeek::String* sig; unsigned short fudge; unsigned short orig_id; unsigned short rr_error; @@ -146,15 +146,15 @@ struct RRSIG_DATA { unsigned long sig_exp; // 32 unsigned long sig_incep; // 32 unsigned short key_tag; //16 - zeek::BroString* signer_name; - zeek::BroString* signature; + zeek::String* signer_name; + zeek::String* signature; }; struct DNSKEY_DATA { unsigned short dflags; // 16 : ExtractShort(data, len) unsigned short dalgorithm; // 8 unsigned short dprotocol; // 8 - zeek::BroString* public_key; // Variable lenght Public Key + zeek::String* public_key; // Variable lenght Public Key }; struct NSEC3_DATA { @@ -162,9 +162,9 @@ struct NSEC3_DATA { unsigned short nsec_hash_algo; unsigned short nsec_iter; unsigned short nsec_salt_len; - zeek::BroString* nsec_salt; + zeek::String* nsec_salt; unsigned short nsec_hlen; - zeek::BroString* nsec_hash; + zeek::String* nsec_hash; zeek::VectorValPtr bitmaps; }; @@ -172,7 +172,7 @@ struct DS_DATA { unsigned short key_tag; // 16 : ExtractShort(data, len) unsigned short algorithm; // 8 unsigned short digest_type; // 8 - zeek::BroString* digest_val; // Variable lenght Digest of DNSKEY RR + zeek::String* digest_val; // Variable lenght Digest of DNSKEY RR }; class DNS_MsgInfo { @@ -249,9 +249,9 @@ protected: uint16_t ExtractShort(const u_char*& data, int& len); uint32_t ExtractLong(const u_char*& data, int& len); - void ExtractOctets(const u_char*& data, int& len, zeek::BroString** p); + void ExtractOctets(const u_char*& data, int& len, zeek::String** p); - zeek::BroString* ExtractStream(const u_char*& data, int& len, int sig_len); + zeek::String* ExtractStream(const u_char*& data, int& len, int sig_len); bool ParseRR_Name(DNS_MsgInfo* msg, const u_char*& data, int& len, int rdlength, @@ -308,8 +308,8 @@ protected: const u_char* msg_start); void SendReplyOrRejectEvent(DNS_MsgInfo* msg, EventHandlerPtr event, const u_char*& data, int& len, - zeek::BroString* question_name, - zeek::BroString* original_name); + zeek::String* question_name, + zeek::String* original_name); analyzer::Analyzer* analyzer; bool first_message; diff --git a/src/analyzer/protocol/ftp/FTP.cc b/src/analyzer/protocol/ftp/FTP.cc index a3965d6989..461169d1b3 100644 --- a/src/analyzer/protocol/ftp/FTP.cc +++ b/src/analyzer/protocol/ftp/FTP.cc @@ -204,7 +204,7 @@ void FTP_ADAT_Analyzer::DeliverStream(int len, const u_char* data, bool orig) const char* line = (const char*) data; const char* end_of_line = line + len; - zeek::BroString* decoded_adat = nullptr; + zeek::String* decoded_adat = nullptr; if ( orig ) { diff --git a/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac b/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac index 7c7df84413..849e864cfa 100644 --- a/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac +++ b/src/analyzer/protocol/gtpv1/gtpv1-analyzer.pac @@ -106,7 +106,7 @@ zeek::ValPtr BuildEndUserAddr(const InformationElement* ie) break; default: ev->Assign(3, zeek::make_intrusive( - new zeek::BroString((const u_char*) d, len, false))); + new zeek::String((const u_char*) d, len, false))); break; } } @@ -116,7 +116,7 @@ zeek::ValPtr BuildEndUserAddr(const InformationElement* ie) zeek::ValPtr BuildAccessPointName(const InformationElement* ie) { - zeek::BroString* bs = new zeek::BroString((const u_char*) ie->ap_name()->value().data(), + zeek::String* bs = new zeek::String((const u_char*) ie->ap_name()->value().data(), ie->ap_name()->value().length(), false); return zeek::make_intrusive(bs); } @@ -125,7 +125,7 @@ zeek::ValPtr BuildProtoConfigOptions(const InformationElement* ie) { const u_char* d = (const u_char*) ie->proto_config_opts()->value().data(); int len = ie->proto_config_opts()->value().length(); - return zeek::make_intrusive(new zeek::BroString(d, len, false)); + return zeek::make_intrusive(new zeek::String(d, len, false)); } zeek::ValPtr BuildGSN_Addr(const InformationElement* ie) @@ -142,7 +142,7 @@ zeek::ValPtr BuildGSN_Addr(const InformationElement* ie) ev->Assign(0, zeek::make_intrusive( IPAddr(IPv6, (const uint32*) d, IPAddr::Network))); else - ev->Assign(1, zeek::make_intrusive(new zeek::BroString((const u_char*) d, len, false))); + ev->Assign(1, zeek::make_intrusive(new zeek::String((const u_char*) d, len, false))); return ev; } @@ -151,7 +151,7 @@ zeek::ValPtr BuildMSISDN(const InformationElement* ie) { const u_char* d = (const u_char*) ie->msisdn()->value().data(); int len = ie->msisdn()->value().length(); - return zeek::make_intrusive(new zeek::BroString(d, len, false)); + return zeek::make_intrusive(new zeek::String(d, len, false)); } zeek::ValPtr BuildQoS_Profile(const InformationElement* ie) @@ -162,7 +162,7 @@ zeek::ValPtr BuildQoS_Profile(const InformationElement* ie) int len = ie->qos_profile()->data().length(); ev->Assign(0, zeek::val_mgr->Count(ie->qos_profile()->alloc_retention_priority())); - ev->Assign(1, zeek::make_intrusive(new zeek::BroString(d, len, false))); + ev->Assign(1, zeek::make_intrusive(new zeek::String(d, len, false))); return ev; } @@ -171,21 +171,21 @@ zeek::ValPtr BuildTrafficFlowTemplate(const InformationElement* ie) { const uint8* d = ie->traffic_flow_template()->value().data(); int len = ie->traffic_flow_template()->value().length(); - return zeek::make_intrusive(new zeek::BroString((const u_char*) d, len, false)); + return zeek::make_intrusive(new zeek::String((const u_char*) d, len, false)); } zeek::ValPtr BuildTriggerID(const InformationElement* ie) { const uint8* d = ie->trigger_id()->value().data(); int len = ie->trigger_id()->value().length(); - return zeek::make_intrusive(new zeek::BroString((const u_char*) d, len, false)); + return zeek::make_intrusive(new zeek::String((const u_char*) d, len, false)); } zeek::ValPtr BuildOMC_ID(const InformationElement* ie) { const uint8* d = ie->omc_id()->value().data(); int len = ie->omc_id()->value().length(); - return zeek::make_intrusive(new zeek::BroString((const u_char*) d, len, false)); + return zeek::make_intrusive(new zeek::String((const u_char*) d, len, false)); } zeek::ValPtr BuildPrivateExt(const InformationElement* ie) @@ -196,7 +196,7 @@ zeek::ValPtr BuildPrivateExt(const InformationElement* ie) int len = ie->private_ext()->value().length(); ev->Assign(0, zeek::val_mgr->Count(ie->private_ext()->id())); - ev->Assign(1, zeek::make_intrusive(new zeek::BroString((const u_char*) d, len, false))); + ev->Assign(1, zeek::make_intrusive(new zeek::String((const u_char*) d, len, false))); return ev; } diff --git a/src/analyzer/protocol/http/HTTP.cc b/src/analyzer/protocol/http/HTTP.cc index 49bd1a2b7c..13af97f264 100644 --- a/src/analyzer/protocol/http/HTTP.cc +++ b/src/analyzer/protocol/http/HTTP.cc @@ -762,7 +762,7 @@ void HTTP_Message::SubmitData(int len, const char* buf) { if ( http_entity_data ) MyHTTP_Analyzer()->HTTP_EntityData(is_orig, - new zeek::BroString(reinterpret_cast(buf), len, false)); + new zeek::String(reinterpret_cast(buf), len, false)); } bool HTTP_Message::RequestBuffer(int* plen, char** pbuf) @@ -1368,14 +1368,14 @@ void HTTP_Analyzer::HTTP_Event(const char* category, zeek::StringValPtr detail) zeek::StringValPtr HTTP_Analyzer::TruncateURI(const zeek::StringValPtr& uri) { - const zeek::BroString* str = uri->AsString(); + const zeek::String* str = uri->AsString(); if ( truncate_http_URI >= 0 && str->Len() > truncate_http_URI ) { u_char* s = new u_char[truncate_http_URI + 4]; memcpy(s, str->Bytes(), truncate_http_URI); memcpy(s + truncate_http_URI, "...", 4); - return zeek::make_intrusive(new zeek::BroString(true, s, truncate_http_URI+3)); + return zeek::make_intrusive(new zeek::String(true, s, truncate_http_URI+3)); } else return uri; @@ -1495,7 +1495,7 @@ void HTTP_Analyzer::RequestClash(zeek::Val* /* clash_val */) RequestMade(true, "request clash"); } -const zeek::BroString* HTTP_Analyzer::UnansweredRequestMethod() +const zeek::String* HTTP_Analyzer::UnansweredRequestMethod() { return unanswered_requests.empty() ? nullptr : unanswered_requests.front()->AsString(); } @@ -1579,7 +1579,7 @@ int HTTP_Analyzer::ExpectReplyMessageBody() // MUST NOT include a message-body. All other responses do include a // message-body, although it MAY be of zero length. - const zeek::BroString* method = UnansweredRequestMethod(); + const zeek::String* method = UnansweredRequestMethod(); if ( method && strncasecmp((const char*) (method->Bytes()), "HEAD", method->Len()) == 0 ) return HTTP_BODY_NOT_EXPECTED; @@ -1648,7 +1648,7 @@ void HTTP_Analyzer::HTTP_Header(bool is_orig, mime::MIME_Header* h) } } -void HTTP_Analyzer::HTTP_EntityData(bool is_orig, zeek::BroString* entity_data) +void HTTP_Analyzer::HTTP_EntityData(bool is_orig, zeek::String* entity_data) { if ( http_entity_data ) EnqueueConnEvent(http_entity_data, @@ -1711,7 +1711,7 @@ void analyzer::http::escape_URI_char(unsigned char ch, unsigned char*& p) *p++ = encode_hex(ch & 0xf); } -zeek::BroString* analyzer::http::unescape_URI(const u_char* line, const u_char* line_end, +zeek::String* analyzer::http::unescape_URI(const u_char* line, const u_char* line_end, analyzer::Analyzer* analyzer) { zeek::byte_vec decoded_URI = new u_char[line_end - line + 1]; @@ -1807,5 +1807,5 @@ zeek::BroString* analyzer::http::unescape_URI(const u_char* line, const u_char* URI_p[0] = 0; - return new zeek::BroString(true, decoded_URI, URI_p - decoded_URI); + return new zeek::String(true, decoded_URI, URI_p - decoded_URI); } diff --git a/src/analyzer/protocol/http/HTTP.h b/src/analyzer/protocol/http/HTTP.h index 75e142d6d1..5d243be1d6 100644 --- a/src/analyzer/protocol/http/HTTP.h +++ b/src/analyzer/protocol/http/HTTP.h @@ -153,7 +153,7 @@ public: HTTP_Analyzer(Connection* conn); void HTTP_Header(bool is_orig, mime::MIME_Header* h); - void HTTP_EntityData(bool is_orig, zeek::BroString* entity_data); + void HTTP_EntityData(bool is_orig, zeek::String* entity_data); void HTTP_MessageDone(bool is_orig, HTTP_Message* message); void HTTP_Event(const char* category, const char* detail); void HTTP_Event(const char* category, zeek::StringValPtr detail); @@ -232,7 +232,7 @@ protected: void ReplyMade(bool interrupted, const char* msg); void RequestClash(zeek::Val* clash_val); - const zeek::BroString* UnansweredRequestMethod(); + const zeek::String* UnansweredRequestMethod(); int HTTP_ReplyCode(const char* code_str); int ExpectReplyMessageBody(); @@ -281,7 +281,7 @@ protected: extern bool is_reserved_URI_char(unsigned char ch); extern bool is_unreserved_URI_char(unsigned char ch); extern void escape_URI_char(unsigned char ch, unsigned char*& p); -extern zeek::BroString* unescape_URI(const u_char* line, const u_char* line_end, +extern zeek::String* unescape_URI(const u_char* line, const u_char* line_end, analyzer::Analyzer* analyzer); } } // namespace analyzer::* diff --git a/src/analyzer/protocol/icmp/ICMP.cc b/src/analyzer/protocol/icmp/ICMP.cc index 0b49336f8e..fa6997d206 100644 --- a/src/analyzer/protocol/icmp/ICMP.cc +++ b/src/analyzer/protocol/icmp/ICMP.cc @@ -209,7 +209,7 @@ void ICMP_Analyzer::ICMP_Sent(const struct icmp* icmpp, int len, int caplen, if ( icmp_sent_payload ) { - zeek::BroString* payload = new zeek::BroString(data, std::min(len, caplen), false); + zeek::String* payload = new zeek::String(data, std::min(len, caplen), false); EnqueueConnEvent(icmp_sent_payload, ConnVal(), @@ -515,7 +515,7 @@ void ICMP_Analyzer::Echo(double t, const struct icmp* icmpp, int len, int iid = ntohs(icmpp->icmp_hun.ih_idseq.icd_id); int iseq = ntohs(icmpp->icmp_hun.ih_idseq.icd_seq); - zeek::BroString* payload = new zeek::BroString(data, caplen, false); + zeek::String* payload = new zeek::String(data, caplen, false); EnqueueConnEvent(f, ConnVal(), @@ -767,7 +767,7 @@ zeek::VectorValPtr ICMP_Analyzer::BuildNDOptionsVal(int caplen, const u_char* da { if ( caplen >= length ) { - zeek::BroString* link_addr = new zeek::BroString(data, length, false); + zeek::String* link_addr = new zeek::String(data, length, false); rv->Assign(2, zeek::make_intrusive(link_addr)); } else @@ -837,7 +837,7 @@ zeek::VectorValPtr ICMP_Analyzer::BuildNDOptionsVal(int caplen, const u_char* da if ( set_payload_field ) { - zeek::BroString* payload = new zeek::BroString(data, std::min((int)length, caplen), false); + zeek::String* payload = new zeek::String(data, std::min((int)length, caplen), false); rv->Assign(6, zeek::make_intrusive(payload)); } diff --git a/src/analyzer/protocol/ident/Ident.cc b/src/analyzer/protocol/ident/Ident.cc index 4099329e08..6492ff9721 100644 --- a/src/analyzer/protocol/ident/Ident.cc +++ b/src/analyzer/protocol/ident/Ident.cc @@ -80,7 +80,7 @@ void Ident_Analyzer::DeliverStream(int length, const u_char* data, bool is_orig) if ( line != end_of_line ) { - zeek::BroString s((const u_char*)orig_line, length, true); + zeek::String s((const u_char*)orig_line, length, true); Weird("ident_request_addendum", s.CheckString()); } @@ -172,8 +172,8 @@ void Ident_Analyzer::DeliverStream(int length, const u_char* data, bool is_orig) while ( --sys_end > sys_type && isspace(*sys_end) ) ; - zeek::BroString* sys_type_s = - new zeek::BroString((const u_char*) sys_type, + zeek::String* sys_type_s = + new zeek::String((const u_char*) sys_type, sys_end - sys_type + 1, true); line = skip_whitespace(colon + 1, end_of_line); @@ -242,7 +242,7 @@ const char* Ident_Analyzer::ParsePort(const char* line, const char* end_of_line, void Ident_Analyzer::BadRequest(int length, const char* line) { - zeek::BroString s((const u_char*)line, length, true); + zeek::String s((const u_char*)line, length, true); Weird("bad_ident_request", s.CheckString()); } @@ -250,7 +250,7 @@ void Ident_Analyzer::BadReply(int length, const char* line) { if ( ! did_bad_reply ) { - zeek::BroString s((const u_char*)line, length, true); + zeek::String s((const u_char*)line, length, true); Weird("bad_ident_reply", s.CheckString()); did_bad_reply = true; } diff --git a/src/analyzer/protocol/krb/KRB.cc b/src/analyzer/protocol/krb/KRB.cc index 23369c4bd0..7d57acb530 100644 --- a/src/analyzer/protocol/krb/KRB.cc +++ b/src/analyzer/protocol/krb/KRB.cc @@ -87,23 +87,23 @@ void KRB_Analyzer::DeliverPacket(int len, const u_char* data, bool orig, } } -zeek::StringValPtr KRB_Analyzer::GetAuthenticationInfo(const zeek::BroString* principal, - const zeek::BroString* ciphertext, +zeek::StringValPtr KRB_Analyzer::GetAuthenticationInfo(const zeek::String* principal, + const zeek::String* ciphertext, const bro_uint_t enctype) { #ifdef USE_KRB5 if ( !krb_available ) return nullptr; - zeek::BroString delim("/"); + zeek::String delim("/"); int pos = principal->FindSubstring(&delim); if ( pos == -1 ) { reporter->Warning("KRB: Couldn't parse principal (%s)", principal->CheckString()); return nullptr; } - std::unique_ptr service = unique_ptr(principal->GetSubstring(0, pos)); - std::unique_ptr hostname = unique_ptr(principal->GetSubstring(pos + 1, -1)); + std::unique_ptr service = unique_ptr(principal->GetSubstring(0, pos)); + std::unique_ptr hostname = unique_ptr(principal->GetSubstring(pos + 1, -1)); if ( !service || !hostname ) { reporter->Warning("KRB: Couldn't parse principal (%s)", principal->CheckString()); diff --git a/src/analyzer/protocol/krb/KRB.h b/src/analyzer/protocol/krb/KRB.h index 6a9adfd6da..ff463b9f15 100644 --- a/src/analyzer/protocol/krb/KRB.h +++ b/src/analyzer/protocol/krb/KRB.h @@ -25,8 +25,8 @@ public: static analyzer::Analyzer* Instantiate(Connection* conn) { return new KRB_Analyzer(conn); } - zeek::StringValPtr GetAuthenticationInfo(const zeek::BroString* principal, - const zeek::BroString* ciphertext, + zeek::StringValPtr GetAuthenticationInfo(const zeek::String* principal, + const zeek::String* ciphertext, const bro_uint_t enctype); protected: diff --git a/src/analyzer/protocol/krb/KRB_TCP.h b/src/analyzer/protocol/krb/KRB_TCP.h index f5b6a52eb9..6c534d192c 100644 --- a/src/analyzer/protocol/krb/KRB_TCP.h +++ b/src/analyzer/protocol/krb/KRB_TCP.h @@ -21,8 +21,8 @@ public: // Overriden from tcp::TCP_ApplicationAnalyzer. void EndpointEOF(bool is_orig) override; - zeek::StringValPtr GetAuthenticationInfo(const zeek::BroString* principal, - const zeek::BroString* ciphertext, + zeek::StringValPtr GetAuthenticationInfo(const zeek::String* principal, + const zeek::String* ciphertext, const bro_uint_t enctype) { return zeek::val_mgr->EmptyString(); } diff --git a/src/analyzer/protocol/login/Login.cc b/src/analyzer/protocol/login/Login.cc index 77ceb0909b..50ca441076 100644 --- a/src/analyzer/protocol/login/Login.cc +++ b/src/analyzer/protocol/login/Login.cc @@ -327,7 +327,7 @@ void Login_Analyzer::SetEnv(bool orig, char* name, char* val) { if ( username ) { - const zeek::BroString* u = username->AsString(); + const zeek::String* u = username->AsString(); const zeek::byte_vec ub = u->Bytes(); const char* us = (const char*) ub; if ( ! streq(val, us) ) @@ -600,7 +600,7 @@ zeek::Val* Login_Analyzer::PopUserTextVal() char* s = PopUserText(); if ( s ) - return new zeek::StringVal(new zeek::BroString(true, zeek::byte_vec(s), strlen(s))); + return new zeek::StringVal(new zeek::String(true, zeek::byte_vec(s), strlen(s))); else return zeek::val_mgr->EmptyString()->Ref(); } diff --git a/src/analyzer/protocol/login/NVT.cc b/src/analyzer/protocol/login/NVT.cc index 0c7854c939..add905ffa6 100644 --- a/src/analyzer/protocol/login/NVT.cc +++ b/src/analyzer/protocol/login/NVT.cc @@ -461,7 +461,7 @@ void NVT_Analyzer::SetTerminal(const u_char* terminal, int len) if ( login_terminal ) EnqueueConnEvent(login_terminal, ConnVal(), - zeek::make_intrusive(new zeek::BroString(terminal, len, false)) + zeek::make_intrusive(new zeek::String(terminal, len, false)) ); } diff --git a/src/analyzer/protocol/mime/MIME.cc b/src/analyzer/protocol/mime/MIME.cc index becabb84b4..75ead71f8d 100644 --- a/src/analyzer/protocol/mime/MIME.cc +++ b/src/analyzer/protocol/mime/MIME.cc @@ -132,7 +132,7 @@ zeek::StringValPtr to_string_val(const zeek::data_chunk_t buf) return to_string_val(buf.length, buf.data); } -static zeek::data_chunk_t get_data_chunk(zeek::BroString* s) +static zeek::data_chunk_t get_data_chunk(zeek::String* s) { zeek::data_chunk_t b; b.length = s->Len(); @@ -380,7 +380,7 @@ int MIME_get_quoted_string(int len, const char* data, zeek::data_chunk_t* str) return -1; } -int MIME_get_value(int len, const char* data, zeek::BroString*& buf, bool is_boundary) +int MIME_get_value(int len, const char* data, zeek::String*& buf, bool is_boundary) { int offset = 0; @@ -408,7 +408,7 @@ int MIME_get_value(int len, const char* data, zeek::BroString*& buf, bool is_bou if ( end < 0 ) return -1; - buf = new zeek::BroString((const u_char*)str.data, str.length, true); + buf = new zeek::String((const u_char*)str.data, str.length, true); return offset + end; } } @@ -416,7 +416,7 @@ int MIME_get_value(int len, const char* data, zeek::BroString*& buf, bool is_bou // Decode each quoted-pair: a '\' followed by a character by the // quoted character. The decoded string is returned. -zeek::BroString* MIME_decode_quoted_pairs(zeek::data_chunk_t buf) +zeek::String* MIME_decode_quoted_pairs(zeek::data_chunk_t buf) { const char* data = buf.data; char* dest = new char[buf.length+1]; @@ -436,7 +436,7 @@ zeek::BroString* MIME_decode_quoted_pairs(zeek::data_chunk_t buf) dest[j++] = data[i]; dest[j] = 0; - return new zeek::BroString(true, (zeek::byte_vec) dest, j); + return new zeek::String(true, (zeek::byte_vec) dest, j); } @@ -457,10 +457,10 @@ MIME_Multiline::~MIME_Multiline() void MIME_Multiline::append(int len, const char* data) { - buffer.push_back(new zeek::BroString((const u_char*) data, len, true)); + buffer.push_back(new zeek::String((const u_char*) data, len, true)); } -zeek::BroString* MIME_Multiline::get_concatenated_line() +zeek::String* MIME_Multiline::get_concatenated_line() { if ( buffer.empty() ) return nullptr; @@ -477,7 +477,7 @@ MIME_Header::MIME_Header(MIME_Multiline* hl) lines = hl; name = value = value_token = rest_value = null_data_chunk; - zeek::BroString* s = hl->get_concatenated_line(); + zeek::String* s = hl->get_concatenated_line(); int len = s->Len(); const char* data = (const char*) s->Bytes(); @@ -844,7 +844,7 @@ bool MIME_Entity::ParseContentEncodingField(MIME_Header* h) } delete content_encoding_str; - content_encoding_str = new zeek::BroString((const u_char*)enc.data, enc.length, true); + content_encoding_str = new zeek::String((const u_char*)enc.data, enc.length, true); ParseContentEncoding(enc); if ( need_to_parse_parameters ) @@ -892,7 +892,7 @@ bool MIME_Entity::ParseFieldParameters(int len, const char* data) data += offset; len -= offset; - zeek::BroString* val = nullptr; + zeek::String* val = nullptr; if ( current_field_type == MIME_CONTENT_TYPE && content_type == CONTENT_TYPE_MULTIPART && @@ -910,7 +910,7 @@ bool MIME_Entity::ParseFieldParameters(int len, const char* data) zeek::data_chunk_t vd = get_data_chunk(val); delete multipart_boundary; - multipart_boundary = new zeek::BroString((const u_char*)vd.data, + multipart_boundary = new zeek::String((const u_char*)vd.data, vd.length, true); } else @@ -1352,7 +1352,7 @@ MIME_Mail::MIME_Mail(analyzer::Analyzer* mail_analyzer, bool orig, int buf_size) length = max_chunk_length; buffer_start = data_start = 0; - data_buffer = new zeek::BroString(true, new u_char[length+1], length); + data_buffer = new zeek::String(true, new u_char[length+1], length); if ( mime_content_hash ) { @@ -1383,7 +1383,7 @@ void MIME_Mail::Done() analyzer->EnqueueConnEvent(mime_content_hash, analyzer->ConnVal(), zeek::val_mgr->Count(content_hash_length), - zeek::make_intrusive(new zeek::BroString(true, digest, 16)) + zeek::make_intrusive(new zeek::String(true, digest, 16)) ); } @@ -1418,7 +1418,7 @@ void MIME_Mail::EndEntity(MIME_Entity* /* entity */) { if ( mime_entity_data ) { - zeek::BroString* s = concatenate(entity_content); + zeek::String* s = concatenate(entity_content); analyzer->EnqueueConnEvent(mime_entity_data, analyzer->ConnVal(), @@ -1474,7 +1474,7 @@ void MIME_Mail::SubmitData(int len, const char* buf) if ( mime_entity_data || mime_all_data ) { - zeek::BroString* s = new zeek::BroString((const u_char*) buf, len, false); + zeek::String* s = new zeek::String((const u_char*) buf, len, false); if ( mime_entity_data ) entity_content.push_back(s); @@ -1531,7 +1531,7 @@ void MIME_Mail::SubmitAllData() { if ( mime_all_data ) { - zeek::BroString* s = concatenate(all_content); + zeek::String* s = concatenate(all_content); delete_strings(all_content); analyzer->EnqueueConnEvent(mime_all_data, diff --git a/src/analyzer/protocol/mime/MIME.h b/src/analyzer/protocol/mime/MIME.h index 6c22bd7d43..bc07a81811 100644 --- a/src/analyzer/protocol/mime/MIME.h +++ b/src/analyzer/protocol/mime/MIME.h @@ -63,11 +63,11 @@ public: ~MIME_Multiline(); void append(int len, const char* data); - zeek::BroString* get_concatenated_line(); + zeek::String* get_concatenated_line(); protected: - std::vector buffer; - zeek::BroString* line; + std::vector buffer; + zeek::String* line; }; class MIME_Header { @@ -166,8 +166,8 @@ protected: zeek::StringValPtr content_type_str; zeek::StringValPtr content_subtype_str; - zeek::BroString* content_encoding_str; - zeek::BroString* multipart_boundary; + zeek::String* content_encoding_str; + zeek::String* multipart_boundary; int content_type, content_subtype, content_encoding; @@ -269,10 +269,10 @@ protected: int compute_content_hash; int content_hash_length; EVP_MD_CTX* md5_hash; - std::vector entity_content; - std::vector all_content; + std::vector entity_content; + std::vector all_content; - zeek::BroString* data_buffer; + zeek::String* data_buffer; uint64_t cur_entity_len; std::string cur_entity_id; @@ -299,9 +299,9 @@ extern int MIME_skip_lws_comments(int len, const char* data); extern int MIME_get_token(int len, const char* data, zeek::data_chunk_t* token, bool is_boundary = false); extern int MIME_get_slash_token_pair(int len, const char* data, zeek::data_chunk_t* first, zeek::data_chunk_t* second); -extern int MIME_get_value(int len, const char* data, zeek::BroString*& buf, +extern int MIME_get_value(int len, const char* data, zeek::String*& buf, bool is_boundary = false); extern int MIME_get_field_name(int len, const char* data, zeek::data_chunk_t* name); -extern zeek::BroString* MIME_decode_quoted_pairs(zeek::data_chunk_t buf); +extern zeek::String* MIME_decode_quoted_pairs(zeek::data_chunk_t buf); } } // namespace analyzer::* diff --git a/src/analyzer/protocol/netbios/NetbiosSSN.cc b/src/analyzer/protocol/netbios/NetbiosSSN.cc index 397562ad8f..8840764b54 100644 --- a/src/analyzer/protocol/netbios/NetbiosSSN.cc +++ b/src/analyzer/protocol/netbios/NetbiosSSN.cc @@ -125,11 +125,11 @@ void NetbiosSSN_Interpreter::ParseBroadcast(const u_char* data, int len, // FIND THE NUL-TERMINATED NAME STRINGS HERE! // Not sure what's in them, so we don't keep them currently. - zeek::BroString* srcname = new zeek::BroString((char*) data); + zeek::String* srcname = new zeek::String((char*) data); data += srcname->Len()+1; len -= srcname->Len(); - zeek::BroString* dstname = new zeek::BroString((char*) data); + zeek::String* dstname = new zeek::String((char*) data); data += dstname->Len()+1; len -= dstname->Len(); @@ -324,11 +324,11 @@ void NetbiosSSN_Interpreter::Event(EventHandlerPtr event, const u_char* data, analyzer->EnqueueConnEvent(event, analyzer->ConnVal(), zeek::val_mgr->Bool(is_orig), - zeek::make_intrusive(new zeek::BroString(data, len, false))); + zeek::make_intrusive(new zeek::String(data, len, false))); else analyzer->EnqueueConnEvent(event, analyzer->ConnVal(), - zeek::make_intrusive(new zeek::BroString(data, len, false))); + zeek::make_intrusive(new zeek::String(data, len, false))); } diff --git a/src/analyzer/protocol/pop3/POP3.cc b/src/analyzer/protocol/pop3/POP3.cc index cfaecaff6d..c1e6c0f690 100644 --- a/src/analyzer/protocol/pop3/POP3.cc +++ b/src/analyzer/protocol/pop3/POP3.cc @@ -78,7 +78,7 @@ void POP3_Analyzer::DeliverStream(int len, const u_char* data, bool orig) if ( (TCP() && TCP()->IsPartial()) ) return; - zeek::BroString terminated_string(data, len, true); + zeek::String terminated_string(data, len, true); if ( orig ) ProcessRequest(len, (char*) terminated_string.Bytes()); @@ -135,8 +135,8 @@ void POP3_Analyzer::ProcessRequest(int length, const char* line) { ++authLines; - zeek::BroString encoded(line); - zeek::BroString* decoded = decode_base64(&encoded, nullptr, Conn()); + zeek::String encoded(line); + zeek::String* decoded = decode_base64(&encoded, nullptr, Conn()); if ( ! decoded ) { diff --git a/src/analyzer/protocol/rpc/MOUNT.cc b/src/analyzer/protocol/rpc/MOUNT.cc index 05e8a6fda6..f8168624d0 100644 --- a/src/analyzer/protocol/rpc/MOUNT.cc +++ b/src/analyzer/protocol/rpc/MOUNT.cc @@ -218,7 +218,7 @@ zeek::StringValPtr MOUNT_Interp::mount3_fh(const u_char*& buf, int& n) if ( ! fh ) return nullptr; - return zeek::make_intrusive(new zeek::BroString(fh, fh_n, false)); + return zeek::make_intrusive(new zeek::String(fh, fh_n, false)); } zeek::StringValPtr MOUNT_Interp::mount3_filename(const u_char*& buf, int& n) @@ -229,7 +229,7 @@ zeek::StringValPtr MOUNT_Interp::mount3_filename(const u_char*& buf, int& n) if ( ! name ) return nullptr; - return zeek::make_intrusive(new zeek::BroString(name, name_len, false)); + return zeek::make_intrusive(new zeek::String(name, name_len, false)); } zeek::RecordValPtr MOUNT_Interp::mount3_dirmntargs(const u_char*& buf, int& n) diff --git a/src/analyzer/protocol/rpc/NFS.cc b/src/analyzer/protocol/rpc/NFS.cc index e5ed33aebb..44615fa2eb 100644 --- a/src/analyzer/protocol/rpc/NFS.cc +++ b/src/analyzer/protocol/rpc/NFS.cc @@ -297,7 +297,7 @@ zeek::StringValPtr NFS_Interp::nfs3_file_data(const u_char*& buf, int& n, uint64 data_n = std::min(data_n, int(zeek::BifConst::NFS3::return_data_max)); if ( data && data_n > 0 ) - return zeek::make_intrusive(new zeek::BroString(data, data_n, false)); + return zeek::make_intrusive(new zeek::String(data, data_n, false)); return nullptr; } @@ -344,7 +344,7 @@ zeek::StringValPtr NFS_Interp::nfs3_fh(const u_char*& buf, int& n) if ( ! fh ) return nullptr; - return zeek::make_intrusive(new zeek::BroString(fh, fh_n, false)); + return zeek::make_intrusive(new zeek::String(fh, fh_n, false)); } @@ -452,7 +452,7 @@ zeek::StringValPtr NFS_Interp::nfs3_filename(const u_char*& buf, int& n) if ( ! name ) return nullptr; - return zeek::make_intrusive(new zeek::BroString(name, name_len, false)); + return zeek::make_intrusive(new zeek::String(name, name_len, false)); } zeek::RecordValPtr NFS_Interp::nfs3_diropargs(const u_char*& buf, int& n) diff --git a/src/analyzer/protocol/smtp/SMTP.cc b/src/analyzer/protocol/smtp/SMTP.cc index 716580b694..fbe584e2ae 100644 --- a/src/analyzer/protocol/smtp/SMTP.cc +++ b/src/analyzer/protocol/smtp/SMTP.cc @@ -183,7 +183,7 @@ void SMTP_Analyzer::ProcessLine(int length, const char* line, bool orig) delete line_after_gap; line_after_gap = - new zeek::BroString((const u_char *) line, length, true); + new zeek::String((const u_char *) line, length, true); } else if ( state == SMTP_IN_DATA && line[0] == '.' && length == 1 ) diff --git a/src/analyzer/protocol/smtp/SMTP.h b/src/analyzer/protocol/smtp/SMTP.h index 99e73e17e9..edc17e7d20 100644 --- a/src/analyzer/protocol/smtp/SMTP.h +++ b/src/analyzer/protocol/smtp/SMTP.h @@ -84,7 +84,7 @@ protected: int pending_reply; // code assoc. w/ multi-line reply, or 0 std::list pending_cmd_q; // to support pipelining bool skip_data; // whether to skip message body - zeek::BroString* line_after_gap; // last line before the first reply + zeek::String* line_after_gap; // last line before the first reply // after a gap mime::MIME_Mail* mail; diff --git a/src/analyzer/protocol/tcp/TCP_Reassembler.cc b/src/analyzer/protocol/tcp/TCP_Reassembler.cc index e9cbd860c4..cada67174a 100644 --- a/src/analyzer/protocol/tcp/TCP_Reassembler.cc +++ b/src/analyzer/protocol/tcp/TCP_Reassembler.cc @@ -448,8 +448,8 @@ void TCP_Reassembler::Overlap(const u_char* b1, const u_char* b2, uint64_t n) // we've ever seen for the connection. (n > 1 || endp->peer->HasDoneSomething()) ) { - zeek::BroString* b1_s = new zeek::BroString((const u_char*) b1, n, false); - zeek::BroString* b2_s = new zeek::BroString((const u_char*) b2, n, false); + zeek::String* b1_s = new zeek::String((const u_char*) b1, n, false); + zeek::String* b2_s = new zeek::String((const u_char*) b2, n, false); tcp_analyzer->EnqueueConnEvent(rexmit_inconsistency, tcp_analyzer->ConnVal(), diff --git a/src/analyzer/protocol/teredo/Teredo.cc b/src/analyzer/protocol/teredo/Teredo.cc index c070a2cb24..73c2722d0b 100644 --- a/src/analyzer/protocol/teredo/Teredo.cc +++ b/src/analyzer/protocol/teredo/Teredo.cc @@ -112,9 +112,9 @@ zeek::RecordValPtr TeredoEncapsulation::BuildVal(const IP_Hdr* inner) const uint64_t nonce = ntohll(*((uint64_t*)(auth + 4 + id_len + au_len))); uint8_t conf = *((uint8_t*)(auth + 4 + id_len + au_len + 8)); teredo_auth->Assign(0, zeek::make_intrusive( - new zeek::BroString(auth + 4, id_len, true))); + new zeek::String(auth + 4, id_len, true))); teredo_auth->Assign(1, zeek::make_intrusive( - new zeek::BroString(auth + 4 + id_len, au_len, true))); + new zeek::String(auth + 4 + id_len, au_len, true))); teredo_auth->Assign(2, zeek::val_mgr->Count(nonce)); teredo_auth->Assign(3, zeek::val_mgr->Count(conf)); teredo_hdr->Assign(0, std::move(teredo_auth)); diff --git a/src/broker/messaging.bif b/src/broker/messaging.bif index 4d6d04bb38..bae4ad625c 100644 --- a/src/broker/messaging.bif +++ b/src/broker/messaging.bif @@ -47,7 +47,7 @@ std::set val_to_topic_set(zeek::Val* val) return rval; } -static bool publish_event_args(val_list& args, const zeek::BroString* topic, +static bool publish_event_args(val_list& args, const zeek::String* topic, zeek::detail::Frame* frame) { bro_broker::Manager::ScriptScopeGuard ssg; diff --git a/src/file_analysis/File.cc b/src/file_analysis/File.cc index c3570b0dac..af780815ef 100644 --- a/src/file_analysis/File.cc +++ b/src/file_analysis/File.cc @@ -325,7 +325,7 @@ void File::InferMetadata() if ( bof_buffer.size == 0 ) return; - zeek::BroString* bs = concatenate(bof_buffer.chunks); + zeek::String* bs = concatenate(bof_buffer.chunks); val->Assign(bof_buffer_idx, bs); bof_buffer_val = val->GetField(bof_buffer_idx).get(); } @@ -359,7 +359,7 @@ bool File::BufferBOF(const u_char* data, uint64_t len) uint64_t desired_size = LookupFieldDefaultCount(bof_buffer_size_idx); - bof_buffer.chunks.push_back(new zeek::BroString(data, len, false)); + bof_buffer.chunks.push_back(new zeek::String(data, len, false)); bof_buffer.size += len; if ( bof_buffer.size < desired_size ) @@ -369,7 +369,7 @@ bool File::BufferBOF(const u_char* data, uint64_t len) if ( bof_buffer.size > 0 ) { - zeek::BroString* bs = concatenate(bof_buffer.chunks); + zeek::String* bs = concatenate(bof_buffer.chunks); val->Assign(bof_buffer_idx, zeek::make_intrusive(bs)); } diff --git a/src/file_analysis/File.h b/src/file_analysis/File.h index 578f16de09..d57bdfadaa 100644 --- a/src/file_analysis/File.h +++ b/src/file_analysis/File.h @@ -370,7 +370,7 @@ protected: bool full; uint64_t size; - zeek::BroString::CVec chunks; + zeek::String::CVec chunks; } bof_buffer; /**< Beginning of file buffer. */ WeirdStateMap weird_state; diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 233710e558..da4b92d6c1 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -80,7 +80,7 @@ void Manager::SetHandle(const string& handle) #ifdef DEBUG if ( debug_logger.IsEnabled(DBG_FILE_ANALYSIS) ) { - zeek::BroString tmp{handle}; + zeek::String tmp{handle}; auto rendered = tmp.Render(); DBG_LOG(DBG_FILE_ANALYSIS, "Set current handle to %s", rendered); delete [] rendered; diff --git a/src/file_analysis/analyzer/data_event/DataEvent.cc b/src/file_analysis/analyzer/data_event/DataEvent.cc index 1f9d1d366a..17d2e58618 100644 --- a/src/file_analysis/analyzer/data_event/DataEvent.cc +++ b/src/file_analysis/analyzer/data_event/DataEvent.cc @@ -45,7 +45,7 @@ bool DataEvent::DeliverChunk(const u_char* data, uint64_t len, uint64_t offset) mgr.Enqueue(chunk_event, GetFile()->ToVal(), - zeek::make_intrusive(new zeek::BroString(data, len, false)), + zeek::make_intrusive(new zeek::String(data, len, false)), zeek::val_mgr->Count(offset) ); @@ -58,7 +58,7 @@ bool DataEvent::DeliverStream(const u_char* data, uint64_t len) mgr.Enqueue(stream_event, GetFile()->ToVal(), - zeek::make_intrusive(new zeek::BroString(data, len, false)) + zeek::make_intrusive(new zeek::String(data, len, false)) ); return true; diff --git a/src/input/Manager.cc b/src/input/Manager.cc index 22201abd3c..324e4f9288 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -239,7 +239,7 @@ bool Manager::CreateStream(Stream* info, zeek::RecordVal* description) // get the source ... auto source_val = description->GetFieldOrDefault("source"); - const zeek::BroString* bsource = source_val->AsString(); + const zeek::String* bsource = source_val->AsString(); string source((const char*) bsource->Bytes(), bsource->Len()); ReaderBackend::ReaderInfo rinfo; @@ -2195,7 +2195,7 @@ zeek::Val* Manager::ValueToVal(const Stream* i, const Value* val, zeek::Type* re case zeek::TYPE_STRING: { - zeek::BroString *s = new zeek::BroString((const u_char*)val->val.string_val.data, val->val.string_val.length, true); + zeek::String *s = new zeek::String((const u_char*)val->val.string_val.data, val->val.string_val.length, true); return new zeek::StringVal(s); } diff --git a/src/logging/Manager.cc b/src/logging/Manager.cc index d16a1934be..98e3bb6ff6 100644 --- a/src/logging/Manager.cc +++ b/src/logging/Manager.cc @@ -976,7 +976,7 @@ threading::Value* Manager::ValToLogVal(zeek::Val* val, zeek::Type* ty) case zeek::TYPE_STRING: { - const zeek::BroString* s = val->AsString(); + const zeek::String* s = val->AsString(); char* buf = new char[s->Len()]; memcpy(buf, s->Bytes(), s->Len()); diff --git a/src/scan.l b/src/scan.l index cc4ab90b9c..f14d622cda 100644 --- a/src/scan.l +++ b/src/scan.l @@ -560,7 +560,7 @@ F RET_CONST(zeek::val_mgr->False()->Ref()) s[i-1] = '\0'; - RET_CONST(new zeek::StringVal(new zeek::BroString(1, (zeek::byte_vec) s, i-1))) + RET_CONST(new zeek::StringVal(new zeek::String(1, (zeek::byte_vec) s, i-1))) } ([^/\\\n]|{ESCSEQ})+ { diff --git a/src/strings.bif b/src/strings.bif index b503409003..59369d8dd8 100644 --- a/src/strings.bif +++ b/src/strings.bif @@ -65,11 +65,11 @@ function string_cat%(...%): string n += a->AsString()->Len(); u_char* b = new u_char[n+1]; - zeek::BroString* s = new zeek::BroString(1, b, n); + zeek::String* s = new zeek::String(1, b, n); for ( const auto& a : @ARG@ ) { - const zeek::BroString* s = a->AsString(); + const zeek::String* s = a->AsString(); memcpy(b, s->Bytes(), s->Len()); b += s->Len(); } @@ -111,7 +111,7 @@ function join_string_vec%(vec: string_vec, sep: string%): string e->Describe(&d); } - zeek::BroString* s = new zeek::BroString(1, d.TakeBytes(), d.Len()); + zeek::String* s = new zeek::String(1, d.TakeBytes(), d.Len()); s->SetUseFreeToDelete(true); return zeek::make_intrusive(s); @@ -162,7 +162,7 @@ function edit%(arg_s: string, arg_edit_char: string%): string new_s[ind] = '\0'; - return zeek::make_intrusive(new zeek::BroString(1, byte_vec(new_s), ind)); + return zeek::make_intrusive(new zeek::String(1, byte_vec(new_s), ind)); %} ## Get a substring from a string, given a starting position and length. @@ -180,10 +180,10 @@ function sub_bytes%(s: string, start: count, n: int%): string if ( start > 0 ) --start; // make it 0-based - zeek::BroString* ss = s->AsString()->GetSubstring(start, n); + zeek::String* ss = s->AsString()->GetSubstring(start, n); if ( ! ss ) - ss = new zeek::BroString(""); + ss = new zeek::String(""); return zeek::make_intrusive(ss); %} @@ -541,7 +541,7 @@ function to_lower%(str: string%): string *ls++ = '\0'; - return zeek::make_intrusive(new zeek::BroString(1, lower_s, n)); + return zeek::make_intrusive(new zeek::String(1, lower_s, n)); %} ## Replaces all lowercase letters in a string with their uppercase counterpart. @@ -570,7 +570,7 @@ function to_upper%(str: string%): string *us++ = '\0'; - return zeek::make_intrusive(new zeek::BroString(1, upper_s, n)); + return zeek::make_intrusive(new zeek::String(1, upper_s, n)); %} ## Replaces non-printable characters in a string with escaped sequences. The @@ -590,7 +590,7 @@ function to_upper%(str: string%): string function clean%(str: string%): string %{ char* s = str->AsString()->Render(); - return zeek::make_intrusive(new zeek::BroString(1, byte_vec(s), strlen(s))); + return zeek::make_intrusive(new zeek::String(1, byte_vec(s), strlen(s))); %} ## Replaces non-printable characters in a string with escaped sequences. The @@ -607,8 +607,8 @@ function clean%(str: string%): string ## .. zeek:see:: clean escape_string function to_string_literal%(str: string%): string %{ - char* s = str->AsString()->Render(zeek::BroString::BRO_STRING_LITERAL); - return zeek::make_intrusive(new zeek::BroString(1, byte_vec(s), strlen(s))); + char* s = str->AsString()->Render(zeek::String::BRO_STRING_LITERAL); + return zeek::make_intrusive(new zeek::String(1, byte_vec(s), strlen(s))); %} ## Determines whether a given string contains only ASCII characters. @@ -646,7 +646,7 @@ function is_ascii%(str: string%): bool ## .. zeek:see:: clean to_string_literal function escape_string%(s: string%): string %{ - char* escstr = s->AsString()->Render(zeek::BroString::ESC_HEX | zeek::BroString::ESC_ESC); + char* escstr = s->AsString()->Render(zeek::String::ESC_HEX | zeek::String::ESC_ESC); auto val = zeek::make_intrusive(escstr); delete [] escstr; return val; @@ -666,7 +666,7 @@ function string_to_ascii_hex%(s: string%): string for ( int i = 0; i < s->Len(); ++i ) sprintf(x + i * 2, "%02x", sp[i]); - return zeek::make_intrusive(new zeek::BroString(1, (u_char*) x, s->Len() * 2)); + return zeek::make_intrusive(new zeek::String(1, (u_char*) x, s->Len() * 2)); %} ## Uses the Smith-Waterman algorithm to find similar/overlapping substrings. @@ -706,20 +706,20 @@ function str_smith_waterman%(s1: string, s2: string, params: sw_params%) : sw_su function str_split%(s: string, idx: index_vec%): string_vec %{ auto idx_v = idx->AsVector(); - zeek::BroString::IdxVec indices(idx_v->size()); + zeek::String::IdxVec indices(idx_v->size()); unsigned int i; for ( i = 0; i < idx_v->size(); i++ ) indices[i] = (*idx_v)[i]->AsCount(); - zeek::BroString::Vec* result = s->AsString()->Split(indices); + zeek::String::Vec* result = s->AsString()->Split(indices); auto result_v = zeek::make_intrusive(zeek::id::string_vec); if ( result ) { i = 1; - for ( zeek::BroString::VecIt it = result->begin(); + for ( zeek::String::VecIt it = result->begin(); it != result->end(); ++it, ++i ) result_v->Assign(i, zeek::make_intrusive(*it)); // StringVal now possesses string. @@ -744,7 +744,7 @@ function strip%(str: string%): string if ( n == 0 ) // Empty string. - return zeek::make_intrusive(new zeek::BroString(s, n, 1)); + return zeek::make_intrusive(new zeek::String(s, n, 1)); const u_char* sp = s; @@ -757,11 +757,11 @@ function strip%(str: string%): string while ( isspace(*sp) && sp <= e ) ++sp; - return zeek::make_intrusive(new zeek::BroString(sp, (e - sp + 1), 1)); + return zeek::make_intrusive(new zeek::String(sp, (e - sp + 1), 1)); %} %%{ -static bool should_strip(u_char c, const zeek::BroString* strip_chars) +static bool should_strip(u_char c, const zeek::String* strip_chars) { auto strip_bytes = strip_chars->Bytes(); @@ -792,7 +792,7 @@ function lstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string // empty input string if ( n == 0 ) - return zeek::make_intrusive(new zeek::BroString(s, n, 1)); + return zeek::make_intrusive(new zeek::String(s, n, 1)); int i; auto bs_chars = chars->AsString(); @@ -801,7 +801,7 @@ function lstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string if ( ! should_strip(s[i], bs_chars) ) break; - return zeek::make_intrusive(new zeek::BroString(s + i, n - i, 1)); + return zeek::make_intrusive(new zeek::String(s + i, n - i, 1)); %} ## Removes all combinations of characters in the *chars* argument @@ -823,7 +823,7 @@ function rstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string // empty input string if ( n == 0 ) - return zeek::make_intrusive(new zeek::BroString(s, n, 1)); + return zeek::make_intrusive(new zeek::String(s, n, 1)); int n_to_remove; auto bs_chars = chars->AsString(); @@ -832,7 +832,7 @@ function rstrip%(str: string, chars: string &default=" \t\n\r\v\f"%): string if ( ! should_strip(s[n - n_to_remove - 1], bs_chars) ) break; - return zeek::make_intrusive(new zeek::BroString(s, n - n_to_remove, 1)); + return zeek::make_intrusive(new zeek::String(s, n - n_to_remove, 1)); %} ## Generates a string of a given size and fills it with repetitions of a source @@ -854,7 +854,7 @@ function string_fill%(len: int, source: string%): string dst[len - 1] = 0; - return zeek::make_intrusive(new zeek::BroString(1, byte_vec(dst), len)); + return zeek::make_intrusive(new zeek::String(1, byte_vec(dst), len)); %} ## Takes a string and escapes characters that would allow execution of @@ -894,7 +894,7 @@ function safe_shell_quote%(source: string%): string dst[j++] = '"'; dst[j] = '\0'; - return zeek::make_intrusive(new zeek::BroString(1, dst, j)); + return zeek::make_intrusive(new zeek::String(1, dst, j)); %} ## Finds all occurrences of a pattern in a string. diff --git a/src/threading/SerialTypes.cc b/src/threading/SerialTypes.cc index 925ccfd9d8..7dbb0ae737 100644 --- a/src/threading/SerialTypes.cc +++ b/src/threading/SerialTypes.cc @@ -466,7 +466,7 @@ zeek::Val* Value::ValueToVal(const std::string& source, const Value* val, bool& case zeek::TYPE_STRING: { - auto* s = new zeek::BroString((const u_char*)val->val.string_val.data, val->val.string_val.length, true); + auto* s = new zeek::String((const u_char*)val->val.string_val.data, val->val.string_val.length, true); return new zeek::StringVal(s); } diff --git a/src/zeek.bif b/src/zeek.bif index ba2c85e352..a390bae068 100644 --- a/src/zeek.bif +++ b/src/zeek.bif @@ -815,7 +815,7 @@ function paraglob_init%(v: any%) : opaque of paraglob VectorVal* vv = v->AsVectorVal(); for ( unsigned int i = 0; i < vv->Size(); ++i ) { - const BroString* s = vv->At(i)->AsString(); + const String* s = vv->At(i)->AsString(); patterns.push_back(std::string(reinterpret_cast(s->Bytes()), s->Len())); } @@ -1567,7 +1567,7 @@ function cat%(...%): string for ( const auto& a : @ARG@ ) a->Describe(&d); - BroString* s = new BroString(1, d.TakeBytes(), d.Len()); + String* s = new String(1, d.TakeBytes(), d.Len()); s->SetUseFreeToDelete(true); return zeek::make_intrusive(s); @@ -1609,7 +1609,7 @@ function cat_sep%(sep: string, def: string, ...%): string v->Describe(&d); } - BroString* s = new BroString(1, d.TakeBytes(), d.Len()); + String* s = new String(1, d.TakeBytes(), d.Len()); s->SetUseFreeToDelete(true); return zeek::make_intrusive(s); @@ -1684,7 +1684,7 @@ function fmt%(...%): string return zeek::val_mgr->EmptyString(); } - BroString* s = new BroString(1, d.TakeBytes(), d.Len()); + String* s = new String(1, d.TakeBytes(), d.Len()); s->SetUseFreeToDelete(true); return zeek::make_intrusive(s); @@ -1843,7 +1843,7 @@ function type_name%(t: any%): string ODesc d; t->GetType()->Describe(&d); - BroString* s = new BroString(1, d.TakeBytes(), d.Len()); + String* s = new String(1, d.TakeBytes(), d.Len()); s->SetUseFreeToDelete(true); return zeek::make_intrusive(s); @@ -2895,7 +2895,7 @@ function hexstr_to_bytestring%(hexstr: string%): string ## .. zeek:see:: decode_base64 function encode_base64%(s: string, a: string &default=""%): string %{ - BroString* t = encode_base64(s->AsString(), a->AsString()); + String* t = encode_base64(s->AsString(), a->AsString()); if ( t ) return zeek::make_intrusive(t); else @@ -2917,7 +2917,7 @@ function encode_base64%(s: string, a: string &default=""%): string ## .. zeek:see:: decode_base64_conn encode_base64 function decode_base64%(s: string, a: string &default=""%): string %{ - BroString* t = decode_base64(s->AsString(), a->AsString()); + String* t = decode_base64(s->AsString(), a->AsString()); if ( t ) return zeek::make_intrusive(t); else @@ -2950,7 +2950,7 @@ function decode_base64_conn%(cid: conn_id, s: string, a: string &default=""%): s return zeek::val_mgr->EmptyString(); } - BroString* t = decode_base64(s->AsString(), a->AsString(), conn); + String* t = decode_base64(s->AsString(), a->AsString(), conn); if ( t ) return zeek::make_intrusive(t); else