diff --git a/tools/binpac/patches/binpac-1.patch b/tools/binpac/patches/binpac-1.patch deleted file mode 100644 index 20ad9e3e3c..0000000000 --- a/tools/binpac/patches/binpac-1.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -urN bro-1.2.1-orig/src/pac_expr.cc bro-1.2.1-ssl-binpac/src/pac_expr.cc ---- bro-1.2.1-orig/src/pac_expr.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_expr.cc 2007-05-04 14:31:11.728494000 -0700 -@@ -776,2 +776,2 @@ - } - break; - -+ case EXPR_CALLARGS: -+ { -+ mhs = 0; -+ if ( args_ ) -+ for ( uint i = 0; i < args_->size(); ++i ) -+ mhs = mhs_max(mhs, args_->at(i)->MinimalHeaderSize(env)); -+ } -+ break; -+ case EXPR_CASE: -+ { -+ mhs = operand_[0]->MinimalHeaderSize(env); -+ for ( uint i = 0; i < cases_->size(); ++i ) -+ { -+ CaseExpr * ce = cases_->at(i); -+ if ( ce->index() ) -+ for ( uint j = 0; j < ce->index()->size(); ++j ) -+ mhs = mhs_max(mhs, ce->index()->at(j)->MinimalHeaderSize(env)); -+ mhs = mhs_max(mhs, ce->value()->MinimalHeaderSize(env)); -+ } -+ } -+ break; - default: - // Evaluate every operand by default - mhs = 0; diff --git a/tools/binpac/patches/binpac-2.patch b/tools/binpac/patches/binpac-2.patch deleted file mode 100644 index fe946740c2..0000000000 --- a/tools/binpac/patches/binpac-2.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff -urN bro-1.2.1-orig/src/pac_expr.cc bro-1.2.1-ssl-binpac/src/pac_expr.cc ---- bro-1.2.1-orig/src/pac_expr.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_expr.cc 2007-05-04 14:31:11.728494000 -0700 -@@ -245,6 +245,12 @@ - out_cc->println("%s %s;", - val_type->DataTypeStr().c_str(), - env->LValue(val_var)); -+ -+ // force evaluation of IDs appearing in case stmt -+ operand_[0]->ForceIDEval(out_cc, env); -+ foreach(i, CaseExprList, cases_) -+ (*i)->value()->ForceIDEval(out_cc, env); -+ - out_cc->println("switch ( %s )", operand_[0]->EvalExpr(out_cc, env)); - - out_cc->inc_indent(); -@@ -386,6 +392,49 @@ - } - } - -+void Expr::ForceIDEval(Output* out_cc, Env* env) -+ { -+ switch ( expr_type_ ) -+ { -+ case EXPR_NUM: -+ case EXPR_SIZEOF: -+ case EXPR_OFFSETOF: -+ break; -+ -+ case EXPR_ID: -+ if ( ! env->Evaluated(id_) ) -+ env->Evaluate(out_cc, id_); -+ break; -+ -+ case EXPR_MEMBER: -+ operand_[0]->ForceIDEval(out_cc, env); -+ break; -+ -+ case EXPR_CALLARGS: -+ { -+ foreach(i, ExprList, args_) -+ (*i)->ForceIDEval(out_cc, env); -+ } -+ break; -+ -+ case EXPR_CASE: -+ { -+ operand_[0]->ForceIDEval(out_cc, env); -+ foreach(i, CaseExprList, cases_) -+ (*i)->value()->ForceIDEval(out_cc, env); -+ } -+ break; -+ -+ default: -+ // Evaluate every operand by default -+ for ( int i = 0; i < 3; ++i ) -+ if ( operand_[i] ) -+ operand_[i]->ForceIDEval(out_cc, env); -+ break; -+ } -+ } -+ -+ - const char* Expr::EvalExpr(Output* out_cc, Env* env) - { - GenEval(out_cc, env); -diff -urN bro-1.2.1-orig/src/pac_expr.h bro-1.2.1-ssl-binpac/src/pac_expr.h ---- bro-1.2.1-orig/src/pac_expr.h 2006-07-26 15:02:39.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_expr.h 2007-05-04 14:16:31.624287000 -0700 -@@ -56,6 +56,11 @@ - // - const char *EvalExpr(Output *out, Env *env); - -+ // force evaulation of IDs contained in this expression; -+ // necessary with case expr and conditional let fields (&if) -+ // for correct parsing of fields -+ void ForceIDEval(Output *out_cc, Env *env); -+ - // Returns the set_* function of the expression. - // The expression must be of form ID or x.ID. - string SetFunc(Output *out, Env *env); -diff -urN bro-1.2.1-orig/src/pac_let.cc bro-1.2.1-ssl-binpac/src/pac_let.cc ---- bro-1.2.1-orig/src/pac_let.cc 2006-07-26 15:02:39.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_let.cc 2007-05-04 15:32:09.695568000 -0700 -@@ -80,7 +80,12 @@ - if ( type_->attr_if_expr() ) - { - // A conditional field -+ - env->Evaluate(out_cc, type_->has_value_var()); -+ -+ // force evaluation of IDs contained in this expr -+ expr()->ForceIDEval(out_cc, env); -+ - out_cc->println("if ( %s )", - env->RValue(type_->has_value_var())); - out_cc->inc_indent(); diff --git a/tools/binpac/patches/binpac-3.patch b/tools/binpac/patches/binpac-3.patch deleted file mode 100644 index 5b520d5e09..0000000000 --- a/tools/binpac/patches/binpac-3.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -urN bro-1.2.1-orig/src/pac_let.cc bro-1.2.1-ssl-binpac/src/pac_let.cc ---- bro-1.2.1-orig/src/pac_let.cc 2006-07-26 15:02:39.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_let.cc 2007-05-04 15:32:09.695568000 -0700 -@@ -108,11 +108,6 @@ - void LetField::GenEval(Output* out_cc, Env* env) - { - GenParseCode(out_cc, env); -- if ( type_->attr_if_expr() ) -- { -- out_cc->println("BINPAC_ASSERT(%s);", -- env->RValue(type_->has_value_var())); -- } - } - - LetDecl::LetDecl(ID *id, Type *type, Expr *expr) -diff -urN bro-1.2.1-orig/src/pac_type.cc bro-1.2.1-ssl-binpac/src/pac_type.cc ---- bro-1.2.1-orig/src/pac_type.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_type.cc 2007-05-24 10:56:42.140658000 -0700 -@@ -316,9 +316,15 @@ - { - if ( DefineValueVar() ) - { -- out_h->println("%s %s const { return %s; }", -- DataTypeConstRefStr().c_str(), -- env->RValue(value_var()), lvalue()); -+ if ( attr_if_expr_ ) -+ out_h->println("%s %s const { BINPAC_ASSERT(%s); return %s; }", -+ DataTypeConstRefStr().c_str(), -+ env->RValue(value_var()), -+ env->RValue(has_value_var()), lvalue()); -+ else -+ out_h->println("%s %s const { return %s; }", -+ DataTypeConstRefStr().c_str(), -+ env->RValue(value_var()), lvalue()); - } - - foreach (i, FieldList, fields_) diff --git a/tools/binpac/patches/binpac-4.patch b/tools/binpac/patches/binpac-4.patch deleted file mode 100644 index feb644fba3..0000000000 --- a/tools/binpac/patches/binpac-4.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN bro-1.2.1-orig/src/pac_record.cc bro-1.2.1-ssl-binpac/src/pac_record.cc ---- bro-1.2.1-orig/src/pac_record.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_record.cc 2007-05-08 16:13:33.373850000 -0700 -@@ -123,5 +123,5 @@ - void RecordType::DoGenParseCode(Output* out_cc, Env* env, - const DataPtr& data, int flags) - { -- if ( StaticSize(env) >= 0 ) -+ if ( !incremental_input() && StaticSize(env) >= 0 ) - GenBoundaryCheck(out_cc, env, data); - - if ( incremental_parsing() ) diff --git a/tools/binpac/patches/binpac-6.patch b/tools/binpac/patches/binpac-6.patch deleted file mode 100644 index 9b13a1cef5..0000000000 --- a/tools/binpac/patches/binpac-6.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -urN bro-1.2.1-orig/src/lib/binpac_buffer.h bro-1.2.1-ssl-binpac/src/lib/binpac_buffer.h ---- bro-1.2.1-orig/src/lib/binpac_buffer.h 2006-07-26 15:02:38.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/lib/binpac_buffer.h 2007-05-09 16:14:54.501656000 -0700 -@@ -59,6 +59,11 @@ - return frame_length_; - } - -+ inline bool data_available() const -+ { -+ return buffer_n_ > 0 || orig_data_end_ > orig_data_begin_; -+ } -+ - void NewLine(); - // A negative frame_length represents a frame till EOF - void NewFrame(int frame_length, bool chunked_); -diff -urN bro-1.2.1-orig/src/pac_flow.cc bro-1.2.1-ssl-binpac/src/pac_flow.cc ---- bro-1.2.1-orig/src/pac_flow.cc 2006-10-12 14:13:12.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_flow.cc 2007-05-22 16:43:55.997562000 -0700 -@@ -272,7 +272,8 @@ - env_->RValue(begin_of_data), - env_->RValue(end_of_data)); - -- out_cc->println("while ( true )"); -+ out_cc->println("while ( %s->data_available() )", -+ env_->LValue(flow_buffer_id)); - out_cc->inc_indent(); - out_cc->println("{"); diff --git a/tools/binpac/patches/binpac-8.patch b/tools/binpac/patches/binpac-8.patch deleted file mode 100644 index f452027725..0000000000 --- a/tools/binpac/patches/binpac-8.patch +++ /dev/null @@ -1,190 +0,0 @@ -diff -urN bro-1.2.1-orig/src/pac_analyzer.cc bro-1.2.1-ssl-binpac/src/pac_analyzer.cc ---- bro-1.2.1-orig/src/pac_analyzer.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_analyzer.cc 2007-05-22 17:00:10.091531000 -0700 -@@ -26,8 +26,9 @@ - helpers_ = new AnalyzerHelperList(); - functions_ = new FunctionList(); - -- constructor_helper_ = 0; -- destructor_helper_ = 0; -+ constructor_helpers_ = new AnalyzerHelperList(); -+ destructor_helpers_ = new AnalyzerHelperList(); -+ eof_helpers_ = new AnalyzerHelperList(); - - SetAnalyzerContext(); - -@@ -41,6 +42,9 @@ - delete_list(AnalyzerHelperList, helpers_); - delete_list(FunctionList, functions_); - delete_list(ParamList, params_); -+ delete_list(AnalyzerHelperList, constructor_helpers_); -+ delete_list(AnalyzerHelperList, destructor_helpers_); -+ delete_list(AnalyzerHelperList, eof_helpers_); - } - - void AnalyzerDecl::AddElements(AnalyzerElementList *elemlist) -@@ -75,28 +79,20 @@ - AnalyzerHelper *helper_elem = - (AnalyzerHelper *) elem; - -- if ( helper_elem->helper_type() == -- AnalyzerHelper::INIT_CODE) -- { -- if ( constructor_helper_ ) -- { -- throw Exception(elem, -- "Repeated definition of %init code"); -- } -- constructor_helper_ = helper_elem; -+ switch ( helper_elem->helper_type() ) -+ { -+ case AnalyzerHelper::INIT_CODE: -+ constructor_helpers_->push_back(helper_elem); -+ break; -+ case AnalyzerHelper::CLEANUP_CODE: -+ destructor_helpers_->push_back(helper_elem); -+ break; -+ case AnalyzerHelper::EOF_CODE: -+ eof_helpers_->push_back(helper_elem); -+ break; -+ default: -+ helpers_->push_back(helper_elem); - } -- else if ( helper_elem->helper_type() == -- AnalyzerHelper::CLEANUP_CODE) -- { -- if ( destructor_helper_ ) -- { -- throw Exception(elem, -- "Repeated definition of %cleanup code"); -- } -- destructor_helper_ = helper_elem; -- } -- else -- helpers_->push_back(helper_elem); - } - break; - case AnalyzerElement::FUNCTION: -@@ -217,15 +213,19 @@ - void AnalyzerDecl::GenInitCode(Output *out_cc) - { - TypeDecl::GenInitCode(out_cc); -- if ( constructor_helper_ ) -- constructor_helper_->GenCode(0, out_cc, this); -+ foreach(i, AnalyzerHelperList, constructor_helpers_) -+ { -+ (*i)->GenCode(0, out_cc, this); -+ } - } - - void AnalyzerDecl::GenCleanUpCode(Output *out_cc) - { - TypeDecl::GenCleanUpCode(out_cc); -- if ( destructor_helper_ ) -- destructor_helper_->GenCode(0, out_cc, this); -+ foreach(i, AnalyzerHelperList, destructor_helpers_) -+ { -+ (*i)->GenCode(0, out_cc, this); -+ } - } - - void AnalyzerDecl::GenStateVarDecls(Output *out_h) -@@ -295,6 +295,7 @@ - break; - case INIT_CODE: - case CLEANUP_CODE: -+ case EOF_CODE: - out = out_cc; - break; - } -diff -urN bro-1.2.1-orig/src/pac_analyzer.h bro-1.2.1-ssl-binpac/src/pac_analyzer.h ---- bro-1.2.1-orig/src/pac_analyzer.h 2006-07-26 15:02:39.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_analyzer.h 2007-05-22 16:32:08.397926000 -0700 -@@ -76,8 +76,9 @@ - AnalyzerHelperList *helpers_; - FunctionList *functions_; - -- AnalyzerHelper *constructor_helper_; -- AnalyzerHelper *destructor_helper_; -+ AnalyzerHelperList *constructor_helpers_; -+ AnalyzerHelperList *destructor_helpers_; -+ AnalyzerHelperList *eof_helpers_; - }; - - class AnalyzerElement : public Object -@@ -117,6 +118,7 @@ - MEMBER_DECLS, - INIT_CODE, - CLEANUP_CODE, -+ EOF_CODE, - }; - AnalyzerHelper(Type helper_type, EmbeddedCode *code) - : AnalyzerElement(HELPER), -diff -urN bro-1.2.1-orig/src/pac_conn.cc bro-1.2.1-ssl-binpac/src/pac_conn.cc ---- bro-1.2.1-orig/src/pac_conn.cc 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_conn.cc 2007-05-22 16:42:35.406135000 -0700 -@@ -97,6 +97,12 @@ - out_cc->println("%s->%s();", - env_->LValue(downflow_id), - kFlowEOF); -+ -+ foreach(i, AnalyzerHelperList, eof_helpers_) -+ { -+ (*i)->GenCode(0, out_cc, this); -+ } -+ - out_cc->dec_indent(); - - out_cc->println("}"); -diff -urN bro-1.2.1-orig/src/pac_flow.cc bro-1.2.1-ssl-binpac/src/pac_flow.cc ---- bro-1.2.1-orig/src/pac_flow.cc 2006-10-12 14:13:12.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_flow.cc 2007-05-22 16:43:55.997562000 -0700 -@@ -151,6 +151,11 @@ - out_cc->inc_indent(); - out_cc->println("{"); - -+ foreach(i, AnalyzerHelperList, eof_helpers_) -+ { -+ (*i)->GenCode(0, out_cc, this); -+ } -+ - if ( dataunit_->type() == AnalyzerDataUnit::FLOWUNIT ) - { - out_cc->println("%s->set_eof();", -diff -urN bro-1.2.1-orig/src/pac_parse.yy bro-1.2.1-ssl-binpac/src/pac_parse.yy ---- bro-1.2.1-orig/src/pac_parse.yy 2006-10-12 14:13:12.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_parse.yy 2007-05-22 16:56:09.280526000 -0700 -@@ -22,7 +22,7 @@ - %token TOK_STATE TOK_ACTION TOK_WHEN TOK_HELPER - %token TOK_DATAUNIT TOK_FLOWDIR TOK_WITHCONTEXT - %token TOK_LPB_EXTERN TOK_LPB_HEADER TOK_LPB_CODE --%token TOK_LPB_MEMBER TOK_LPB_INIT TOK_LPB_CLEANUP -+%token TOK_LPB_MEMBER TOK_LPB_INIT TOK_LPB_CLEANUP TOK_LPB_EOF - %token TOK_LPB TOK_RPB - %token TOK_EMBEDDED_ATOM TOK_EMBEDDED_STRING - %token TOK_PAC_VAL TOK_PAC_SET TOK_PAC_TYPE TOK_PAC_TYPEOF TOK_PAC_CONST_DEF -@@ -795,6 +795,10 @@ - { - $$ = new AnalyzerHelper(AnalyzerHelper::CLEANUP_CODE, $2); - } -+ | TOK_LPB_EOF embedded_code TOK_RPB -+ { -+ $$ = new AnalyzerHelper(AnalyzerHelper::EOF_CODE, $2); -+ } - | TOK_FLOWDIR '=' tok_id optargs ';' - { - $$ = new AnalyzerFlow((AnalyzerFlow::Direction) $1, $3, $4); -diff -urN bro-1.2.1-orig/src/pac_scan.ll bro-1.2.1-ssl-binpac/src/pac_scan.ll ---- bro-1.2.1-orig/src/pac_scan.ll 2006-07-26 15:02:40.000000000 -0700 -+++ bro-1.2.1-ssl-binpac/src/pac_scan.ll 2007-05-22 16:55:19.349644000 -0700 -@@ -96,6 +96,10 @@ - BEGIN(EC); - return TOK_LPB_MEMBER; - } -+"%eof{" { -+ BEGIN(EC); -+ return TOK_LPB_EOF; -+ } - "%{" { - BEGIN(EC); - return TOK_LPB; diff --git a/tools/binpac/patches/brosslbinpacanalyzerpatches.zip b/tools/binpac/patches/brosslbinpacanalyzerpatches.zip deleted file mode 100644 index 4d89326f71..0000000000 Binary files a/tools/binpac/patches/brosslbinpacanalyzerpatches.zip and /dev/null differ