[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