[Bro] small patch for binpac (fwd)
jmzhou.ml at gmail.com
jmzhou.ml at gmail.com
Wed Apr 18 11:25:15 PDT 2007
Hi,
Attached is a small patch against binpac in bro-1.2.1-devel.tar.gz.
I think its meaning is clear. I hope to contribute more patches
later when I get time. :-)
Best wishes,
Jimmy
-------------- next part --------------
diff -urNp bro-1.2.1.orig/src/binpac/pac_common.h bro-1.2.1/src/binpac/pac_common.h
--- bro-1.2.1.orig/src/binpac/pac_common.h 2006-07-26 15:02:40.000000000 -0700
+++ bro-1.2.1/src/binpac/pac_common.h 2007-04-18 11:09:16.000000000 -0700
@@ -105,6 +105,11 @@ typedef vector<StateVar*> StateVarList;
if ( pc ) \
for ( ct::iterator i = (pc)->begin(); i != (pc)->end(); ++i )
+#define foreach_rev(i, ct, pc) \
+ if ( pc ) \
+ for ( ct::iterator i = (pc)->end(); i-- != (pc)->begin(); )
+
+
#define delete_list(ct, pc) \
{ \
foreach(delete_list_i, ct, pc) \
diff -urNp bro-1.2.1.orig/src/binpac/pac_expr.def bro-1.2.1/src/binpac/pac_expr.def
--- bro-1.2.1.orig/src/binpac/pac_expr.def 2006-07-26 15:02:39.000000000 -0700
+++ bro-1.2.1/src/binpac/pac_expr.def 2007-04-18 11:06:47.000000000 -0700
@@ -14,7 +14,7 @@ EXPR_DEF(EXPR_PLUS, 2, "%s + %s")
EXPR_DEF(EXPR_MINUS, 2, "%s - %s")
EXPR_DEF(EXPR_TIMES, 2, "%s * %s")
EXPR_DEF(EXPR_DIV, 2, "%s / %s")
-EXPR_DEF(EXPR_MOD, 2, "%s % %s")
+EXPR_DEF(EXPR_MOD, 2, "%s %% %s")
EXPR_DEF(EXPR_BITNOT, 1, "~%s")
EXPR_DEF(EXPR_BITAND, 2, "%s & %s")
EXPR_DEF(EXPR_BITOR, 2, "%s | %s")
diff -urNp bro-1.2.1.orig/src/binpac/pac_type.cc bro-1.2.1/src/binpac/pac_type.cc
--- bro-1.2.1.orig/src/binpac/pac_type.cc 2006-07-26 15:02:40.000000000 -0700
+++ bro-1.2.1/src/binpac/pac_type.cc 2007-04-18 11:09:48.000000000 -0700
@@ -367,7 +367,7 @@ void Type::GenInitCode(Output* out_cc, E
void Type::GenCleanUpCode(Output* out_cc, Env* env)
{
- foreach (i, FieldList, fields_)
+ foreach_rev (i, FieldList, fields_)
{
Field *f = *i;
if ( f->tof() != CASE_FIELD )
More information about the Bro
mailing list