Merge branch 'master' of github.com:zeek/zeek

This commit is contained in:
Johanna Amann 2019-07-22 12:46:04 -07:00
commit ff4845aa80
43 changed files with 275 additions and 363 deletions

20
CHANGES
View file

@ -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 2.6-635 | 2019-07-22 10:58:56 -0700
* Add DPD::max_violations option * Add DPD::max_violations option

5
NEWS
View file

@ -576,6 +576,8 @@ Removed Functionality
- Removed the BackDoor analyzer. - Removed the BackDoor analyzer.
- Removed ``List::sortedinsert`` from the C++ API.
Deprecated Functionality Deprecated Functionality
------------------------ ------------------------
@ -593,6 +595,9 @@ Deprecated Functionality
- The ``bro_is_terminating`` and ``bro_version`` function are deprecated and - The ``bro_is_terminating`` and ``bro_version`` function are deprecated and
replaced by functions named ``zeek_is_terminating`` and ``zeek_version``. 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 Bro 2.6
======= =======

View file

@ -1 +1 @@
2.6-635 2.6-647

View file

@ -168,7 +168,7 @@ void Attributes::AddAttr(Attr* attr)
// We overwrite old attributes by deleting them first. // We overwrite old attributes by deleting them first.
RemoveAttr(attr->Tag()); RemoveAttr(attr->Tag());
attrs->append(attr); attrs->push_back(attr);
Ref(attr); Ref(attr);
// We only check the attribute after we've added it, to facilitate // 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. // those attributes only have meaning for a redefinable value.
if ( (attr->Tag() == ATTR_ADD_FUNC || attr->Tag() == ATTR_DEL_FUNC) && if ( (attr->Tag() == ATTR_ADD_FUNC || attr->Tag() == ATTR_DEL_FUNC) &&
! FindAttr(ATTR_REDEF) ) ! FindAttr(ATTR_REDEF) )
attrs->append(new Attr(ATTR_REDEF)); attrs->push_back(new Attr(ATTR_REDEF));
// For DEFAULT, add an implicit OPTIONAL. // For DEFAULT, add an implicit OPTIONAL.
if ( attr->Tag() == ATTR_DEFAULT && ! FindAttr(ATTR_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) void Attributes::AddAttrs(Attributes* a)

View file

@ -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); Timer* conn_timer = new ConnectionTimer(this, timer, t, do_expire, type);
GetTimerMgr()->Add(conn_timer); GetTimerMgr()->Add(conn_timer);
timers.append(conn_timer); timers.push_back(conn_timer);
} }
void Connection::RemoveTimer(Timer* t) void Connection::RemoveTimer(Timer* t)

View file

@ -402,7 +402,7 @@ DFA_Machine::DFA_Machine(NFA_Machine* n, EquivClass* arg_ec)
dfa_state_cache = new DFA_State_Cache(); dfa_state_cache = new DFA_State_Cache();
NFA_state_list* ns = new NFA_state_list; NFA_state_list* ns = new NFA_state_list;
ns->append(n->FirstState()); ns->push_back(n->FirstState());
if ( ns->length() > 0 ) if ( ns->length() > 0 )
{ {

View file

@ -536,8 +536,8 @@ TableVal* DNS_Mgr::LookupHost(const char* name)
// Not found, or priming. // Not found, or priming.
switch ( mode ) { switch ( mode ) {
case DNS_PRIME: case DNS_PRIME:
requests.append(new DNS_Mgr_Request(name, AF_INET, false)); requests.push_back(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_INET6, false));
return empty_addr_set(); return empty_addr_set();
case DNS_FORCE: case DNS_FORCE:
@ -545,8 +545,8 @@ TableVal* DNS_Mgr::LookupHost(const char* name)
return 0; return 0;
case DNS_DEFAULT: case DNS_DEFAULT:
requests.append(new DNS_Mgr_Request(name, AF_INET, false)); requests.push_back(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_INET6, false));
Resolve(); Resolve();
return LookupHost(name); return LookupHost(name);
@ -581,7 +581,7 @@ Val* DNS_Mgr::LookupAddr(const IPAddr& addr)
// Not found, or priming. // Not found, or priming.
switch ( mode ) { switch ( mode ) {
case DNS_PRIME: case DNS_PRIME:
requests.append(new DNS_Mgr_Request(addr)); requests.push_back(new DNS_Mgr_Request(addr));
return new StringVal("<none>"); return new StringVal("<none>");
case DNS_FORCE: case DNS_FORCE:
@ -590,7 +590,7 @@ Val* DNS_Mgr::LookupAddr(const IPAddr& addr)
return 0; return 0;
case DNS_DEFAULT: case DNS_DEFAULT:
requests.append(new DNS_Mgr_Request(addr)); requests.push_back(new DNS_Mgr_Request(addr));
Resolve(); Resolve();
return LookupAddr(addr); return LookupAddr(addr);

View file

@ -179,7 +179,7 @@ void* Dictionary::Insert(void* key, int key_size, hash_t hash, void* val,
delete new_entry; delete new_entry;
} }
else if ( order ) else if ( order )
order->append(new_entry); order->push_back(new_entry);
// Resize logic. // Resize logic.
if ( tbl2 ) if ( tbl2 )
@ -470,7 +470,7 @@ void* Dictionary::Insert(DictEntry* new_entry, int copy_key)
// We happen to know (:-() that appending is more efficient // We happen to know (:-() that appending is more efficient
// on lists than prepending. // on lists than prepending.
chain->append(new_entry); chain->push_back(new_entry);
++cumulative_entries; ++cumulative_entries;
if ( *max_num_entries_ptr < ++*num_entries_ptr ) 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 ) for ( const auto& c : cookies )
{ {
if ( h < (unsigned int) c->bucket ) if ( h < (unsigned int) c->bucket )
c->inserted.append(new_entry); c->inserted.push_back(new_entry);
} }
return 0; return 0;

View file

@ -113,7 +113,7 @@ public:
// removed. (We don't get this for free, so only use it if // removed. (We don't get this for free, so only use it if
// necessary.) // necessary.)
void MakeRobustCookie(IterCookie* cookie) void MakeRobustCookie(IterCookie* cookie)
{ cookies.append(cookie); } { cookies.push_back(cookie); }
// Remove all entries. // Remove all entries.
void Clear(); void Clear();

View file

@ -25,7 +25,7 @@ EventRegistry::string_list* EventRegistry::Match(RE_Matcher* pattern)
while ( (v = handlers.NextEntry(k, c)) ) while ( (v = handlers.NextEntry(k, c)) )
{ {
if ( v->LocalHandler() && pattern->MatchExactly(v->Name()) ) if ( v->LocalHandler() && pattern->MatchExactly(v->Name()) )
names->append(v->Name()); names->push_back(v->Name());
delete k; delete k;
} }
@ -44,7 +44,7 @@ EventRegistry::string_list* EventRegistry::UnusedHandlers()
while ( (v = handlers.NextEntry(k, c)) ) while ( (v = handlers.NextEntry(k, c)) )
{ {
if ( v->LocalHandler() && ! v->Used() ) if ( v->LocalHandler() && ! v->Used() )
names->append(v->Name()); names->push_back(v->Name());
delete k; delete k;
} }
@ -63,7 +63,7 @@ EventRegistry::string_list* EventRegistry::UsedHandlers()
while ( (v = handlers.NextEntry(k, c)) ) while ( (v = handlers.NextEntry(k, c)) )
{ {
if ( v->LocalHandler() && v->Used() ) if ( v->LocalHandler() && v->Used() )
names->append(v->Name()); names->push_back(v->Name());
delete k; delete k;
} }
@ -81,7 +81,7 @@ EventRegistry::string_list* EventRegistry::AllHandlers()
EventHandler* v; EventHandler* v;
while ( (v = handlers.NextEntry(k, c)) ) while ( (v = handlers.NextEntry(k, c)) )
{ {
names->append(v->Name()); names->push_back(v->Name());
delete k; delete k;
} }

View file

@ -3039,7 +3039,7 @@ RecordConstructorExpr::RecordConstructorExpr(ListExpr* constructor_list)
FieldAssignExpr* field = (FieldAssignExpr*) e; FieldAssignExpr* field = (FieldAssignExpr*) e;
BroType* field_type = field->Type()->Ref(); BroType* field_type = field->Type()->Ref();
char* field_name = copy_string(field->FieldName()); 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)); SetType(new RecordType(record_types));
@ -4418,7 +4418,7 @@ ListExpr::~ListExpr()
void ListExpr::Append(Expr* e) void ListExpr::Append(Expr* e)
{ {
exprs.append(e); exprs.push_back(e);
((TypeList*) type)->Append(e->Type()->Ref()); ((TypeList*) type)->Append(e->Type()->Ref());
} }
@ -4482,7 +4482,7 @@ BroType* ListExpr::InitType() const
return 0; return 0;
} }
types->append(td); types->push_back(td);
} }
@ -5061,11 +5061,11 @@ int check_and_promote_args(ListExpr*& args, RecordType* types)
return 0; return 0;
} }
def_elements.insert(def_attr->AttrExpr()); def_elements.push_front(def_attr->AttrExpr());
} }
for ( const auto& elem : def_elements ) for ( const auto& elem : def_elements )
el.append(elem->Ref()); el.push_back(elem->Ref());
} }
TypeList* tl = new TypeList(); TypeList* tl = new TypeList();
@ -5116,7 +5116,7 @@ val_list* eval_list(Frame* f, const ListExpr* l)
success = false; success = false;
break; break;
} }
v->append(ev); v->push_back(ev);
} }
if ( ! success ) if ( ! success )

View file

@ -473,8 +473,8 @@ Stmt* BroFunc::AddInits(Stmt* body, id_list* inits)
return body; return body;
StmtList* stmt_series = new StmtList; StmtList* stmt_series = new StmtList;
stmt_series->Stmts().append(new InitStmt(inits)); stmt_series->Stmts().push_back(new InitStmt(inits));
stmt_series->Stmts().append(body); stmt_series->Stmts().push_back(body);
return stmt_series; return stmt_series;
} }

View file

@ -27,67 +27,9 @@
#include <cassert> #include <cassert>
#include "util.h" #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); typedef int (*list_cmp_func)(const void* v1, const void* v2);
template<typename T>
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<typename T>
class iterator_traits<ListIterator<T> >
{
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<typename T> template<typename T>
class List { class List {
public: public:
@ -213,6 +155,7 @@ public:
return max_entries; return max_entries;
} }
ZEEK_DEPRECATED("Remove in v3.1: Use std::sort instead")
void sort(list_cmp_func cmp_func) void sort(list_cmp_func cmp_func)
{ {
qsort(entries, num_entries, sizeof(T), cmp_func); qsort(entries, num_entries, sizeof(T), cmp_func);
@ -221,7 +164,7 @@ public:
int MemoryAllocation() const int MemoryAllocation() const
{ return padded_sizeof(*this) + pad_size(max_entries * sizeof(T)); } { 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 ) if ( num_entries == max_entries )
resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE); resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE);
@ -233,45 +176,31 @@ public:
entries[0] = a; entries[0] = a;
} }
// Assumes that the list is sorted and inserts at correct position. void push_back(const T& a)
void sortedinsert(const T& a, list_cmp_func cmp_func)
{ {
// 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 ) if ( num_entries == max_entries )
resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE); resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE);
entries[num_entries++] = a; 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_front() { remove_nth(0); }
void pop_back() { remove_nth(num_entries-1); } void pop_back() { remove_nth(num_entries-1); }
T& front() { return entries[0]; } T& front() { return entries[0]; }
T& back() { return entries[num_entries-1]; } 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 void append(const T& a) // add to end of list
{ {
if ( num_entries == max_entries ) push_back(a);
resize(max_entries ? max_entries * LIST_GROWTH_FACTOR : DEFAULT_LIST_SIZE);
entries[num_entries++] = a;
} }
bool remove(const T& a) // delete entry from list 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 // Type traits needed for some of the std algorithms to work
using value_type = T; using value_type = T;
using pointer = T*;
using const_pointer = const T*;
// Iterator support // Iterator support
using iterator = ListIterator<T>; using iterator = pointer;
using const_iterator = ListIterator<const T>; using const_iterator = const_pointer;
using reverse_iterator = std::reverse_iterator<iterator>; using reverse_iterator = std::reverse_iterator<iterator>;
using const_reverse_iterator = std::reverse_iterator<const_iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>;
iterator begin() { return { entries, 0, num_entries }; } iterator begin() { return entries; }
iterator end() { return { entries, num_entries, num_entries }; } iterator end() { return entries + num_entries; }
const_iterator begin() const { return { entries, 0, num_entries }; } const_iterator begin() const { return entries; }
const_iterator end() const { return { entries, num_entries, num_entries }; } const_iterator end() const { return entries + num_entries; }
const_iterator cbegin() const { return { entries, 0, num_entries }; } const_iterator cbegin() const { return entries; }
const_iterator cend() const { return { entries, num_entries, num_entries }; } const_iterator cend() const { return entries + num_entries; }
reverse_iterator rbegin() { return reverse_iterator{end()}; } reverse_iterator rbegin() { return reverse_iterator{end()}; }
reverse_iterator rend() { return reverse_iterator{begin()}; } reverse_iterator rend() { return reverse_iterator{begin()}; }

View file

@ -2,6 +2,8 @@
#include "zeek-config.h" #include "zeek-config.h"
#include <algorithm>
#include "NFA.h" #include "NFA.h"
#include "EquivClass.h" #include "EquivClass.h"
@ -52,7 +54,7 @@ NFA_State::~NFA_State()
void NFA_State::AddXtionsTo(NFA_state_list* ns) void NFA_State::AddXtionsTo(NFA_state_list* ns)
{ {
for ( int i = 0; i < xtions.length(); ++i ) for ( int i = 0; i < xtions.length(); ++i )
ns->append(xtions[i]); ns->push_back(xtions[i]);
} }
NFA_State* NFA_State::DeepCopy() NFA_State* NFA_State::DeepCopy()
@ -90,7 +92,7 @@ NFA_state_list* NFA_State::EpsilonClosure()
epsclosure = new NFA_state_list; epsclosure = new NFA_state_list;
NFA_state_list states; NFA_state_list states;
states.append(this); states.push_back(this);
SetMark(this); SetMark(this);
int i; int i;
@ -105,18 +107,18 @@ NFA_state_list* NFA_State::EpsilonClosure()
NFA_State* nxt = (*x)[j]; NFA_State* nxt = (*x)[j];
if ( ! nxt->Mark() ) if ( ! nxt->Mark() )
{ {
states.append(nxt); states.push_back(nxt);
nxt->SetMark(nxt); nxt->SetMark(nxt);
} }
} }
if ( ns->Accept() != NO_ACCEPT ) if ( ns->Accept() != NO_ACCEPT )
epsclosure->append(ns); epsclosure->push_back(ns);
} }
else else
// Non-epsilon transition - keep it. // Non-epsilon transition - keep it.
epsclosure->append(ns); epsclosure->push_back(ns);
} }
// Clear out markers. // Clear out markers.
@ -342,11 +344,14 @@ NFA_state_list* epsilon_closure(NFA_state_list* states)
if ( ! closuremap.Contains(ns->ID()) ) if ( ! closuremap.Contains(ns->ID()) )
{ {
closuremap.Insert(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. // Make it fit.
closure->resize(0); closure->resize(0);
@ -355,15 +360,10 @@ NFA_state_list* epsilon_closure(NFA_state_list* states)
return closure; 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; if ( v1->ID() < v2->ID() )
const NFA_State* n2 = (const NFA_State*) v2; return true;
if ( n1->ID() < n2->ID() )
return -1;
else if ( n1->ID() == n2->ID() )
return 0;
else else
return 1; return false;
} }

View file

@ -29,7 +29,7 @@ public:
explicit NFA_State(CCL* ccl); explicit NFA_State(CCL* ccl);
~NFA_State() override; ~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; } NFA_state_list* Transitions() { return &xtions; }
void AddXtionsTo(NFA_state_list* ns); 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); extern NFA_state_list* epsilon_closure(NFA_state_list* states);
// For sorting NFA states based on their ID fields (decreasing) // 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 #endif

View file

@ -21,52 +21,6 @@
// Entries must be either a pointer to the data or nonzero data with // Entries must be either a pointer to the data or nonzero data with
// sizeof(data) <= sizeof(void*). // sizeof(data) <= sizeof(void*).
template<typename T>
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<typename T>
class iterator_traits<QueueIterator<T> >
{
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<typename T> template<typename T>
class Queue { class Queue {
@ -205,19 +159,21 @@ public:
// Type traits needed for some of the std algorithms to work // Type traits needed for some of the std algorithms to work
using value_type = T; using value_type = T;
using pointer = T*;
using const_pointer = const T*;
// Iterator support // Iterator support
using iterator = QueueIterator<T>; using iterator = pointer;
using const_iterator = QueueIterator<const T>; using const_iterator = const_pointer;
using reverse_iterator = std::reverse_iterator<iterator>; using reverse_iterator = std::reverse_iterator<iterator>;
using const_reverse_iterator = std::reverse_iterator<const_iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>;
iterator begin() { return { entries, 0, num_entries }; } iterator begin() { return entries; }
iterator end() { return { entries, num_entries, num_entries }; } iterator end() { return entries + num_entries; }
const_iterator begin() const { return { entries, 0, num_entries }; } const_iterator begin() const { return entries; }
const_iterator end() const { return { entries, num_entries, num_entries }; } const_iterator end() const { return entries + num_entries; }
const_iterator cbegin() const { return { entries, 0, num_entries }; } const_iterator cbegin() const { return entries; }
const_iterator cend() const { return { entries, num_entries, num_entries }; } const_iterator cend() const { return entries + num_entries; }
reverse_iterator rbegin() { return reverse_iterator{end()}; } reverse_iterator rbegin() { return reverse_iterator{end()}; }
reverse_iterator rend() { return reverse_iterator{begin()}; } reverse_iterator rend() { return reverse_iterator{begin()}; }

View file

@ -64,7 +64,7 @@ public:
void InsertCCL(const char* txt, CCL* ccl) { ccl_dict.Insert(txt, ccl); } void InsertCCL(const char* txt, CCL* ccl) { ccl_dict.Insert(txt, ccl); }
int InsertCCL(CCL* ccl) int InsertCCL(CCL* ccl)
{ {
ccl_list.append(ccl); ccl_list.push_back(ccl);
return ccl_list.length() - 1; return ccl_list.length() - 1;
} }
CCL* LookupCCL(const char* txt) { return ccl_dict.Lookup(txt); } CCL* LookupCCL(const char* txt) { return ccl_dict.Lookup(txt); }

View file

@ -221,12 +221,12 @@ void Reporter::WeirdHelper(EventHandlerPtr event, Val* conn_val, file_analysis::
val_list vl(2); val_list vl(2);
if ( conn_val ) if ( conn_val )
vl.append(conn_val); vl.push_back(conn_val);
else if ( f ) else if ( f )
vl.append(f->GetVal()->Ref()); vl.push_back(f->GetVal()->Ref());
if ( addl ) if ( addl )
vl.append(new StringVal(addl)); vl.push_back(new StringVal(addl));
va_list ap; va_list ap;
va_start(ap, fmt_name); va_start(ap, fmt_name);
@ -491,15 +491,15 @@ void Reporter::DoLog(const char* prefix, EventHandlerPtr event, FILE* out,
val_list vl(vl_size); val_list vl(vl_size);
if ( time ) 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 ) if ( location )
vl.append(new StringVal(loc_str.c_str())); vl.push_back(new StringVal(loc_str.c_str()));
if ( conn ) if ( conn )
vl.append(conn->BuildConnVal()); vl.push_back(conn->BuildConnVal());
if ( addl ) if ( addl )
std::copy(addl->begin(), addl->end(), std::back_inserter(vl)); std::copy(addl->begin(), addl->end(), std::back_inserter(vl));

View file

@ -76,9 +76,9 @@ void Rule::AddPattern(const char* str, Rule::PatternType type,
p->id = ++pattern_counter; p->id = ++pattern_counter;
p->offset = offset; p->offset = offset;
p->depth = depth; 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) 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->opposite_dir = opposite_direction;
p->negate = negate; p->negate = negate;
preconds.append(p); preconds.push_back(p);
} }
void Rule::SortHdrTests() void Rule::SortHdrTests()

View file

@ -40,9 +40,9 @@ public:
bool Active() { return active; } bool Active() { return active; }
void SetActiveStatus(bool new_status) { active = new_status; } void SetActiveStatus(bool new_status) { active = new_status; }
void AddAction(RuleAction* act) { actions.append(act); } void AddAction(RuleAction* act) { actions.push_back(act); }
void AddCondition(RuleCondition* cond) { conditions.append(cond); } void AddCondition(RuleCondition* cond) { conditions.push_back(cond); }
void AddHdrTest(RuleHdrTest* hdr_test) { hdr_tests.append(hdr_test); } void AddHdrTest(RuleHdrTest* hdr_test) { hdr_tests.push_back(hdr_test); }
void AddPattern(const char* str, Rule::PatternType type, void AddPattern(const char* str, Rule::PatternType type,
uint32 offset = 0, uint32 depth = INT_MAX); uint32 offset = 0, uint32 depth = INT_MAX);
void AddRequires(const char* id, bool opposite_direction, bool negate); void AddRequires(const char* id, bool opposite_direction, bool negate);

View file

@ -163,12 +163,12 @@ bool RuleConditionEval::DoMatch(Rule* rule, RuleEndpointState* state,
// Call function with a signature_state value as argument. // Call function with a signature_state value as argument.
val_list args(2); val_list args(2);
args.append(rule_matcher->BuildRuleStateValue(rule, state)); args.push_back(rule_matcher->BuildRuleStateValue(rule, state));
if ( data ) if ( data )
args.append(new StringVal(len, (const char*) data)); args.push_back(new StringVal(len, (const char*) data));
else else
args.append(val_mgr->GetEmptyString()); args.push_back(val_mgr->GetEmptyString());
bool result = 0; bool result = 0;

View file

@ -84,7 +84,7 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h)
vals = new maskedvalue_list; vals = new maskedvalue_list;
for ( const auto& val : *h.vals ) for ( const auto& val : *h.vals )
vals->append(new MaskedValue(*val)); vals->push_back(new MaskedValue(*val));
prefix_vals = h.prefix_vals; prefix_vals = h.prefix_vals;
@ -96,7 +96,7 @@ RuleHdrTest::RuleHdrTest(RuleHdrTest& h)
copied_set->re = 0; copied_set->re = 0;
copied_set->ids = orig_set->ids; copied_set->ids = orig_set->ids;
for ( const auto& pattern : orig_set->patterns ) 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; delete copied_set;
// TODO: Why do we create copied_set only to then // TODO: Why do we create copied_set only to then
// never use it? // never use it?
@ -273,7 +273,7 @@ void RuleMatcher::AddRule(Rule* rule)
return; return;
} }
rules.append(rule); rules.push_back(rule);
rules_by_id.Insert(rule->ID(), 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 = pc_rule;
pc_rule->dependents.append(r); pc_rule->dependents.push_back(r);
} }
// All tests in tree already? // All tests in tree already?
@ -349,7 +349,7 @@ void RuleMatcher::BuildRegEx(RuleHdrTest* hdr_test, string_list* exprs,
{ {
for ( const auto& p : r->patterns ) 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); 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) 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]); ids[i].push_back(child_ids[i][j]);
} }
} }
@ -406,7 +406,7 @@ void RuleMatcher::BuildPatternSets(RuleHdrTest::pattern_set_list* dst,
{ {
if ( i < exprs.length() ) if ( i < exprs.length() )
{ {
group_exprs.append(exprs[i]); group_exprs.push_back(exprs[i]);
group_ids.push_back(ids[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->re->CompileSet(group_exprs, group_ids);
set->patterns = group_exprs; set->patterns = group_exprs;
set->ids = group_ids; set->ids = group_ids;
dst->append(set); dst->push_back(set);
group_exprs.clear(); group_exprs.clear();
group_ids.clear(); group_ids.clear();
@ -585,7 +585,7 @@ RuleFileMagicState* RuleMatcher::InitFileMagic() const
assert(set->re); assert(set->re);
RuleFileMagicState::Matcher* m = new RuleFileMagicState::Matcher; RuleFileMagicState::Matcher* m = new RuleFileMagicState::Matcher;
m->state = new RE_Match_State(set->re); m->state = new RE_Match_State(set->re);
state->matchers.append(m); state->matchers.push_back(m);
} }
// Save some memory. // Save some memory.
@ -706,7 +706,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer,
new RuleEndpointState(analyzer, from_orig, opposite, pia); new RuleEndpointState(analyzer, from_orig, opposite, pia);
rule_hdr_test_list tests; rule_hdr_test_list tests;
tests.append(root); tests.push_back(root);
loop_over_list(tests, h) loop_over_list(tests, h)
{ {
@ -719,7 +719,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer,
// Current HdrTest node matches the packet, so remember it // Current HdrTest node matches the packet, so remember it
// if we have any rules on it. // if we have any rules on it.
if ( hdr_test->pattern_rules || hdr_test->pure_rules ) 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 // Evaluate all rules on this node which don't contain
// any patterns. // any patterns.
@ -741,7 +741,7 @@ RuleEndpointState* RuleMatcher::InitEndpoint(analyzer::Analyzer* analyzer,
new RuleEndpointState::Matcher; new RuleEndpointState::Matcher;
m->state = new RE_Match_State(set->re); m->state = new RE_Match_State(set->re);
m->type = (Rule::PatternType) i; 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 ) 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. // Remember that all patterns have matched.
if ( ! state->matched_by_patterns.is_member(r) ) 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); 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"); 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; return false;
} }
append_to->append(mval); append_to->push_back(mval);
return true; return true;
} }

View file

@ -194,13 +194,13 @@ ID* install_ID(const char* name, const char* module_name,
void push_existing_scope(Scope* scope) void push_existing_scope(Scope* scope)
{ {
scopes.append(scope); scopes.push_back(scope);
} }
void push_scope(ID* id, attr_list* attrs) void push_scope(ID* id, attr_list* attrs)
{ {
top_scope = new Scope(id, attrs); top_scope = new Scope(id, attrs);
scopes.append(top_scope); scopes.push_back(top_scope);
} }
Scope* pop_scope() Scope* pop_scope()

View file

@ -44,7 +44,7 @@ public:
id_list* GetInits(); id_list* GetInits();
// Adds a variable to the list. // 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; void Describe(ODesc* d) const override;

View file

@ -226,7 +226,7 @@ void TypeList::Append(BroType* t)
if ( pure_type && ! same_type(t, pure_type) ) if ( pure_type && ! same_type(t, pure_type) )
reporter->InternalError("pure type-list violation"); reporter->InternalError("pure type-list violation");
types.append(t); types.push_back(t);
} }
void TypeList::AppendEvenIfNotPure(BroType* t) void TypeList::AppendEvenIfNotPure(BroType* t)
@ -237,7 +237,7 @@ void TypeList::AppendEvenIfNotPure(BroType* t)
pure_type = 0; pure_type = 0;
} }
types.append(t); types.push_back(t);
} }
void TypeList::Describe(ODesc* d) const void TypeList::Describe(ODesc* d) const
@ -714,7 +714,7 @@ RecordType* RecordType::ShallowClone()
{ {
auto pass = new type_decl_list(); auto pass = new type_decl_list();
for ( const auto& type : *types ) for ( const auto& type : *types )
pass->append(new TypeDecl(*type)); pass->push_back(new TypeDecl(*type));
return new RecordType(pass); 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)); td->attrs->AddAttr(new Attr(ATTR_LOG));
} }
types->append(td); types->push_back(td);
} }
delete others; delete others;
@ -1883,7 +1883,7 @@ BroType* merge_types(const BroType* t1, const BroType* t2)
return 0; 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); return new RecordType(tdl3);

View file

@ -1215,7 +1215,7 @@ void ListVal::Append(Val* v)
Internal("heterogeneous list in ListVal::Append"); Internal("heterogeneous list in ListVal::Append");
} }
vals.append(v); vals.push_back(v);
type->AsTypeList()->Append(v->Type()->Ref()); type->AsTypeList()->Append(v->Type()->Ref());
} }
@ -1770,7 +1770,7 @@ Val* TableVal::Default(Val* index)
const val_list* vl0 = index->AsListVal()->Vals(); const val_list* vl0 = index->AsListVal()->Vals();
vl = val_list(vl0->length()); vl = val_list(vl0->length());
for ( const auto& v : *vl0 ) for ( const auto& v : *vl0 )
vl.append(v->Ref()); vl.push_back(v->Ref());
} }
else else
{ {
@ -2478,7 +2478,7 @@ RecordVal::RecordVal(RecordType* t, bool init_fields) : Val(t)
def = new VectorVal(type->AsVectorType()); def = new VectorVal(type->AsVectorType());
} }
vl->append(def ? def->Ref() : 0); vl->push_back(def ? def->Ref() : 0);
Unref(def); Unref(def);
} }
@ -2697,7 +2697,7 @@ Val* RecordVal::DoClone(CloneState* state)
for ( const auto& vlv : *val.val_list_val ) for ( const auto& vlv : *val.val_list_val )
{ {
Val* v = vlv ? vlv->Clone(state) : nullptr; Val* v = vlv ? vlv->Clone(state) : nullptr;
rv->val.val_list_val->append(v); rv->val.val_list_val->push_back(v);
} }
return rv; return rv;

View file

@ -713,7 +713,7 @@ void Analyzer::AddTimer(analyzer_timer_func timer, double t,
AnalyzerTimer(this, timer, t, do_expire, type); AnalyzerTimer(this, timer, t, do_expire, type);
Conn()->GetTimerMgr()->Add(analyzer_timer); Conn()->GetTimerMgr()->Add(analyzer_timer);
timers.append(analyzer_timer); timers.push_back(analyzer_timer);
} }
void Analyzer::RemoveTimer(Timer* t) void Analyzer::RemoveTimer(Timer* t)

View file

@ -395,11 +395,11 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
} }
val_list vl(6); val_list vl(6);
vl.append(BuildConnVal()); vl.push_back(BuildConnVal());
vl.append(val_mgr->GetBool(orig)); vl.push_back(val_mgr->GetBool(orig));
vl.append(new StringVal(parts[0].c_str())); vl.push_back(new StringVal(parts[0].c_str()));
vl.append(new StringVal(parts[1].c_str())); vl.push_back(new StringVal(parts[1].c_str()));
vl.append(new StringVal(parts[2].c_str())); vl.push_back(new StringVal(parts[2].c_str()));
parts.erase(parts.begin(), parts.begin() + 4); 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] == ':' ) if ( real_name[0] == ':' )
real_name = real_name.substr(1); 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)); 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 // extract username and real name
vector<string> parts = SplitWords(params, ' '); vector<string> parts = SplitWords(params, ' ');
val_list vl(6); val_list vl(6);
vl.append(BuildConnVal()); vl.push_back(BuildConnVal());
vl.append(val_mgr->GetBool(orig)); vl.push_back(val_mgr->GetBool(orig));
if ( parts.size() > 0 ) if ( parts.size() > 0 )
vl.append(new StringVal(parts[0].c_str())); vl.push_back(new StringVal(parts[0].c_str()));
else vl.append(val_mgr->GetEmptyString()); else vl.push_back(val_mgr->GetEmptyString());
if ( parts.size() > 1 ) if ( parts.size() > 1 )
vl.append(new StringVal(parts[1].c_str())); vl.push_back(new StringVal(parts[1].c_str()));
else vl.append(val_mgr->GetEmptyString()); else vl.push_back(val_mgr->GetEmptyString());
if ( parts.size() > 2 ) if ( parts.size() > 2 )
vl.append(new StringVal(parts[2].c_str())); vl.push_back(new StringVal(parts[2].c_str()));
else vl.append(val_mgr->GetEmptyString()); else vl.push_back(val_mgr->GetEmptyString());
string realname; string realname;
for ( unsigned int i = 3; i < parts.size(); i++ ) 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(); 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)); 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); val_list vl(6);
vl.append(BuildConnVal()); vl.push_back(BuildConnVal());
vl.append(val_mgr->GetBool(orig)); vl.push_back(val_mgr->GetBool(orig));
vl.append(new StringVal(prefix.c_str())); vl.push_back(new StringVal(prefix.c_str()));
vl.append(new StringVal(parts[0].c_str())); vl.push_back(new StringVal(parts[0].c_str()));
vl.append(new StringVal(parts[1].c_str())); vl.push_back(new StringVal(parts[1].c_str()));
if ( parts.size() > 2 ) if ( parts.size() > 2 )
{ {
string comment = parts[2]; string comment = parts[2];
@ -812,10 +812,10 @@ void IRC_Analyzer::DeliverStream(int length, const u_char* line, bool orig)
if ( comment[0] == ':' ) if ( comment[0] == ':' )
comment = comment.substr(1); comment = comment.substr(1);
vl.append(new StringVal(comment.c_str())); vl.push_back(new StringVal(comment.c_str()));
} }
else else
vl.append(val_mgr->GetEmptyString()); vl.push_back(val_mgr->GetEmptyString());
ConnectionEventFast(irc_kick_message, std::move(vl)); ConnectionEventFast(irc_kick_message, std::move(vl));
} }

View file

@ -170,18 +170,18 @@ void Rsh_Analyzer::DeliverStream(int len, const u_char* data, bool orig)
val_list vl(4 + orig); val_list vl(4 + orig);
const char* line = (const char*) data; const char* line = (const char*) data;
line = skip_whitespace(line); line = skip_whitespace(line);
vl.append(BuildConnVal()); vl.push_back(BuildConnVal());
vl.append(client_name ? client_name->Ref() : new StringVal("<none>")); vl.push_back(client_name ? client_name->Ref() : new StringVal("<none>"));
vl.append(username ? username->Ref() : new StringVal("<none>")); vl.push_back(username ? username->Ref() : new StringVal("<none>"));
vl.append(new StringVal(line)); vl.push_back(new StringVal(line));
if ( orig ) if ( orig )
{ {
if ( contents_orig->RshSaveState() == RSH_SERVER_USER_NAME ) if ( contents_orig->RshSaveState() == RSH_SERVER_USER_NAME )
// First input // First input
vl.append(val_mgr->GetTrue()); vl.push_back(val_mgr->GetTrue());
else else
vl.append(val_mgr->GetFalse()); vl.push_back(val_mgr->GetFalse());
ConnectionEventFast(rsh_request, std::move(vl)); ConnectionEventFast(rsh_request, std::move(vl));
} }

View file

@ -926,12 +926,12 @@ void POP3_Analyzer::POP3Event(EventHandlerPtr event, bool is_orig,
val_list vl(2 + (bool)arg1 + (bool)arg2); val_list vl(2 + (bool)arg1 + (bool)arg2);
vl.append(BuildConnVal()); vl.push_back(BuildConnVal());
vl.append(val_mgr->GetBool(is_orig)); vl.push_back(val_mgr->GetBool(is_orig));
if ( arg1 ) if ( arg1 )
vl.append(new StringVal(arg1)); vl.push_back(new StringVal(arg1));
if ( arg2 ) if ( arg2 )
vl.append(new StringVal(arg2)); vl.push_back(new StringVal(arg2));
ConnectionEventFast(event, std::move(vl)); ConnectionEventFast(event, std::move(vl));
} }

View file

@ -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); start_time, last_time, reply_len, (bool)request + (bool)reply);
if ( request ) if ( request )
vl.append(request); vl.push_back(request);
if ( reply ) if ( reply )
vl.append(reply); vl.push_back(reply);
analyzer->ConnectionEventFast(event, std::move(vl)); 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. // Returns a new val_list that already has a conn_val, and mount3_info.
// These are the first parameters for each mount_* event ... // These are the first parameters for each mount_* event ...
val_list vl(2 + extra_elements); val_list vl(2 + extra_elements);
vl.append(analyzer->BuildConnVal()); vl.push_back(analyzer->BuildConnVal());
VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType()); VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType());
for (size_t i = 0; i < c->AuxGIDs().size(); ++i) 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(11, new StringVal(c->MachineName()));
info->Assign(12, auxgids); info->Assign(12, auxgids);
vl.append(info); vl.push_back(info);
return vl; return vl;
} }

View file

@ -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); start_time, last_time, reply_len, (bool)request + (bool)reply);
if ( request ) if ( request )
vl.append(request); vl.push_back(request);
if ( reply ) if ( reply )
vl.append(reply); vl.push_back(reply);
analyzer->ConnectionEventFast(event, std::move(vl)); 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. // Returns a new val_list that already has a conn_val, and nfs3_info.
// These are the first parameters for each nfs_* event ... // These are the first parameters for each nfs_* event ...
val_list vl(2 + extra_elements); val_list vl(2 + extra_elements);
vl.append(analyzer->BuildConnVal()); vl.push_back(analyzer->BuildConnVal());
VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType()); VectorVal* auxgids = new VectorVal(internal_type("index_vec")->AsVectorType());
for ( size_t i = 0; i < c->AuxGIDs().size(); ++i ) 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(11, new StringVal(c->MachineName()));
info->Assign(12, auxgids); info->Assign(12, auxgids);
vl.append(info); vl.push_back(info);
return vl; return vl;
} }

View file

@ -284,20 +284,20 @@ void PortmapperInterp::Event(EventHandlerPtr f, Val* request, BifEnum::rpc_statu
val_list vl; val_list vl;
vl.append(analyzer->BuildConnVal()); vl.push_back(analyzer->BuildConnVal());
if ( status == BifEnum::RPC_SUCCESS ) if ( status == BifEnum::RPC_SUCCESS )
{ {
if ( request ) if ( request )
vl.append(request); vl.push_back(request);
if ( reply ) if ( reply )
vl.append(reply); vl.push_back(reply);
} }
else else
{ {
vl.append(BifType::Enum::rpc_status->GetVal(status)); vl.push_back(BifType::Enum::rpc_status->GetVal(status));
if ( request ) if ( request )
vl.append(request); vl.push_back(request);
} }
analyzer->ConnectionEventFast(f, std::move(vl)); analyzer->ConnectionEventFast(f, std::move(vl));

View file

@ -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); auto val = data_to_val(std::move(args[i]), expected_type);
if ( val ) if ( val )
vl.append(val); vl.push_back(val);
else else
{ {
reporter->Warning("failed to convert remote event '%s' arg #%d," reporter->Warning("failed to convert remote event '%s' arg #%d,"

View file

@ -103,7 +103,7 @@ function Broker::publish%(topic: string, ...%): bool
val_list args(bif_args->length() - 1); val_list args(bif_args->length() - 1);
for ( auto i = 1; i < bif_args->length(); ++i ) 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); auto rval = publish_event_args(args, topic->AsString(), frame);
return val_mgr->GetBool(rval); 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); val_list args(bif_args->length() - 2);
for ( auto i = 2; i < bif_args->length(); ++i ) 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); auto rval = publish_event_args(args, topic->AsString(), frame);
Unref(topic); Unref(topic);
@ -237,7 +237,7 @@ function Cluster::publish_hrw%(pool: Pool, key: any, ...%): bool
val_list args(bif_args->length() - 2); val_list args(bif_args->length() - 2);
for ( auto i = 2; i < bif_args->length(); ++i ) 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); auto rval = publish_event_args(args, topic->AsString(), frame);
Unref(topic); Unref(topic);

View file

@ -87,10 +87,10 @@ bool ocsp_add_cert_id(const OCSP_CERTID* cert_id, val_list* vl, BIO* bio)
if ( ! res ) if ( ! res )
{ {
reporter->Weird("OpenSSL failed to get OCSP_CERTID info"); reporter->Weird("OpenSSL failed to get OCSP_CERTID info");
vl->append(val_mgr->GetEmptyString()); vl->push_back(val_mgr->GetEmptyString());
vl->append(val_mgr->GetEmptyString()); vl->push_back(val_mgr->GetEmptyString());
vl->append(val_mgr->GetEmptyString()); vl->push_back(val_mgr->GetEmptyString());
vl->append(val_mgr->GetEmptyString()); vl->push_back(val_mgr->GetEmptyString());
return false; 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); i2a_ASN1_OBJECT(bio, hash_alg);
int len = BIO_read(bio, buf, sizeof(buf)); int len = BIO_read(bio, buf, sizeof(buf));
vl->append(new StringVal(len, buf)); vl->push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
i2a_ASN1_STRING(bio, issuer_name_hash, V_ASN1_OCTET_STRING); i2a_ASN1_STRING(bio, issuer_name_hash, V_ASN1_OCTET_STRING);
len = BIO_read(bio, buf, sizeof(buf)); len = BIO_read(bio, buf, sizeof(buf));
vl->append(new StringVal(len, buf)); vl->push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
i2a_ASN1_STRING(bio, issuer_key_hash, V_ASN1_OCTET_STRING); i2a_ASN1_STRING(bio, issuer_key_hash, V_ASN1_OCTET_STRING);
len = BIO_read(bio, buf, sizeof(buf)); len = BIO_read(bio, buf, sizeof(buf));
vl->append(new StringVal(len, buf)); vl->push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
i2a_ASN1_INTEGER(bio, serial_number); i2a_ASN1_INTEGER(bio, serial_number);
len = BIO_read(bio, buf, sizeof(buf)); len = BIO_read(bio, buf, sizeof(buf));
vl->append(new StringVal(len, buf)); vl->push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
return true; return true;
@ -436,7 +436,7 @@ void file_analysis::OCSP::ParseRequest(OCSP_REQUEST* req)
for ( int i=0; i<req_count; i++ ) for ( int i=0; i<req_count; i++ )
{ {
val_list rvl(5); val_list rvl(5);
rvl.append(GetFile()->GetVal()->Ref()); rvl.push_back(GetFile()->GetVal()->Ref());
OCSP_ONEREQ *one_req = OCSP_request_onereq_get0(req, i); OCSP_ONEREQ *one_req = OCSP_request_onereq_get0(req, i);
OCSP_CERTID *cert_id = OCSP_onereq_get0_id(one_req); OCSP_CERTID *cert_id = OCSP_onereq_get0_id(one_req);
@ -503,26 +503,26 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp)
} }
#endif #endif
vl.append(GetFile()->GetVal()->Ref()); vl.push_back(GetFile()->GetVal()->Ref());
vl.append(status_val); vl.push_back(status_val);
#if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER) #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 #else
vl.append(parse_basic_resp_data_version(basic_resp)); vl.push_back(parse_basic_resp_data_version(basic_resp));
#endif #endif
// responderID // responderID
if ( OCSP_RESPID_bio(basic_resp, bio) ) if ( OCSP_RESPID_bio(basic_resp, bio) )
{ {
len = BIO_read(bio, buf, sizeof(buf)); len = BIO_read(bio, buf, sizeof(buf));
vl.append(new StringVal(len, buf)); vl.push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
} }
else else
{ {
reporter->Weird("OpenSSL failed to get OCSP responder id"); reporter->Weird("OpenSSL failed to get OCSP responder id");
vl.append(val_mgr->GetEmptyString()); vl.push_back(val_mgr->GetEmptyString());
} }
// producedAt // producedAt
@ -532,7 +532,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp)
produced_at = OCSP_resp_get0_produced_at(basic_resp); produced_at = OCSP_resp_get0_produced_at(basic_resp);
#endif #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 // responses
@ -546,7 +546,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp)
continue; continue;
val_list rvl(10); val_list rvl(10);
rvl.append(GetFile()->GetVal()->Ref()); rvl.push_back(GetFile()->GetVal()->Ref());
// cert id // cert id
const OCSP_CERTID* cert_id = nullptr; 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"); reporter->Weird("OpenSSL failed to find status of OCSP response");
const char* cert_status_str = OCSP_cert_status_str(status); 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 // revocation time and reason if revoked
if ( status == V_OCSP_CERTSTATUS_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 ) if ( reason != OCSP_REVOKED_STATUS_NOSTATUS )
{ {
const char* revoke_reason = OCSP_crl_reason_str(reason); 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 else
rvl.append(new StringVal(0, "")); rvl.push_back(new StringVal(0, ""));
} }
else else
{ {
rvl.append(new Val(0.0, TYPE_TIME)); rvl.push_back(new Val(0.0, TYPE_TIME));
rvl.append(new StringVal(0, "")); rvl.push_back(new StringVal(0, ""));
} }
if ( this_update ) 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 else
rvl.append(new Val(0.0, TYPE_TIME)); rvl.push_back(new Val(0.0, TYPE_TIME));
if ( next_update ) 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 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)); 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) #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER)
i2a_ASN1_OBJECT(bio, basic_resp->signatureAlgorithm->algorithm); i2a_ASN1_OBJECT(bio, basic_resp->signatureAlgorithm->algorithm);
len = BIO_read(bio, buf, sizeof(buf)); len = BIO_read(bio, buf, sizeof(buf));
vl.append(new StringVal(len, buf)); vl.push_back(new StringVal(len, buf));
BIO_reset(bio); BIO_reset(bio);
#else #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 #endif
//i2a_ASN1_OBJECT(bio, basic_resp->signature); //i2a_ASN1_OBJECT(bio, basic_resp->signature);
@ -633,7 +633,7 @@ void file_analysis::OCSP::ParseResponse(OCSP_RESPONSE *resp)
//BIO_reset(bio); //BIO_reset(bio);
certs_vector = new VectorVal(internal_type("x509_opaque_vector")->AsVectorType()); 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) #if ( OPENSSL_VERSION_NUMBER < 0x10100000L ) || defined(LIBRESSL_VERSION_NUMBER)
certs = basic_resp->certs; certs = basic_resp->certs;

View file

@ -1825,7 +1825,7 @@ bool Manager::CallPred(Func* pred_func, const int numvals, ...) const
va_list lP; va_list lP;
va_start(lP, numvals); va_start(lP, numvals);
for ( int i = 0; i < numvals; i++ ) for ( int i = 0; i < numvals; i++ )
vl.append( va_arg(lP, Val*) ); vl.push_back( va_arg(lP, Val*) );
va_end(lP); 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++) for ( int j = 0; j < num_vals; j++)
{ {
Val* v = ValueToVal(i, vals[j], convert_error); 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()) ) if ( v && ! convert_error && ! same_type(type->FieldType(j), v->Type()) )
{ {
convert_error = true; convert_error = true;
@ -1916,7 +1916,7 @@ void Manager::SendEvent(EventHandlerPtr ev, const int numvals, ...) const
va_list lP; va_list lP;
va_start(lP, numvals); va_start(lP, numvals);
for ( int i = 0; i < numvals; i++ ) for ( int i = 0; i < numvals; i++ )
vl.append( va_arg(lP, Val*) ); vl.push_back( va_arg(lP, Val*) );
va_end(lP); va_end(lP);
@ -1933,7 +1933,7 @@ void Manager::SendEvent(EventHandlerPtr ev, list<Val*> events) const
#endif #endif
for ( list<Val*>::iterator i = events.begin(); i != events.end(); i++ ) for ( list<Val*>::iterator i = events.begin(); i != events.end(); i++ )
vl.append( *i ); vl.push_back( *i );
mgr.QueueEvent(ev, std::move(vl), SOURCE_LOCAL); mgr.QueueEvent(ev, std::move(vl), SOURCE_LOCAL);
} }

View file

@ -481,7 +481,7 @@ int main(int argc, char** argv)
prog = argv[0]; prog = argv[0];
prefixes.append(strdup("")); // "" = "no prefix" prefixes.push_back(strdup("")); // "" = "no prefix"
char* p = zeekenv("ZEEK_PREFIXES"); char* p = zeekenv("ZEEK_PREFIXES");
@ -537,19 +537,19 @@ int main(int argc, char** argv)
break; break;
case 'i': case 'i':
interfaces.append(optarg); interfaces.push_back(optarg);
break; break;
case 'p': case 'p':
prefixes.append(optarg); prefixes.push_back(optarg);
break; break;
case 'r': case 'r':
read_files.append(optarg); read_files.push_back(optarg);
break; break;
case 's': case 's':
rule_files.append(optarg); rule_files.push_back(optarg);
break; break;
case 't': case 't':
@ -877,11 +877,11 @@ int main(int argc, char** argv)
char* s; char* s;
while ( (s = strsep(&tmp, " \t")) ) while ( (s = strsep(&tmp, " \t")) )
if ( *s ) if ( *s )
rule_files.append(s); rule_files.push_back(s);
// Append signature files defined in @load-sigs // Append signature files defined in @load-sigs
for ( size_t i = 0; i < sig_files.size(); ++i ) 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 ) if ( rule_files.length() > 0 )
{ {

View file

@ -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; bool add_loc = handler_function->FType()->AsFuncType()->ArgTypes()->Types()->length() == 3;
val_list vl(2 + add_loc); val_list vl(2 + add_loc);
vl.append(name->Ref()); vl.push_back(name->Ref());
vl.append(val); vl.push_back(val);
if ( add_loc ) if ( add_loc )
vl.append(location->Ref()); vl.push_back(location->Ref());
val = handler_function->Call(&vl); // consumed by next call. val = handler_function->Call(&vl); // consumed by next call.
if ( ! val ) if ( ! val )

View file

@ -165,7 +165,7 @@ static type_decl_list* copy_type_decl_list(type_decl_list* tdl)
type_decl_list* rval = new type_decl_list(); type_decl_list* rval = new type_decl_list();
for ( const auto& td : *tdl ) for ( const auto& td : *tdl )
rval->append(new TypeDecl(*td)); rval->push_back(new TypeDecl(*td));
return rval; return rval;
} }
@ -180,7 +180,7 @@ static attr_list* copy_attr_list(attr_list* al)
for ( const auto& a : *al ) for ( const auto& a : *al )
{ {
::Ref(a); ::Ref(a);
rval->append(a); rval->push_back(a);
} }
return rval; return rval;
@ -264,7 +264,7 @@ bro:
decl_list stmt_list decl_list stmt_list
{ {
if ( stmts ) if ( stmts )
stmts->AsStmtList()->Stmts().append($2); stmts->AsStmtList()->Stmts().push_back($2);
else else
stmts = $2; stmts = $2;
@ -1016,7 +1016,7 @@ type_list:
type_decl_list: type_decl_list:
type_decl_list type_decl 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_list ';' formal_args_decl formal_args_decl_list ';' formal_args_decl
{ $1->append($3); } { $1->push_back($3); }
| formal_args_decl_list ',' formal_args_decl | formal_args_decl_list ',' formal_args_decl
{ $1->append($3); } { $1->push_back($3); }
| formal_args_decl | formal_args_decl
{ $$ = new type_decl_list(); $$->append($1); } { $$ = new type_decl_list(); $$->push_back($1); }
; ;
formal_args_decl: formal_args_decl:
@ -1284,11 +1284,11 @@ opt_attr:
attr_list: attr_list:
attr_list attr attr_list attr
{ $1->append($2); } { $1->push_back($2); }
| attr | attr
{ {
$$ = new attr_list; $$ = new attr_list;
$$->append($1); $$->push_back($1);
} }
; ;
@ -1523,7 +1523,7 @@ stmt_list:
stmt_list stmt stmt_list stmt
{ {
set_location(@1, @2); set_location(@1, @2);
$1->AsStmtList()->Stmts().append($2); $1->AsStmtList()->Stmts().push_back($2);
$1->UpdateLocationEndInfo(@2); $1->UpdateLocationEndInfo(@2);
} }
| |
@ -1553,7 +1553,7 @@ event:
case_list: case_list:
case_list case case_list case
{ $1->append($2); } { $1->push_back($2); }
| |
{ $$ = new case_list; } { $$ = new case_list; }
; ;
@ -1571,12 +1571,12 @@ case:
case_type_list: case_type_list:
case_type_list ',' case_type case_type_list ',' case_type
{ $1->append($3); } { $1->push_back($3); }
| |
case_type case_type
{ {
$$ = new id_list; $$ = new id_list;
$$->append($1); $$->push_back($1);
} }
; ;
@ -1624,7 +1624,7 @@ for_head:
false, false); false, false);
id_list* loop_vars = new id_list; id_list* loop_vars = new id_list;
loop_vars->append(loop_var); loop_vars->push_back(loop_var);
$$ = new ForStmt(loop_vars, $5); $$ = new ForStmt(loop_vars, $5);
} }
@ -1662,7 +1662,7 @@ for_head:
val_var = install_ID($5, module, false, false); val_var = install_ID($5, module, false, false);
id_list* loop_vars = new id_list; 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); $$ = new ForStmt(loop_vars, $7, val_var);
} }
@ -1689,11 +1689,11 @@ for_head:
local_id_list: local_id_list:
local_id_list ',' local_id local_id_list ',' local_id
{ $1->append($3); } { $1->push_back($3); }
| local_id | local_id
{ {
$$ = new id_list; $$ = new id_list;
$$->append($1); $$->push_back($1);
} }
; ;

View file

@ -166,7 +166,7 @@ rule_attr:
val->val = proto; val->val = proto;
val->mask = 0xffffffff; val->mask = 0xffffffff;
vallist->append(val); vallist->push_back(val);
// offset & size params are dummies, actual next proto value in // offset & size params are dummies, actual next proto value in
// header is retrieved dynamically via IP_Hdr::NextProto() // header is retrieved dynamically via IP_Hdr::NextProto()
@ -259,7 +259,7 @@ hdr_expr:
val->val = $8.val; val->val = $8.val;
val->mask = $6; val->mask = $6;
vallist->append(val); vallist->push_back(val);
$$ = new RuleHdrTest($1, $3.offset, $3.len, $$ = new RuleHdrTest($1, $3.offset, $3.len,
(RuleHdrTest::Comp) $7, vallist); (RuleHdrTest::Comp) $7, vallist);
@ -274,14 +274,14 @@ hdr_expr:
value_list: value_list:
value_list ',' value value_list ',' value
{ $1->append(new MaskedValue($3)); $$ = $1; } { $1->push_back(new MaskedValue($3)); $$ = $1; }
| value_list ',' ranged_value | value_list ',' ranged_value
{ {
int numVals = $3->length(); int numVals = $3->length();
for ( int idx = 0; idx < numVals; idx++ ) for ( int idx = 0; idx < numVals; idx++ )
{ {
MaskedValue* val = (*$3)[idx]; MaskedValue* val = (*$3)[idx];
$1->append(val); $1->push_back(val);
} }
$$ = $1; $$ = $1;
} }
@ -290,7 +290,7 @@ value_list:
| value | value
{ {
$$ = new maskedvalue_list(); $$ = new maskedvalue_list();
$$->append(new MaskedValue($1)); $$->push_back(new MaskedValue($1));
} }
| ranged_value | ranged_value
{ {
@ -344,7 +344,7 @@ ranged_value:
MaskedValue* masked = new MaskedValue(); MaskedValue* masked = new MaskedValue();
masked->val = val; masked->val = val;
masked->mask = 0xffffffff; masked->mask = 0xffffffff;
$$->append(masked); $$->push_back(masked);
} }
} }
; ;

View file

@ -682,11 +682,11 @@ static int load_files(const char* orig_file)
// was done when we're finished processing it. // was done when we're finished processing it.
if ( ! did_module_restore ) if ( ! did_module_restore )
{ {
file_stack.append(new FileInfo(current_module)); file_stack.push_back(new FileInfo(current_module));
did_module_restore = true; did_module_restore = true;
} }
else else
file_stack.append(new FileInfo); file_stack.push_back(new FileInfo);
zeekygen_mgr->Script(file_path); zeekygen_mgr->Script(file_path);
@ -839,7 +839,7 @@ void add_essential_input_file(const char* file)
if ( ! filename ) if ( ! filename )
(void) load_files(file); (void) load_files(file);
else else
essential_input_files.append(copy_string(file)); essential_input_files.push_back(copy_string(file));
} }
void add_input_file(const char* file) void add_input_file(const char* file)
@ -850,7 +850,7 @@ void add_input_file(const char* file)
if ( ! filename ) if ( ! filename )
(void) load_files(file); (void) load_files(file);
else else
input_files.append(copy_string(file)); input_files.push_back(copy_string(file));
} }
void add_input_file_at_front(const char* 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 ) if ( ! filename )
(void) load_files(file); (void) load_files(file);
else 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) 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 ) if ( s_delim )
*s_delim = 0; *s_delim = 0;
nl.append(copy_string(s)); nl.push_back(copy_string(s));
if ( s_delim ) if ( s_delim )
s = s_delim + 1; s = s_delim + 1;

View file

@ -1335,8 +1335,8 @@ bool sort_function(Val* a, Val* b)
return 1; return 1;
val_list sort_func_args; val_list sort_func_args;
sort_func_args.append(a->Ref()); sort_func_args.push_back(a->Ref());
sort_func_args.append(b->Ref()); sort_func_args.push_back(b->Ref());
Val* result = sort_function_comp->Call(&sort_func_args); Val* result = sort_function_comp->Call(&sort_func_args);
int int_result = result->CoerceToInt(); int int_result = result->CoerceToInt();