Index: src/Conn.h
===================================================================
RCS file: /src/cvs/bro/src/Conn.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- src/Conn.h	18 Nov 2004 17:37:37 -0000	1.1.1.1
+++ src/Conn.h	28 Dec 2004 17:50:10 -0000	1.2
@@ -1,4 +1,4 @@
-// $Id: Conn.h,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $
+// $Id: Conn.h,v 1.2 2004/12/28 17:50:10 lindauer Exp $
 //
 // Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002
 //      The Regents of the University of California.  All rights reserved.
@@ -268,6 +268,10 @@
 	void AddTimer(timer_func timer, double delta_t, int do_expire,
 			TimerType type);
 
+	// TCP_Connection must be a friend even though it is a subclass 
+	// because it cannot otherwise access proteced functions 
+	// through Connection (as of gcc 3.4).
+	friend class TCP_Connection;
 	friend class ConnectionTimer;
 	void RemoveTimer(Timer* t);
 
Index: src/PrefixTable.h
===================================================================
RCS file: /src/cvs/bro/src/PrefixTable.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- src/PrefixTable.h	18 Nov 2004 17:37:37 -0000	1.1.1.1
+++ src/PrefixTable.h	28 Dec 2004 17:59:42 -0000	1.2
@@ -1,4 +1,4 @@
-// $Id: PrefixTable.h,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $
+// $Id: PrefixTable.h,v 1.2 2004/12/28 17:59:42 lindauer Exp $
 
 #ifndef PREFIXTABLE_H
 #define PREFIXTABLE_H
@@ -11,6 +11,16 @@
 }
 
 class PrefixTable {
+private:
+	struct iterator {
+		patricia_node_t* Xstack[PATRICIA_MAXBITS+1];
+		patricia_node_t** Xsp;
+		patricia_node_t* Xrn;
+		patricia_node_t* Xnode;
+	};
+
+	patricia_tree_t* tree;
+
 public:
 	PrefixTable()	{ tree = New_Patricia(128); }
 	~PrefixTable()	{ Destroy_Patricia(tree, 0); }
@@ -35,19 +45,9 @@
 
 	void Clear()	{ Clear_Patricia(tree, 0); }
 
-	struct iterator;
+	//struct iterator;
 	iterator InitIterator();
 	void* GetNext(iterator* i);
-
-private:
-	struct iterator {
-		patricia_node_t* Xstack[PATRICIA_MAXBITS+1];
-		patricia_node_t** Xsp;
-		patricia_node_t* Xrn;
-		patricia_node_t* Xnode;
-	};
-
-	patricia_tree_t* tree;
 };
 
 #endif
Index: src/SSLv3.cc
===================================================================
RCS file: /src/cvs/bro/src/SSLv3.cc,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- src/SSLv3.cc	18 Nov 2004 17:37:37 -0000	1.1.1.1
+++ src/SSLv3.cc	28 Dec 2004 17:50:10 -0000	1.2
@@ -1,4 +1,4 @@
-// $Id: SSLv3.cc,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $
+// $Id: SSLv3.cc,v 1.2 2004/12/28 17:50:10 lindauer Exp $
 
 #include "SSLv3.h"
 #include "SSLCiphers.h"
@@ -539,11 +539,13 @@
 						}
 
 					uint16 modulusLength = uint16(pTemp[4] << 8 ) | pTemp[5];
+#ifdef WANT_USELESS_COMPARISON
 					if ( modulusLength > 65535 )
 						{
 						Weird("SSLv3x: RSA modulus length to long in server-key-exchange!");
 						return;
 						}
+#endif
 
 					if ( modulusLength + 4 > rec->length )
 						{
@@ -552,11 +554,13 @@
 						}
 
 					uint16 exponentLength = uint16(pTemp[6 + modulusLength] << 8 ) | pTemp[7 + modulusLength];
+#ifdef WANT_USELESS_COMPARISON
 					if ( exponentLength > 65535 )
 						{
 						Weird("SSLv3x: RSA exponent length to long in server-key-exchange!");
 						return;
 						}
+#endif
 
 					if ( modulusLength + exponentLength + 4 > rec->length )
 						{
@@ -582,11 +586,13 @@
 							}
 
 						uint16 dh_pLength = (uint16) (pTemp[4] << 8 ) | pTemp[5];
+#ifdef WANT_USELESS_COMPARISON
 						if ( dh_pLength > 65535 )
 							{
 							Weird("SSLv3x: DH prime modulus length to long in server-key-exchange!");
 							return;
 							}
+#endif
 
 						if ( dh_pLength + 4 > rec->length )
 							{
@@ -595,18 +601,22 @@
 							}
 
 						uint16 dh_gLength = uint16(pTemp[6 + dh_pLength] << 8 ) | pTemp[7 + dh_pLength];
+#ifdef WANT_USELESS_COMPARISON
 						if ( dh_gLength > 65535 )
 							{
 							Weird("SSLv3x: DH generator length to long in server-key-exchange!");
 							return;
 							}
+#endif
 
 						uint16 dh_YsLength = uint16(pTemp[8 + dh_pLength + dh_gLength] << 8 ) | pTemp[9 + dh_pLength + dh_gLength];
+#ifdef WANT_USELESS_COMPARISON
 						if ( dh_YsLength > 65535 )
 							{
 							Weird("SSLv3x: DH server's public value length to long in server-key-exchange!");
 							return;
 							}
+#endif
 						if ( dh_pLength + dh_gLength + dh_YsLength + 6 > rec->length )
 							{
 							Weird("SSLv3x: Corrupt length fields in server-key-exchange!");
Index: src/main.cc
===================================================================
RCS file: /src/cvs/bro/src/main.cc,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- src/main.cc	18 Nov 2004 17:37:37 -0000	1.1.1.1
+++ src/main.cc	28 Dec 2004 17:50:10 -0000	1.2
@@ -1,4 +1,4 @@
-// $Id: main.cc,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $
+// $Id: main.cc,v 1.2 2004/12/28 17:50:10 lindauer Exp $
 //
 // Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
 //      The Regents of the University of California.  All rights reserved.
@@ -323,7 +323,7 @@
 int main(int argc, char** argv)
 	{
 	bro_argc = argc;
-	bro_argv = new (char*)[argc];
+	bro_argv = new char* [argc];
 
 	for ( int i = 0; i < argc; i++ )
 		bro_argv[i] = copy_string(argv[i]);
Index: src/scan.cc
===================================================================
RCS file: /src/cvs/bro/src/scan.cc,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- src/scan.cc	18 Nov 2004 17:37:37 -0000	1.1.1.1
+++ src/scan.cc	28 Dec 2004 17:50:10 -0000	1.2
@@ -20,7 +20,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /src/cvs/bro/src/scan.cc,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $
+ * $Header: /src/cvs/bro/src/scan.cc,v 1.2 2004/12/28 17:50:10 lindauer Exp $
  * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.4 1999/10/27 07:56:44 obrien Exp $
  */
 
@@ -873,7 +873,7 @@
 char *yytext;
 #line 1 "scan.l"
 #define INITIAL 0
-/* $Id: scan.cc,v 1.1.1.1 2004/11/18 17:37:37 jtt Exp $ */
+/* $Id: scan.cc,v 1.2 2004/12/28 17:50:10 lindauer Exp $ */
 #line 3 "scan.l"
 // Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 //      The Regents of the University of California.  All rights reserved.
@@ -931,13 +931,11 @@
 #define YY_USER_ACTION	strncpy(last_tok, yytext, sizeof(last_tok) - 1);
 #define YY_USER_INIT	last_tok[0] = '\0';
 
-extern "C" const char* const sys_errlist[];
-
 // We define our own YY_INPUT because we want to trap the case where
 // a read fails.
 #define YY_INPUT(buf,result,max_size) \
 	if ( ((result = fread(buf, 1, max_size, yyin)) == 0) && ferror(yyin) ) \
-		error(fmt("read failed with \"%s\"", sys_errlist[errno]));
+		error(fmt("read failed with \"%s\"", strerror(errno)));
 
 // Files we have already scanned (or are in the process of scanning).
 static PList(char) files_scanned;
