diff --git a/CHANGES b/CHANGES index ef6405ab75..11e7334218 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,24 @@ +2.6-647 | 2019-07-22 12:46:04 -0700 + + * Ignore abs-path in test. (Zeke Medley, Corelight) + + * Report argument # type check failed on. (Zeke Medley, Corelight) + + * Update test baseline. (Zeke Medley, Corelight) + + * Improve func arg type checking. (Zeke Medley, Corelight) + + * &expire_func(table, arg1, arg2, ...) + type checking. (Zeke Medley, Corelight) + +2.6-640 | 2019-07-22 12:22:08 -0700 + + * Mark List::insert deprecated in favor of push_front (Tim Wojtulewicz, Corelight) + + * Mark List::sort as deprecated, remove List::sortedinsert (Tim Wojtulewicz, Corelight) + + * Simplify container iterators to just use pointers directly (Tim Wojtulewicz, Corelight) + 2.6-635 | 2019-07-22 10:58:56 -0700 * Add DPD::max_violations option diff --git a/NEWS b/NEWS index 05a0e351cc..2d15a62925 100644 --- a/NEWS +++ b/NEWS @@ -576,6 +576,8 @@ Removed Functionality - Removed the BackDoor analyzer. +- Removed ``List::sortedinsert`` from the C++ API. + Deprecated Functionality ------------------------ @@ -593,6 +595,9 @@ Deprecated Functionality - The ``bro_is_terminating`` and ``bro_version`` function are deprecated and replaced by functions named ``zeek_is_terminating`` and ``zeek_version``. +- The ``List::insert`` method from the C++ API is deprecated, use + ``List::push_front`` instead. + Bro 2.6 ======= diff --git a/VERSION b/VERSION index 434c247871..b978d772df 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.6-635 +2.6-647 diff --git a/src/Attr.cc b/src/Attr.cc index 1dcbab0f2e..d8cd73ee6f 100644 --- a/src/Attr.cc +++ b/src/Attr.cc @@ -168,7 +168,7 @@ void Attributes::AddAttr(Attr* attr) // We overwrite old attributes by deleting them first. RemoveAttr(attr->Tag()); - attrs->append(attr); + attrs->push_back(attr); Ref(attr); // We only check the attribute after we've added it, to facilitate @@ -179,11 +179,11 @@ void Attributes::AddAttr(Attr* attr) // those attributes only have meaning for a redefinable value. if ( (attr->Tag() == ATTR_ADD_FUNC || attr->Tag() == ATTR_DEL_FUNC) && ! FindAttr(ATTR_REDEF) ) - attrs->append(new Attr(ATTR_REDEF)); + attrs->push_back(new Attr(ATTR_REDEF)); // For DEFAULT, add an implicit OPTIONAL. if ( attr->Tag() == ATTR_DEFAULT && ! FindAttr(ATTR_OPTIONAL) ) - attrs->append(new Attr(ATTR_OPTIONAL)); + attrs->push_back(new Attr(ATTR_OPTIONAL)); } void Attributes::AddAttrs(Attributes* a) diff --git a/src/Conn.cc b/src/Conn.cc index a6247e378a..fd7a6e66e1 100644 --- a/src/Conn.cc +++ b/src/Conn.cc @@ -525,7 +525,7 @@ void Connection::AddTimer(timer_func timer, double t, int do_expire, Timer* conn_timer = new ConnectionTimer(this, timer, t, do_expire, type); GetTimerMgr()->Add(conn_timer); - timers.append(conn_timer); + timers.push_back(conn_timer); } void Connection::RemoveTimer(Timer* t) diff --git a/src/DFA.cc b/src/DFA.cc index 26562f8e55..5acb6f3225 100644 --- a/src/DFA.cc +++ b/src/DFA.cc @@ -402,7 +402,7 @@ DFA_Machine::DFA_Machine(NFA_Machine* n, EquivClass* arg_ec) dfa_state_cache = new DFA_State_Cache(); NFA_state_list* ns = new NFA_state_list; - ns->append(n->FirstState()); + ns->push_back(n->FirstState()); if ( ns->length() > 0 ) { diff --git a/src/DNS_Mgr.cc b/src/DNS_Mgr.cc index c02be19d82..a194e92302 100644 --- a/src/DNS_Mgr.cc +++ b/src/DNS_Mgr.cc @@ -536,8 +536,8 @@ TableVal* DNS_Mgr::LookupHost(const char* name) // Not found, or priming. switch ( mode ) { case DNS_PRIME: - requests.append(new DNS_Mgr_Request(name, AF_INET, false)); - requests.append(new DNS_Mgr_Request(name, AF_INET6, false)); + requests.push_back(new DNS_Mgr_Request(name, AF_INET, false)); + requests.push_back(new DNS_Mgr_Request(name, AF_INET6, false)); return empty_addr_set(); case DNS_FORCE: @@ -545,8 +545,8 @@ TableVal* DNS_Mgr::LookupHost(const char* name) return 0; case DNS_DEFAULT: - requests.append(new DNS_Mgr_Request(name, AF_INET, false)); - requests.append(new DNS_Mgr_Request(name, AF_INET6, false)); + requests.push_back(new DNS_Mgr_Request(name, AF_INET, false)); + requests.push_back(new DNS_Mgr_Request(name, AF_INET6, false)); Resolve(); return LookupHost(name); @@ -581,7 +581,7 @@ Val* DNS_Mgr::LookupAddr(const IPAddr& addr) // Not found, or priming. switch ( mode ) { case DNS_PRIME: - requests.append(new DNS_Mgr_Request(addr)); + requests.push_back(new DNS_Mgr_Request(addr)); return new StringVal(""); case DNS_FORCE: @@ -590,7 +590,7 @@ Val* DNS_Mgr::LookupAddr(const IPAddr& addr) return 0; case DNS_DEFAULT: - requests.append(new DNS_Mgr_Request(addr)); + requests.push_back(new DNS_Mgr_Request(addr)); Resolve(); return LookupAddr(addr); diff --git a/src/Dict.cc b/src/Dict.cc index d3eea6591f..fa1f9e2bc9 100644 --- a/src/Dict.cc +++ b/src/Dict.cc @@ -179,7 +179,7 @@ void* Dictionary::Insert(void* key, int key_size, hash_t hash, void* val, delete new_entry; } else if ( order ) - order->append(new_entry); + order->push_back(new_entry); // Resize logic. if ( tbl2 ) @@ -470,7 +470,7 @@ void* Dictionary::Insert(DictEntry* new_entry, int copy_key) // We happen to know (:-() that appending is more efficient // on lists than prepending. - chain->append(new_entry); + chain->push_back(new_entry); ++cumulative_entries; if ( *max_num_entries_ptr < ++*num_entries_ptr ) @@ -481,7 +481,7 @@ void* Dictionary::Insert(DictEntry* new_entry, int copy_key) for ( const auto& c : cookies ) { if ( h < (unsigned int) c->bucket ) - c->inserted.append(new_entry); + c->inserted.push_back(new_entry); } return 0; diff --git a/src/Dict.h b/src/Dict.h index 17f3061655..48025104fc 100644 --- a/src/Dict.h +++ b/src/Dict.h @@ -113,7 +113,7 @@ public: // removed. (We don't get this for free, so only use it if // necessary.) void MakeRobustCookie(IterCookie* cookie) - { cookies.append(cookie); } + { cookies.push_back(cookie); } // Remove all entries. void Clear(); diff --git a/src/EventRegistry.cc b/src/EventRegistry.cc index be3cf13799..48a1761030 100644 --- a/src/EventRegistry.cc +++ b/src/EventRegistry.cc @@ -25,7 +25,7 @@ EventRegistry::string_list* EventRegistry::Match(RE_Matcher* pattern) while ( (v = handlers.NextEntry(k, c)) ) { if ( v->LocalHandler() && pattern->MatchExactly(v->Name()) ) - names->append(v->Name()); + names->push_back(v->Name()); delete k; } @@ -44,7 +44,7 @@ EventRegistry::string_list* EventRegistry::UnusedHandlers() while ( (v = handlers.NextEntry(k, c)) ) { if ( v->LocalHandler() && ! v->Used() ) - names->append(v->Name()); + names->push_back(v->Name()); delete k; } @@ -63,7 +63,7 @@ EventRegistry::string_list* EventRegistry::UsedHandlers() while ( (v = handlers.NextEntry(k, c)) ) { if ( v->LocalHandler() && v->Used() ) - names->append(v->Name()); + names->push_back(v->Name()); delete k; } @@ -81,7 +81,7 @@ EventRegistry::string_list* EventRegistry::AllHandlers() EventHandler* v; while ( (v = handlers.NextEntry(k, c)) ) { - names->append(v->Name()); + names->push_back(v->Name()); delete k; } diff --git a/src/Expr.cc b/src/Expr.cc index 9fa85b6686..0c1e81277f 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -3039,7 +3039,7 @@ RecordConstructorExpr::RecordConstructorExpr(ListExpr* constructor_list) FieldAssignExpr* field = (FieldAssignExpr*) e; BroType* field_type = field->Type()->Ref(); char* field_name = copy_string(field->FieldName()); - record_types->append(new TypeDecl(field_type, field_name)); + record_types->push_back(new TypeDecl(field_type, field_name)); } SetType(new RecordType(record_types)); @@ -4418,7 +4418,7 @@ ListExpr::~ListExpr() void ListExpr::Append(Expr* e) { - exprs.append(e); + exprs.push_back(e); ((TypeList*) type)->Append(e->Type()->Ref()); } @@ -4482,7 +4482,7 @@ BroType* ListExpr::InitType() const return 0; } - types->append(td); + types->push_back(td); } @@ -5061,11 +5061,11 @@ int check_and_promote_args(ListExpr*& args, RecordType* types) return 0; } - def_elements.insert(def_attr->AttrExpr()); + def_elements.push_front(def_attr->AttrExpr()); } for ( const auto& elem : def_elements ) - el.append(elem->Ref()); + el.push_back(elem->Ref()); } TypeList* tl = new TypeList(); @@ -5116,7 +5116,7 @@ val_list* eval_list(Frame* f, const ListExpr* l) success = false; break; } - v->append(ev); + v->push_back(ev); } if ( ! success ) diff --git a/src/Func.cc b/src/Func.cc index 8f0fa7f5c8..dc3fe9fb5f 100644 --- a/src/Func.cc +++ b/src/Func.cc @@ -473,8 +473,8 @@ Stmt* BroFunc::AddInits(Stmt* body, id_list* inits) return body; StmtList* stmt_series = new StmtList; - stmt_series->Stmts().append(new InitStmt(inits)); - stmt_series->Stmts().append(body); + stmt_series->Stmts().push_back(new InitStmt(inits)); + stmt_series->Stmts().push_back(body); return stmt_series; } diff --git a/src/List.h b/src/List.h index fdc23ec529..01e5eb3f9b 100644 --- a/src/List.h +++ b/src/List.h @@ -27,67 +27,9 @@ #include #include "util.h" +// TODO: this can be removed in v3.1 when List::sort() is removed typedef int (*list_cmp_func)(const void* v1, const void* v2); -template -class ListIterator - { -public: - ListIterator(T* entries, int offset, int num_entries) : - entries(entries), offset(offset), num_entries(num_entries), endptr() {} - bool operator==(const ListIterator& rhs) { return entries == rhs.entries && offset == rhs.offset; } - bool operator!=(const ListIterator& rhs) { return entries != rhs.entries || offset != rhs.offset; } - ListIterator & operator++() { offset++; return *this; } - ListIterator operator++(int) { auto t = *this; offset++; return t; } - ListIterator & operator--() { offset--; return *this; } - ListIterator operator--(int) { auto t = *this; offset--; return t; } - std::ptrdiff_t operator-(ListIterator const& sibling) const { return offset - sibling.offset; } - ListIterator & operator+=(int amount) { offset += amount; return *this; } - ListIterator & operator-=(int amount) { offset -= amount; return *this; } - bool operator<(ListIterator const&sibling) const { return offset < sibling.offset;} - bool operator<=(ListIterator const&sibling) const { return offset <= sibling.offset; } - bool operator>(ListIterator const&sibling) const { return offset > sibling.offset; } - bool operator>=(ListIterator const&sibling) const { return offset >= sibling.offset; } - T& operator[](int index) - { - if (index < num_entries) - return entries[index]; - else - return endptr; - } - T& operator*() - { - if ( offset < num_entries ) - return entries[offset]; - else - return endptr; - } - -private: - T* const entries; - int offset; - int num_entries; - T endptr; // let this get set to some random value on purpose. It's only used - // for the operator[] and operator* cases where you pass something - // off the end of the collection, which is undefined behavior anyways. - }; - - -namespace std { - template - class iterator_traits > - { - public: - using difference_type = std::ptrdiff_t; - using size_type = std::size_t; - using value_type = T; - using pointer = T*; - using reference = T&; - using iterator_category = std::random_access_iterator_tag; - }; -} - - template class List { public: @@ -213,6 +155,7 @@ public: return max_entries; } + ZEEK_DEPRECATED("Remove in v3.1: Use std::sort instead") void sort(list_cmp_func cmp_func) { qsort(entries, num_entries, sizeof(T), cmp_func); @@ -221,7 +164,7 @@ public: int MemoryAllocation() const { return padded_sizeof(*this) + pad_size(max_entries * sizeof(T)); } - void insert(const T& a) // add at head of list + void push_front(const T& a) { if ( num_entries == max_entries ) resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE); @@ -232,46 +175,32 @@ public: ++num_entries; entries[0] = a; } - - // Assumes that the list is sorted and inserts at correct position. - void sortedinsert(const T& a, list_cmp_func cmp_func) + + void push_back(const T& a) { - // We optimize for the case that the new element is - // larger than most of the current entries. - - // First append element. if ( num_entries == max_entries ) resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE); entries[num_entries++] = a; - - // Then move it to the correct place. - T tmp; - for ( int i = num_entries - 1; i > 0; --i ) - { - if ( cmp_func(entries[i],entries[i-1]) <= 0 ) - break; - - tmp = entries[i]; - entries[i] = entries[i-1]; - entries[i-1] = tmp; - } } - - void push_back(const T& a) { append(a); } - void push_front(const T& a) { insert(a); } + void pop_front() { remove_nth(0); } void pop_back() { remove_nth(num_entries-1); } T& front() { return entries[0]; } T& back() { return entries[num_entries-1]; } + ZEEK_DEPRECATED("Remove in v3.1: Use push_front instead") + void insert(const T& a) // add at head of list + { + push_front(a); + } + + // The append method is maintained for historical/compatibility reasons. + // (It's commonly used in the event generation API) void append(const T& a) // add to end of list { - if ( num_entries == max_entries ) - resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE); - - entries[num_entries++] = a; + push_back(a); } bool remove(const T& a) // delete entry from list @@ -353,19 +282,21 @@ public: // Type traits needed for some of the std algorithms to work using value_type = T; + using pointer = T*; + using const_pointer = const T*; // Iterator support - using iterator = ListIterator; - using const_iterator = ListIterator; + using iterator = pointer; + using const_iterator = const_pointer; using reverse_iterator = std::reverse_iterator; using const_reverse_iterator = std::reverse_iterator; - iterator begin() { return { entries, 0, num_entries }; } - iterator end() { return { entries, num_entries, num_entries }; } - const_iterator begin() const { return { entries, 0, num_entries }; } - const_iterator end() const { return { entries, num_entries, num_entries }; } - const_iterator cbegin() const { return { entries, 0, num_entries }; } - const_iterator cend() const { return { entries, num_entries, num_entries }; } + iterator begin() { return entries; } + iterator end() { return entries + num_entries; } + const_iterator begin() const { return entries; } + const_iterator end() const { return entries + num_entries; } + const_iterator cbegin() const { return entries; } + const_iterator cend() const { return entries + num_entries; } reverse_iterator rbegin() { return reverse_iterator{end()}; } reverse_iterator rend() { return reverse_iterator{begin()}; } diff --git a/src/NFA.cc b/src/NFA.cc index cf2650b21d..55fdb09439 100644 --- a/src/NFA.cc +++ b/src/NFA.cc @@ -2,6 +2,8 @@ #include "zeek-config.h" +#include + #include "NFA.h" #include "EquivClass.h" @@ -52,7 +54,7 @@ NFA_State::~NFA_State() void NFA_State::AddXtionsTo(NFA_state_list* ns) { for ( int i = 0; i < xtions.length(); ++i ) - ns->append(xtions[i]); + ns->push_back(xtions[i]); } NFA_State* NFA_State::DeepCopy() @@ -90,7 +92,7 @@ NFA_state_list* NFA_State::EpsilonClosure() epsclosure = new NFA_state_list; NFA_state_list states; - states.append(this); + states.push_back(this); SetMark(this); int i; @@ -105,18 +107,18 @@ NFA_state_list* NFA_State::EpsilonClosure() NFA_State* nxt = (*x)[j]; if ( ! nxt->Mark() ) { - states.append(nxt); + states.push_back(nxt); nxt->SetMark(nxt); } } if ( ns->Accept() != NO_ACCEPT ) - epsclosure->append(ns); + epsclosure->push_back(ns); } else // Non-epsilon transition - keep it. - epsclosure->append(ns); + epsclosure->push_back(ns); } // Clear out markers. @@ -342,11 +344,14 @@ NFA_state_list* epsilon_closure(NFA_state_list* states) if ( ! closuremap.Contains(ns->ID()) ) { closuremap.Insert(ns->ID()); - closure->sortedinsert(ns, NFA_state_cmp_neg); + closure->push_back(ns); } } } + // Sort all of the closures in the list by ID + std::sort(closure->begin(), closure->end(), NFA_state_cmp_neg); + // Make it fit. closure->resize(0); @@ -355,15 +360,10 @@ NFA_state_list* epsilon_closure(NFA_state_list* states) return closure; } -int NFA_state_cmp_neg(const void* v1, const void* v2) +bool NFA_state_cmp_neg(const NFA_State* v1, const NFA_State* v2) { - const NFA_State* n1 = (const NFA_State*) v1; - const NFA_State* n2 = (const NFA_State*) v2; - - if ( n1->ID() < n2->ID() ) - return -1; - else if ( n1->ID() == n2->ID() ) - return 0; + if ( v1->ID() < v2->ID() ) + return true; else - return 1; + return false; } diff --git a/src/NFA.h b/src/NFA.h index d1efc212ad..3af4715189 100644 --- a/src/NFA.h +++ b/src/NFA.h @@ -29,7 +29,7 @@ public: explicit NFA_State(CCL* ccl); ~NFA_State() override; - void AddXtion(NFA_State* next_state) { xtions.append(next_state); } + void AddXtion(NFA_State* next_state) { xtions.push_back(next_state); } NFA_state_list* Transitions() { return &xtions; } void AddXtionsTo(NFA_state_list* ns); @@ -132,6 +132,6 @@ extern NFA_Machine* make_alternate(NFA_Machine* m1, NFA_Machine* m2); extern NFA_state_list* epsilon_closure(NFA_state_list* states); // For sorting NFA states based on their ID fields (decreasing) -extern int NFA_state_cmp_neg(const void* v1, const void* v2); +extern bool NFA_state_cmp_neg(const NFA_State* v1, const NFA_State* v2); #endif diff --git a/src/Queue.h b/src/Queue.h index 4a1a2c05e2..4f12343e6b 100644 --- a/src/Queue.h +++ b/src/Queue.h @@ -21,52 +21,6 @@ // Entries must be either a pointer to the data or nonzero data with // sizeof(data) <= sizeof(void*). -template -class QueueIterator - { - T* const entries; - int offset; - int num_entries; -public: - QueueIterator(T* entries, int offset, int num_entries) : - entries(entries), offset(offset), num_entries(num_entries) {} - bool operator==(const QueueIterator& rhs) { return entries == rhs.entries && offset == rhs.offset; } - bool operator!=(const QueueIterator& rhs) { return entries != rhs.entries || offset != rhs.offset; } - QueueIterator & operator++() { offset++; return *this; } - QueueIterator operator++(int) { auto t = *this; offset++; return t; } - QueueIterator & operator--() { offset--; return *this; } - QueueIterator operator--(int) { auto t = *this; offset--; return t; } - std::ptrdiff_t operator-(QueueIterator const& sibling) const { return offset - sibling.offset; } - QueueIterator & operator+=(int amount) { offset += amount; return *this; } - QueueIterator & operator-=(int amount) { offset -= amount; return *this; } - bool operator<(QueueIterator const&sibling) const { return offset < sibling.offset;} - bool operator<=(QueueIterator const&sibling) const { return offset <= sibling.offset; } - bool operator>(QueueIterator const&sibling) const { return offset > sibling.offset; } - bool operator>=(QueueIterator const&sibling) const { return offset >= sibling.offset; } - T& operator[](int index) - { - return entries[index]; - } - T& operator*() - { - return entries[offset]; - } - }; - -namespace std { - template - class iterator_traits > - { - public: - using difference_type = std::ptrdiff_t; - using size_type = std::size_t; - using value_type = T; - using pointer = T*; - using reference = T&; - using iterator_category = std::random_access_iterator_tag; - }; -} - template class Queue { @@ -205,19 +159,21 @@ public: // Type traits needed for some of the std algorithms to work using value_type = T; + using pointer = T*; + using const_pointer = const T*; // Iterator support - using iterator = QueueIterator; - using const_iterator = QueueIterator; + using iterator = pointer; + using const_iterator = const_pointer; using reverse_iterator = std::reverse_iterator; using const_reverse_iterator = std::reverse_iterator; - iterator begin() { return { entries, 0, num_entries }; } - iterator end() { return { entries, num_entries, num_entries }; } - const_iterator begin() const { return { entries, 0, num_entries }; } - const_iterator end() const { return { entries, num_entries, num_entries }; } - const_iterator cbegin() const { return { entries, 0, num_entries }; } - const_iterator cend() const { return { entries, num_entries, num_entries }; } + iterator begin() { return entries; } + iterator end() { return entries + num_entries; } + const_iterator begin() const { return entries; } + const_iterator end() const { return entries + num_entries; } + const_iterator cbegin() const { return entries; } + const_iterator cend() const { return entries + num_entries; } reverse_iterator rbegin() { return reverse_iterator{end()}; } reverse_iterator rend() { return reverse_iterator{begin()}; } diff --git a/src/RE.h b/src/RE.h index 3ea84636b4..23804cb6aa 100644 --- a/src/RE.h +++ b/src/RE.h @@ -64,7 +64,7 @@ public: void InsertCCL(const char* txt, CCL* ccl) { ccl_dict.Insert(txt, ccl); } int InsertCCL(CCL* ccl) { - ccl_list.append(ccl); + ccl_list.push_back(ccl); return ccl_list.length() - 1; } CCL* LookupCCL(const char* txt) { return ccl_dict.Lookup(txt); } diff --git a/src/Reporter.cc b/src/Reporter.cc index d4095a4c9f..60e883cf91 100644 --- a/src/Reporter.cc +++ b/src/Reporter.cc @@ -221,12 +221,12 @@ void Reporter::WeirdHelper(EventHandlerPtr event, Val* conn_val, file_analysis:: val_list vl(2); if ( conn_val ) - vl.append(conn_val); + vl.push_back(conn_val); else if ( f ) - vl.append(f->GetVal()->Ref()); + vl.push_back(f->GetVal()->Ref()); if ( addl ) - vl.append(new StringVal(addl)); + vl.push_back(new StringVal(addl)); va_list ap; va_start(ap, fmt_name); @@ -491,15 +491,15 @@ void Reporter::DoLog(const char* prefix, EventHandlerPtr event, FILE* out, val_list vl(vl_size); if ( time ) - vl.append(new Val(network_time ? network_time : current_time(), TYPE_TIME)); + vl.push_back(new Val(network_time ? network_time : current_time(), TYPE_TIME)); - vl.append(new StringVal(buffer)); + vl.push_back(new StringVal(buffer)); if ( location ) - vl.append(new StringVal(loc_str.c_str())); + vl.push_back(new StringVal(loc_str.c_str())); if ( conn ) - vl.append(conn->BuildConnVal()); + vl.push_back(conn->BuildConnVal()); if ( addl ) std::copy(addl->begin(), addl->end(), std::back_inserter(vl)); diff --git a/src/Rule.cc b/src/Rule.cc index c9f3734692..d05c3ee779 100644 --- a/src/Rule.cc +++ b/src/Rule.cc @@ -76,9 +76,9 @@ void Rule::AddPattern(const char* str, Rule::PatternType type, p->id = ++pattern_counter; p->offset = offset; p->depth = depth; - patterns.append(p); + patterns.push_back(p); - rule_table.append(this); + rule_table.push_back(this); } void Rule::AddRequires(const char* id, bool opposite_direction, bool negate) @@ -89,7 +89,7 @@ void Rule::AddRequires(const char* id, bool opposite_direction, bool negate) p->opposite_dir = opposite_direction; p->negate = negate; - preconds.append(p); + preconds.push_back(p); } void Rule::SortHdrTests() diff --git a/src/Rule.h b/src/Rule.h index 0ac29d07fc..cd08d4d93e 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -40,9 +40,9 @@ public: bool Active() { return active; } void SetActiveStatus(bool new_status) { active = new_status; } - void AddAction(RuleAction* act) { actions.append(act); } - void AddCondition(RuleCondition* cond) { conditions.append(cond); } - void AddHdrTest(RuleHdrTest* hdr_test) { hdr_tests.append(hdr_test); } + void AddAction(RuleAction* act) { actions.push_back(act); } + void AddCondition(RuleCondition* cond) { conditions.push_back(cond); } + void AddHdrTest(RuleHdrTest* hdr_test) { hdr_tests.push_back(hdr_test); } void AddPattern(const char* str, Rule::PatternType type, uint32 offset = 0, uint32 depth = INT_MAX); void AddRequires(const char* id, bool opposite_direction, bool negate); diff --git a/src/RuleCondition.cc b/src/RuleCondition.cc index 6cd2e9e4c1..2bb7e1d0f3 100644 --- a/src/RuleCondition.cc +++ b/src/RuleCondition.cc @@ -163,12 +163,12 @@ bool RuleConditionEval::DoMatch(Rule* rule, RuleEndpointState* state, // Call function with a signature_state value as argument. val_list args(2); - args.append(rule_matcher->BuildRuleStateValue(rule, state)); + args.push_back(rule_matcher->BuildRuleStateValue(rule, state)); if ( data ) - args.append(new StringVal(len, (const char*) data)); + args.push_back(new StringVal(len, (const char*) data)); else - args.append(val_mgr->GetEmptyString()); + args.push_back(val_mgr->GetEmptyString()); bool result = 0; diff --git a/src/RuleMatcher.cc b/src/RuleMatcher.cc index 2e0fcfd98e..90fb13495c 100644 --- a/src/RuleMatcher.cc +++ b/src/RuleMatcher.cc @@ -84,7 +84,7 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h) vals = new maskedvalue_list; for ( const auto& val : *h.vals ) - vals->append(new MaskedValue(*val)); + vals->push_back(new MaskedValue(*val)); prefix_vals = h.prefix_vals; @@ -96,7 +96,7 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h) copied_set->re = 0; copied_set->ids = orig_set->ids; for ( const auto& pattern : orig_set->patterns ) - copied_set->patterns.append(copy_string(pattern)); + copied_set->patterns.push_back(copy_string(pattern)); delete copied_set; // TODO: Why do we create copied_set only to then // never use it? @@ -273,7 +273,7 @@ void RuleMatcher::AddRule(Rule* rule) return; } - rules.append(rule); + rules.push_back(rule); rules_by_id.Insert(rule->ID(), rule); } @@ -303,7 +303,7 @@ void RuleMatcher::InsertRuleIntoTree(Rule* r, int testnr, } pc->rule = pc_rule; - pc_rule->dependents.append(r); + pc_rule->dependents.push_back(r); } // All tests in tree already? @@ -349,7 +349,7 @@ void RuleMatcher::BuildRegEx(RuleHdrTest* hdr_test, string_list* exprs, { for ( const auto& p : r->patterns ) { - exprs[p->type].append(p->pattern); + exprs[p->type].push_back(p->pattern); ids[p->type].push_back(p->id); } } @@ -374,7 +374,7 @@ void RuleMatcher::BuildRegEx(RuleHdrTest* hdr_test, string_list* exprs, { loop_over_list(child_exprs[i], j) { - exprs[i].append(child_exprs[i][j]); + exprs[i].push_back(child_exprs[i][j]); ids[i].push_back(child_ids[i][j]); } } @@ -406,7 +406,7 @@ void RuleMatcher::BuildPatternSets(RuleHdrTest::pattern_set_list* dst, { if ( i < exprs.length() ) { - group_exprs.append(exprs[i]); + group_exprs.push_back(exprs[i]); group_ids.push_back(ids[i]); } @@ -419,7 +419,7 @@ void RuleMatcher::BuildPatternSets(RuleHdrTest::pattern_set_list* dst, set->re->CompileSet(group_exprs, group_ids); set->patterns = group_exprs; set->ids = group_ids; - dst->append(set); + dst->push_back(set); group_exprs.clear(); group_ids.clear(); @@ -585,7 +585,7 @@ RuleFileMagicState* RuleMatcher::InitFileMagic() const assert(set->re); RuleFileMagicState::Matcher* m = new RuleFileMagicState::Matcher; m->state = new RE_Match_State(set->re); - state->matchers.append(m); + state->matchers.push_back(m); } // Save some memory. @@ -706,7 +706,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer, new RuleEndpointState(analyzer, from_orig, opposite, pia); rule_hdr_test_list tests; - tests.append(root); + tests.push_back(root); loop_over_list(tests, h) { @@ -719,7 +719,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer, // Current HdrTest node matches the packet, so remember it // if we have any rules on it. if ( hdr_test->pattern_rules || hdr_test->pure_rules ) - state->hdr_tests.append(hdr_test); + state->hdr_tests.push_back(hdr_test); // Evaluate all rules on this node which don't contain // any patterns. @@ -741,7 +741,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer, new RuleEndpointState::Matcher; m->state = new RE_Match_State(set->re); m->type = (Rule::PatternType) i; - state->matchers.append(m); + state->matchers.push_back(m); } } } @@ -795,7 +795,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer, } if ( match ) - tests.append(h); + tests.push_back(h); } } } @@ -918,9 +918,9 @@ void RuleMatcher::Match(RuleEndpointState* state, Rule::PatternType type, // Remember that all patterns have matched. if ( ! state->matched_by_patterns.is_member(r) ) { - state->matched_by_patterns.append(r); + state->matched_by_patterns.push_back(r); BroString* s = new BroString(data, data_len, 0); - state->matched_text.append(s); + state->matched_text.push_back(s); } DBG_LOG(DBG_RULES, "And has not already fired"); @@ -1314,7 +1314,7 @@ static bool val_to_maskedval(Val* v, maskedvalue_list* append_to, return false; } - append_to->append(mval); + append_to->push_back(mval); return true; } diff --git a/src/Scope.cc b/src/Scope.cc index 56a9968417..20492a3f15 100644 --- a/src/Scope.cc +++ b/src/Scope.cc @@ -194,13 +194,13 @@ ID* install_ID(const char* name, const char* module_name, void push_existing_scope(Scope* scope) { - scopes.append(scope); + scopes.push_back(scope); } void push_scope(ID* id, attr_list* attrs) { top_scope = new Scope(id, attrs); - scopes.append(top_scope); + scopes.push_back(top_scope); } Scope* pop_scope() diff --git a/src/Scope.h b/src/Scope.h index 4dfb9bb0e5..954e0a57cc 100644 --- a/src/Scope.h +++ b/src/Scope.h @@ -44,7 +44,7 @@ public: id_list* GetInits(); // Adds a variable to the list. - void AddInit(ID* id) { inits->append(id); } + void AddInit(ID* id) { inits->push_back(id); } void Describe(ODesc* d) const override; diff --git a/src/Type.cc b/src/Type.cc index 4fec404b1b..2591b7992e 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -226,7 +226,7 @@ void TypeList::Append(BroType* t) if ( pure_type && ! same_type(t, pure_type) ) reporter->InternalError("pure type-list violation"); - types.append(t); + types.push_back(t); } void TypeList::AppendEvenIfNotPure(BroType* t) @@ -237,7 +237,7 @@ void TypeList::AppendEvenIfNotPure(BroType* t) pure_type = 0; } - types.append(t); + types.push_back(t); } void TypeList::Describe(ODesc* d) const @@ -714,7 +714,7 @@ RecordType* RecordType::ShallowClone() { auto pass = new type_decl_list(); for ( const auto& type : *types ) - pass->append(new TypeDecl(*type)); + pass->push_back(new TypeDecl(*type)); return new RecordType(pass); } @@ -853,7 +853,7 @@ const char* RecordType::AddFields(type_decl_list* others, attr_list* attr) td->attrs->AddAttr(new Attr(ATTR_LOG)); } - types->append(td); + types->push_back(td); } delete others; @@ -1883,7 +1883,7 @@ BroType* merge_types(const BroType* t1, const BroType* t2) return 0; } - tdl3->append(new TypeDecl(tdl3_i, copy_string(td1->id))); + tdl3->push_back(new TypeDecl(tdl3_i, copy_string(td1->id))); } return new RecordType(tdl3); diff --git a/src/Val.cc b/src/Val.cc index e91f31704b..c84dd426f0 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -1215,7 +1215,7 @@ void ListVal::Append(Val* v) Internal("heterogeneous list in ListVal::Append"); } - vals.append(v); + vals.push_back(v); type->AsTypeList()->Append(v->Type()->Ref()); } @@ -1770,7 +1770,7 @@ Val* TableVal::Default(Val* index) const val_list* vl0 = index->AsListVal()->Vals(); vl = val_list(vl0->length()); for ( const auto& v : *vl0 ) - vl.append(v->Ref()); + vl.push_back(v->Ref()); } else { @@ -2478,7 +2478,7 @@ RecordVal::RecordVal(RecordType* t, bool init_fields) : Val(t) def = new VectorVal(type->AsVectorType()); } - vl->append(def ? def->Ref() : 0); + vl->push_back(def ? def->Ref() : 0); Unref(def); } @@ -2697,7 +2697,7 @@ Val* RecordVal::DoClone(CloneState* state) for ( const auto& vlv : *val.val_list_val ) { Val* v = vlv ? vlv->Clone(state) : nullptr; - rv->val.val_list_val->append(v); + rv->val.val_list_val->push_back(v); } return rv; diff --git a/src/analyzer/Analyzer.cc b/src/analyzer/Analyzer.cc index 95d0322459..d0d3731463 100644 --- a/src/analyzer/Analyzer.cc +++ b/src/analyzer/Analyzer.cc @@ -713,7 +713,7 @@ void Analyzer::AddTimer(analyzer_timer_func timer, double t, AnalyzerTimer(this, timer, t, do_expire, type); Conn()->GetTimerMgr()->Add(analyzer_timer); - timers.append(analyzer_timer); + timers.push_back(analyzer_timer); } void Analyzer::RemoveTimer(Timer* t) diff --git a/src/analyzer/protocol/irc/IRC.cc b/src/analyzer/protocol/irc/IRC.cc index c5db109434..395b1c037d 100644 --- a/src/analyzer/protocol/irc/IRC.cc +++ b/src/analyzer/protocol/irc/IRC.cc @@ -395,11 +395,11 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) } val_list vl(6); - vl.append(BuildConnVal()); - vl.append(val_mgr->GetBool(orig)); - vl.append(new StringVal(parts[0].c_str())); - vl.append(new StringVal(parts[1].c_str())); - vl.append(new StringVal(parts[2].c_str())); + vl.push_back(BuildConnVal()); + vl.push_back(val_mgr->GetBool(orig)); + vl.push_back(new StringVal(parts[0].c_str())); + vl.push_back(new StringVal(parts[1].c_str())); + vl.push_back(new StringVal(parts[2].c_str())); parts.erase(parts.begin(), parts.begin() + 4); @@ -410,7 +410,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) if ( real_name[0] == ':' ) real_name = real_name.substr(1); - vl.append(new StringVal(real_name.c_str())); + vl.push_back(new StringVal(real_name.c_str())); ConnectionEventFast(irc_whois_user_line, std::move(vl)); } @@ -740,20 +740,20 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) // extract username and real name vector parts = SplitWords(params, ' '); val_list vl(6); - vl.append(BuildConnVal()); - vl.append(val_mgr->GetBool(orig)); + vl.push_back(BuildConnVal()); + vl.push_back(val_mgr->GetBool(orig)); if ( parts.size() > 0 ) - vl.append(new StringVal(parts[0].c_str())); - else vl.append(val_mgr->GetEmptyString()); + vl.push_back(new StringVal(parts[0].c_str())); + else vl.push_back(val_mgr->GetEmptyString()); if ( parts.size() > 1 ) - vl.append(new StringVal(parts[1].c_str())); - else vl.append(val_mgr->GetEmptyString()); + vl.push_back(new StringVal(parts[1].c_str())); + else vl.push_back(val_mgr->GetEmptyString()); if ( parts.size() > 2 ) - vl.append(new StringVal(parts[2].c_str())); - else vl.append(val_mgr->GetEmptyString()); + vl.push_back(new StringVal(parts[2].c_str())); + else vl.push_back(val_mgr->GetEmptyString()); string realname; for ( unsigned int i = 3; i < parts.size(); i++ ) @@ -764,7 +764,7 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) } const char* name = realname.c_str(); - vl.append(new StringVal(*name == ':' ? name + 1 : name)); + vl.push_back(new StringVal(*name == ':' ? name + 1 : name)); ConnectionEventFast(irc_user_message, std::move(vl)); } @@ -798,11 +798,11 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) } val_list vl(6); - vl.append(BuildConnVal()); - vl.append(val_mgr->GetBool(orig)); - vl.append(new StringVal(prefix.c_str())); - vl.append(new StringVal(parts[0].c_str())); - vl.append(new StringVal(parts[1].c_str())); + vl.push_back(BuildConnVal()); + vl.push_back(val_mgr->GetBool(orig)); + vl.push_back(new StringVal(prefix.c_str())); + vl.push_back(new StringVal(parts[0].c_str())); + vl.push_back(new StringVal(parts[1].c_str())); if ( parts.size() > 2 ) { string comment = parts[2]; @@ -812,10 +812,10 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig) if ( comment[0] == ':' ) comment = comment.substr(1); - vl.append(new StringVal(comment.c_str())); + vl.push_back(new StringVal(comment.c_str())); } else - vl.append(val_mgr->GetEmptyString()); + vl.push_back(val_mgr->GetEmptyString()); ConnectionEventFast(irc_kick_message, std::move(vl)); } diff --git a/src/analyzer/protocol/login/RSH.cc b/src/analyzer/protocol/login/RSH.cc index 9485e6269e..7fc5f932e0 100644 --- a/src/analyzer/protocol/login/RSH.cc +++ b/src/analyzer/protocol/login/RSH.cc @@ -170,18 +170,18 @@ void Rsh_Analyzer::DeliverStream(int len, const u_char* data, bool orig) val_list vl(4 + orig); const char* line = (const char*) data; line = skip_whitespace(line); - vl.append(BuildConnVal()); - vl.append(client_name ? client_name->Ref() : new StringVal("")); - vl.append(username ? username->Ref() : new StringVal("")); - vl.append(new StringVal(line)); + vl.push_back(BuildConnVal()); + vl.push_back(client_name ? client_name->Ref() : new StringVal("")); + vl.push_back(username ? username->Ref() : new StringVal("")); + vl.push_back(new StringVal(line)); if ( orig ) { if ( contents_orig->RshSaveState() == RSH_SERVER_USER_NAME ) // First input - vl.append(val_mgr->GetTrue()); + vl.push_back(val_mgr->GetTrue()); else - vl.append(val_mgr->GetFalse()); + vl.push_back(val_mgr->GetFalse()); ConnectionEventFast(rsh_request, std::move(vl)); } diff --git a/src/analyzer/protocol/pop3/POP3.cc b/src/analyzer/protocol/pop3/POP3.cc index 62b57674e1..50ab3142dc 100644 --- a/src/analyzer/protocol/pop3/POP3.cc +++ b/src/analyzer/protocol/pop3/POP3.cc @@ -926,12 +926,12 @@ void POP3_Analyzer::POP3Event(EventHandlerPtr event, bool is_orig, val_list vl(2 + (bool)arg1 + (bool)arg2); - vl.append(BuildConnVal()); - vl.append(val_mgr->GetBool(is_orig)); + vl.push_back(BuildConnVal()); + vl.push_back(val_mgr->GetBool(is_orig)); if ( arg1 ) - vl.append(new StringVal(arg1)); + vl.push_back(new StringVal(arg1)); if ( arg2 ) - vl.append(new StringVal(arg2)); + vl.push_back(new StringVal(arg2)); ConnectionEventFast(event, std::move(vl)); } diff --git a/src/analyzer/protocol/rpc/MOUNT.cc b/src/analyzer/protocol/rpc/MOUNT.cc index 643aa21891..b41b8936d3 100644 --- a/src/analyzer/protocol/rpc/MOUNT.cc +++ b/src/analyzer/protocol/rpc/MOUNT.cc @@ -168,10 +168,10 @@ int MOUNT_Interp::RPC_BuildReply(RPC_CallInfo* c, BifEnum::rpc_status rpc_status start_time, last_time, reply_len, (bool)request + (bool)reply); if ( request ) - vl.append(request); + vl.push_back(request); if ( reply ) - vl.append(reply); + vl.push_back(reply); analyzer->ConnectionEventFast(event, std::move(vl)); } @@ -189,7 +189,7 @@ val_list MOUNT_Interp::event_common_vl(RPC_CallInfo *c, // Returns a new val_list that already has a conn_val, and mount3_info. // These are the first parameters for each mount_* event ... val_list vl(2 + extra_elements); - vl.append(analyzer->BuildConnVal()); + vl.push_back(analyzer->BuildConnVal()); VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType()); for (size_t i = 0; i < c->AuxGIDs().size(); ++i) @@ -212,7 +212,7 @@ val_list MOUNT_Interp::event_common_vl(RPC_CallInfo *c, info->Assign(11, new StringVal(c->MachineName())); info->Assign(12, auxgids); - vl.append(info); + vl.push_back(info); return vl; } diff --git a/src/analyzer/protocol/rpc/NFS.cc b/src/analyzer/protocol/rpc/NFS.cc index 9eb9e88d95..e132669418 100644 --- a/src/analyzer/protocol/rpc/NFS.cc +++ b/src/analyzer/protocol/rpc/NFS.cc @@ -280,10 +280,10 @@ int NFS_Interp::RPC_BuildReply(RPC_CallInfo* c, BifEnum::rpc_status rpc_status, start_time, last_time, reply_len, (bool)request + (bool)reply); if ( request ) - vl.append(request); + vl.push_back(request); if ( reply ) - vl.append(reply); + vl.push_back(reply); analyzer->ConnectionEventFast(event, std::move(vl)); } @@ -325,7 +325,7 @@ val_list NFS_Interp::event_common_vl(RPC_CallInfo *c, BifEnum::rpc_status rpc_st // Returns a new val_list that already has a conn_val, and nfs3_info. // These are the first parameters for each nfs_* event ... val_list vl(2 + extra_elements); - vl.append(analyzer->BuildConnVal()); + vl.push_back(analyzer->BuildConnVal()); VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType()); for ( size_t i = 0; i < c->AuxGIDs().size(); ++i ) @@ -346,7 +346,7 @@ val_list NFS_Interp::event_common_vl(RPC_CallInfo *c, BifEnum::rpc_status rpc_st info->Assign(11, new StringVal(c->MachineName())); info->Assign(12, auxgids); - vl.append(info); + vl.push_back(info); return vl; } diff --git a/src/analyzer/protocol/rpc/Portmap.cc b/src/analyzer/protocol/rpc/Portmap.cc index eb26991921..4115b20f0f 100644 --- a/src/analyzer/protocol/rpc/Portmap.cc +++ b/src/analyzer/protocol/rpc/Portmap.cc @@ -284,20 +284,20 @@ void PortmapperInterp::Event(EventHandlerPtr f, Val* request, BifEnum::rpc_statu val_list vl; - vl.append(analyzer->BuildConnVal()); + vl.push_back(analyzer->BuildConnVal()); if ( status == BifEnum::RPC_SUCCESS ) { if ( request ) - vl.append(request); + vl.push_back(request); if ( reply ) - vl.append(reply); + vl.push_back(reply); } else { - vl.append(BifType::Enum::rpc_status->GetVal(status)); + vl.push_back(BifType::Enum::rpc_status->GetVal(status)); if ( request ) - vl.append(request); + vl.push_back(request); } analyzer->ConnectionEventFast(f, std::move(vl)); diff --git a/src/broker/Manager.cc b/src/broker/Manager.cc index 4f7d7c3aae..940adb4719 100644 --- a/src/broker/Manager.cc +++ b/src/broker/Manager.cc @@ -1039,7 +1039,7 @@ void Manager::ProcessEvent(const broker::topic& topic, broker::zeek::Event ev) auto val = data_to_val(std::move(args[i]), expected_type); if ( val ) - vl.append(val); + vl.push_back(val); else { reporter->Warning("failed to convert remote event '%s' arg #%d," diff --git a/src/broker/messaging.bif b/src/broker/messaging.bif index 06eae5068b..ff8bb4ea73 100644 --- a/src/broker/messaging.bif +++ b/src/broker/messaging.bif @@ -103,7 +103,7 @@ function Broker::publish%(topic: string, ...%): bool val_list args(bif_args->length() - 1); for ( auto i = 1; i < bif_args->length(); ++i ) - args.append((*bif_args)[i]); + args.push_back((*bif_args)[i]); auto rval = publish_event_args(args, topic->AsString(), frame); return val_mgr->GetBool(rval); @@ -196,7 +196,7 @@ function Cluster::publish_rr%(pool: Pool, key: string, ...%): bool val_list args(bif_args->length() - 2); for ( auto i = 2; i < bif_args->length(); ++i ) - args.append((*bif_args)[i]); + args.push_back((*bif_args)[i]); auto rval = publish_event_args(args, topic->AsString(), frame); Unref(topic); @@ -237,7 +237,7 @@ function Cluster::publish_hrw%(pool: Pool, key: any, ...%): bool val_list args(bif_args->length() - 2); for ( auto i = 2; i < bif_args->length(); ++i ) - args.append((*bif_args)[i]); + args.push_back((*bif_args)[i]); auto rval = publish_event_args(args, topic->AsString(), frame); Unref(topic); diff --git a/src/file_analysis/analyzer/x509/OCSP.cc b/src/file_analysis/analyzer/x509/OCSP.cc index 6833d5d8de..b1b24ec95d 100644 --- a/src/file_analysis/analyzer/x509/OCSP.cc +++ b/src/file_analysis/analyzer/x509/OCSP.cc @@ -87,10 +87,10 @@ bool ocsp_add_cert_id(const OCSP_CERTID* cert_id, val_list* vl, BIO* bio) if ( ! res ) { reporter->Weird("OpenSSL failed to get OCSP_CERTID info"); - vl->append(val_mgr->GetEmptyString()); - vl->append(val_mgr->GetEmptyString()); - vl->append(val_mgr->GetEmptyString()); - vl->append(val_mgr->GetEmptyString()); + vl->push_back(val_mgr->GetEmptyString()); + vl->push_back(val_mgr->GetEmptyString()); + vl->push_back(val_mgr->GetEmptyString()); + vl->push_back(val_mgr->GetEmptyString()); return false; } @@ -99,22 +99,22 @@ bool ocsp_add_cert_id(const OCSP_CERTID* cert_id, val_list* vl, BIO* bio) i2a_ASN1_OBJECT(bio, hash_alg); int len = BIO_read(bio, buf, sizeof(buf)); - vl->append(new StringVal(len, buf)); + vl->push_back(new StringVal(len, buf)); BIO_reset(bio); i2a_ASN1_STRING(bio, issuer_name_hash, V_ASN1_OCTET_STRING); len = BIO_read(bio, buf, sizeof(buf)); - vl->append(new StringVal(len, buf)); + vl->push_back(new StringVal(len, buf)); BIO_reset(bio); i2a_ASN1_STRING(bio, issuer_key_hash, V_ASN1_OCTET_STRING); len = BIO_read(bio, buf, sizeof(buf)); - vl->append(new StringVal(len, buf)); + vl->push_back(new StringVal(len, buf)); BIO_reset(bio); i2a_ASN1_INTEGER(bio, serial_number); len = BIO_read(bio, buf, sizeof(buf)); - vl->append(new StringVal(len, buf)); + vl->push_back(new StringVal(len, buf)); BIO_reset(bio); return true; @@ -436,7 +436,7 @@ void file_analysis::OCSP::ParseRequest(OCSP_REQUEST* req) for ( int i=0; iGetVal()->Ref()); + rvl.push_back(GetFile()->GetVal()->Ref()); OCSP_ONEREQ *one_req = OCSP_request_onereq_get0(req, i); OCSP_CERTID *cert_id = OCSP_onereq_get0_id(one_req); @@ -503,26 +503,26 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) } #endif - vl.append(GetFile()->GetVal()->Ref()); - vl.append(status_val); + vl.push_back(GetFile()->GetVal()->Ref()); + vl.push_back(status_val); #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER) - vl.append(val_mgr->GetCount((uint64)ASN1_INTEGER_get(resp_data->version))); + vl.push_back(val_mgr->GetCount((uint64)ASN1_INTEGER_get(resp_data->version))); #else - vl.append(parse_basic_resp_data_version(basic_resp)); + vl.push_back(parse_basic_resp_data_version(basic_resp)); #endif // responderID if ( OCSP_RESPID_bio(basic_resp, bio) ) { len = BIO_read(bio, buf, sizeof(buf)); - vl.append(new StringVal(len, buf)); + vl.push_back(new StringVal(len, buf)); BIO_reset(bio); } else { reporter->Weird("OpenSSL failed to get OCSP responder id"); - vl.append(val_mgr->GetEmptyString()); + vl.push_back(val_mgr->GetEmptyString()); } // producedAt @@ -532,7 +532,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) produced_at = OCSP_resp_get0_produced_at(basic_resp); #endif - vl.append(new Val(GetTimeFromAsn1(produced_at, GetFile(), reporter), TYPE_TIME)); + vl.push_back(new Val(GetTimeFromAsn1(produced_at, GetFile(), reporter), TYPE_TIME)); // responses @@ -546,7 +546,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) continue; val_list rvl(10); - rvl.append(GetFile()->GetVal()->Ref()); + rvl.push_back(GetFile()->GetVal()->Ref()); // cert id const OCSP_CERTID* cert_id = nullptr; @@ -574,36 +574,36 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) reporter->Weird("OpenSSL failed to find status of OCSP response"); const char* cert_status_str = OCSP_cert_status_str(status); - rvl.append(new StringVal(strlen(cert_status_str), cert_status_str)); + rvl.push_back(new StringVal(strlen(cert_status_str), cert_status_str)); // revocation time and reason if revoked if ( status == V_OCSP_CERTSTATUS_REVOKED ) { - rvl.append(new Val(GetTimeFromAsn1(revoke_time, GetFile(), reporter), TYPE_TIME)); + rvl.push_back(new Val(GetTimeFromAsn1(revoke_time, GetFile(), reporter), TYPE_TIME)); if ( reason != OCSP_REVOKED_STATUS_NOSTATUS ) { const char* revoke_reason = OCSP_crl_reason_str(reason); - rvl.append(new StringVal(strlen(revoke_reason), revoke_reason)); + rvl.push_back(new StringVal(strlen(revoke_reason), revoke_reason)); } else - rvl.append(new StringVal(0, "")); + rvl.push_back(new StringVal(0, "")); } else { - rvl.append(new Val(0.0, TYPE_TIME)); - rvl.append(new StringVal(0, "")); + rvl.push_back(new Val(0.0, TYPE_TIME)); + rvl.push_back(new StringVal(0, "")); } if ( this_update ) - rvl.append(new Val(GetTimeFromAsn1(this_update, GetFile(), reporter), TYPE_TIME)); + rvl.push_back(new Val(GetTimeFromAsn1(this_update, GetFile(), reporter), TYPE_TIME)); else - rvl.append(new Val(0.0, TYPE_TIME)); + rvl.push_back(new Val(0.0, TYPE_TIME)); if ( next_update ) - rvl.append(new Val(GetTimeFromAsn1(next_update, GetFile(), reporter), TYPE_TIME)); + rvl.push_back(new Val(GetTimeFromAsn1(next_update, GetFile(), reporter), TYPE_TIME)); else - rvl.append(new Val(0.0, TYPE_TIME)); + rvl.push_back(new Val(0.0, TYPE_TIME)); mgr.QueueEvent(ocsp_response_certificate, std::move(rvl)); @@ -621,10 +621,10 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER) i2a_ASN1_OBJECT(bio, basic_resp->signatureAlgorithm->algorithm); len = BIO_read(bio, buf, sizeof(buf)); - vl.append(new StringVal(len, buf)); + vl.push_back(new StringVal(len, buf)); BIO_reset(bio); #else - vl.append(parse_basic_resp_sig_alg(basic_resp, bio, buf, sizeof(buf))); + vl.push_back(parse_basic_resp_sig_alg(basic_resp, bio, buf, sizeof(buf))); #endif //i2a_ASN1_OBJECT(bio, basic_resp->signature); @@ -633,7 +633,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp) //BIO_reset(bio); certs_vector = new VectorVal(internal_type("x509_opaque_vector")->AsVectorType()); - vl.append(certs_vector); + vl.push_back(certs_vector); #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER) certs = basic_resp->certs; diff --git a/src/input/Manager.cc b/src/input/Manager.cc index 59d8445aa9..46a1da1aa1 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -1825,7 +1825,7 @@ bool Manager::CallPred(Func* pred_func, const int numvals, ...) const va_list lP; va_start(lP, numvals); for ( int i = 0; i < numvals; i++ ) - vl.append( va_arg(lP, Val*) ); + vl.push_back( va_arg(lP, Val*) ); va_end(lP); @@ -1881,7 +1881,7 @@ bool Manager::SendEvent(ReaderFrontend* reader, const string& name, const int nu for ( int j = 0; j < num_vals; j++) { Val* v = ValueToVal(i, vals[j], convert_error); - vl.append(v); + vl.push_back(v); if ( v && ! convert_error && ! same_type(type->FieldType(j), v->Type()) ) { convert_error = true; @@ -1916,7 +1916,7 @@ void Manager::SendEvent(EventHandlerPtr ev, const int numvals, ...) const va_list lP; va_start(lP, numvals); for ( int i = 0; i < numvals; i++ ) - vl.append( va_arg(lP, Val*) ); + vl.push_back( va_arg(lP, Val*) ); va_end(lP); @@ -1933,7 +1933,7 @@ void Manager::SendEvent(EventHandlerPtr ev, list events) const #endif for ( list::iterator i = events.begin(); i != events.end(); i++ ) - vl.append( *i ); + vl.push_back( *i ); mgr.QueueEvent(ev, std::move(vl), SOURCE_LOCAL); } diff --git a/src/main.cc b/src/main.cc index 456ab3f813..d4d612779c 100644 --- a/src/main.cc +++ b/src/main.cc @@ -481,7 +481,7 @@ int main(int argc, char** argv) prog = argv[0]; - prefixes.append(strdup("")); // "" = "no prefix" + prefixes.push_back(strdup("")); // "" = "no prefix" char* p = zeekenv("ZEEK_PREFIXES"); @@ -537,19 +537,19 @@ int main(int argc, char** argv) break; case 'i': - interfaces.append(optarg); + interfaces.push_back(optarg); break; case 'p': - prefixes.append(optarg); + prefixes.push_back(optarg); break; case 'r': - read_files.append(optarg); + read_files.push_back(optarg); break; case 's': - rule_files.append(optarg); + rule_files.push_back(optarg); break; case 't': @@ -877,11 +877,11 @@ int main(int argc, char** argv) char* s; while ( (s = strsep(&tmp, " \t")) ) if ( *s ) - rule_files.append(s); + rule_files.push_back(s); // Append signature files defined in @load-sigs for ( size_t i = 0; i < sig_files.size(); ++i ) - rule_files.append(copy_string(sig_files[i].c_str())); + rule_files.push_back(copy_string(sig_files[i].c_str())); if ( rule_files.length() > 0 ) { diff --git a/src/option.bif b/src/option.bif index db9ad882d9..02893a5a24 100644 --- a/src/option.bif +++ b/src/option.bif @@ -17,11 +17,11 @@ static bool call_option_handlers_and_set_value(StringVal* name, ID* i, Val* val, { bool add_loc = handler_function->FType()->AsFuncType()->ArgTypes()->Types()->length() == 3; val_list vl(2 + add_loc); - vl.append(name->Ref()); - vl.append(val); + vl.push_back(name->Ref()); + vl.push_back(val); if ( add_loc ) - vl.append(location->Ref()); + vl.push_back(location->Ref()); val = handler_function->Call(&vl); // consumed by next call. if ( ! val ) diff --git a/src/parse.y b/src/parse.y index 4af53cbfdd..4fa300636c 100644 --- a/src/parse.y +++ b/src/parse.y @@ -165,7 +165,7 @@ static type_decl_list* copy_type_decl_list(type_decl_list* tdl) type_decl_list* rval = new type_decl_list(); for ( const auto& td : *tdl ) - rval->append(new TypeDecl(*td)); + rval->push_back(new TypeDecl(*td)); return rval; } @@ -180,7 +180,7 @@ static attr_list* copy_attr_list(attr_list* al) for ( const auto& a : *al ) { ::Ref(a); - rval->append(a); + rval->push_back(a); } return rval; @@ -264,7 +264,7 @@ bro: decl_list stmt_list { if ( stmts ) - stmts->AsStmtList()->Stmts().append($2); + stmts->AsStmtList()->Stmts().push_back($2); else stmts = $2; @@ -1016,7 +1016,7 @@ type_list: type_decl_list: type_decl_list type_decl { - $1->append($2); + $1->push_back($2); } | { @@ -1046,11 +1046,11 @@ formal_args: formal_args_decl_list: formal_args_decl_list ';' formal_args_decl - { $1->append($3); } + { $1->push_back($3); } | formal_args_decl_list ',' formal_args_decl - { $1->append($3); } + { $1->push_back($3); } | formal_args_decl - { $$ = new type_decl_list(); $$->append($1); } + { $$ = new type_decl_list(); $$->push_back($1); } ; formal_args_decl: @@ -1284,11 +1284,11 @@ opt_attr: attr_list: attr_list attr - { $1->append($2); } + { $1->push_back($2); } | attr { $$ = new attr_list; - $$->append($1); + $$->push_back($1); } ; @@ -1523,7 +1523,7 @@ stmt_list: stmt_list stmt { set_location(@1, @2); - $1->AsStmtList()->Stmts().append($2); + $1->AsStmtList()->Stmts().push_back($2); $1->UpdateLocationEndInfo(@2); } | @@ -1553,7 +1553,7 @@ event: case_list: case_list case - { $1->append($2); } + { $1->push_back($2); } | { $$ = new case_list; } ; @@ -1571,12 +1571,12 @@ case: case_type_list: case_type_list ',' case_type - { $1->append($3); } + { $1->push_back($3); } | case_type { $$ = new id_list; - $$->append($1); + $$->push_back($1); } ; @@ -1624,7 +1624,7 @@ for_head: false, false); id_list* loop_vars = new id_list; - loop_vars->append(loop_var); + loop_vars->push_back(loop_var); $$ = new ForStmt(loop_vars, $5); } @@ -1662,7 +1662,7 @@ for_head: val_var = install_ID($5, module, false, false); id_list* loop_vars = new id_list; - loop_vars->append(key_var); + loop_vars->push_back(key_var); $$ = new ForStmt(loop_vars, $7, val_var); } @@ -1689,11 +1689,11 @@ for_head: local_id_list: local_id_list ',' local_id - { $1->append($3); } + { $1->push_back($3); } | local_id { $$ = new id_list; - $$->append($1); + $$->push_back($1); } ; diff --git a/src/rule-parse.y b/src/rule-parse.y index 642a3fbf6d..df12bd1d9b 100644 --- a/src/rule-parse.y +++ b/src/rule-parse.y @@ -166,7 +166,7 @@ rule_attr: val->val = proto; val->mask = 0xffffffff; - vallist->append(val); + vallist->push_back(val); // offset & size params are dummies, actual next proto value in // header is retrieved dynamically via IP_Hdr::NextProto() @@ -259,7 +259,7 @@ hdr_expr: val->val = $8.val; val->mask = $6; - vallist->append(val); + vallist->push_back(val); $$ = new RuleHdrTest($1, $3.offset, $3.len, (RuleHdrTest::Comp) $7, vallist); @@ -274,14 +274,14 @@ hdr_expr: value_list: value_list ',' value - { $1->append(new MaskedValue($3)); $$ = $1; } + { $1->push_back(new MaskedValue($3)); $$ = $1; } | value_list ',' ranged_value { int numVals = $3->length(); for ( int idx = 0; idx < numVals; idx++ ) { MaskedValue* val = (*$3)[idx]; - $1->append(val); + $1->push_back(val); } $$ = $1; } @@ -290,7 +290,7 @@ value_list: | value { $$ = new maskedvalue_list(); - $$->append(new MaskedValue($1)); + $$->push_back(new MaskedValue($1)); } | ranged_value { @@ -344,7 +344,7 @@ ranged_value: MaskedValue* masked = new MaskedValue(); masked->val = val; masked->mask = 0xffffffff; - $$->append(masked); + $$->push_back(masked); } } ; diff --git a/src/scan.l b/src/scan.l index 926826fdd4..ce389bb9fd 100644 --- a/src/scan.l +++ b/src/scan.l @@ -682,11 +682,11 @@ static int load_files(const char* orig_file) // was done when we're finished processing it. if ( ! did_module_restore ) { - file_stack.append(new FileInfo(current_module)); + file_stack.push_back(new FileInfo(current_module)); did_module_restore = true; } else - file_stack.append(new FileInfo); + file_stack.push_back(new FileInfo); zeekygen_mgr->Script(file_path); @@ -839,7 +839,7 @@ void add_essential_input_file(const char* file) if ( ! filename ) (void) load_files(file); else - essential_input_files.append(copy_string(file)); + essential_input_files.push_back(copy_string(file)); } void add_input_file(const char* file) @@ -850,7 +850,7 @@ void add_input_file(const char* file) if ( ! filename ) (void) load_files(file); else - input_files.append(copy_string(file)); + input_files.push_back(copy_string(file)); } void add_input_file_at_front(const char* file) @@ -861,7 +861,7 @@ void add_input_file_at_front(const char* file) if ( ! filename ) (void) load_files(file); else - input_files.insert(copy_string(file)); + input_files.push_front(copy_string(file)); } void add_to_name_list(char* s, char delim, name_list& nl) @@ -872,7 +872,7 @@ void add_to_name_list(char* s, char delim, name_list& nl) if ( s_delim ) *s_delim = 0; - nl.append(copy_string(s)); + nl.push_back(copy_string(s)); if ( s_delim ) s = s_delim + 1; diff --git a/src/zeek.bif b/src/zeek.bif index 9e934b0d4b..a51cfe8408 100644 --- a/src/zeek.bif +++ b/src/zeek.bif @@ -1335,8 +1335,8 @@ bool sort_function(Val* a, Val* b) return 1; val_list sort_func_args; - sort_func_args.append(a->Ref()); - sort_func_args.append(b->Ref()); + sort_func_args.push_back(a->Ref()); + sort_func_args.push_back(b->Ref()); Val* result = sort_function_comp->Call(&sort_func_args); int int_result = result->CoerceToInt();