diff --git a/CHANGES b/CHANGES index e09ccccab3..f2f271e141 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,13 @@ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +1.6-dev.3 Wed Dec 8 04:09:38 PST 2010 + +- Merge with Subversion repository as of r7137. Incorporated change: + + * Fix for packet processing resumption when a remote Bro dies + during state synchronization (Robin Sommer). + 1.6-dev.2 Wed Dec 8 03:57:03 PST 2010 - Compatibility fix for OpenSSL 1.0.0 (Christian Kreibich, Gregor diff --git a/VERSION b/VERSION index 145483ad7b..c83f86baee 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6-dev.2 +1.6-dev.3 diff --git a/src/RemoteSerializer.cc b/src/RemoteSerializer.cc index 8577435502..a9329cc9cb 100644 --- a/src/RemoteSerializer.cc +++ b/src/RemoteSerializer.cc @@ -681,7 +681,7 @@ bool RemoteSerializer::CloseConnection(Peer* peer) if ( peer->suspended_processing ) { net_continue_processing(); - current_peer->suspended_processing = false; + peer->suspended_processing = false; } if ( peer->state == Peer::CLOSING ) @@ -1606,6 +1606,12 @@ void RemoteSerializer::PeerDisconnected(Peer* peer) { assert(peer); + if ( peer->suspended_processing ) + { + net_continue_processing(); + peer->suspended_processing = false; + } + if ( peer->state == Peer::CLOSED || peer->state == Peer::INIT ) return; @@ -1736,6 +1742,12 @@ void RemoteSerializer::UnregisterHandlers(Peer* peer) void RemoteSerializer::RemovePeer(Peer* peer) { + if ( peer->suspended_processing ) + { + net_continue_processing(); + peer->suspended_processing = false; + } + peers.remove(peer); UnregisterHandlers(peer); @@ -2933,7 +2945,7 @@ void SocketComm::Run() struct timeval small_timeout; small_timeout.tv_sec = 0; small_timeout.tv_usec = - io->CanWrite() || io->CanRead() ? 10 : 10000; + io->CanWrite() || io->CanRead() ? 1 : 10; int a = select(max_fd + 1, &fd_read, &fd_write, &fd_except, &small_timeout);