Merge with Subversion repository as of r7137. Incorporated change:

* Fix for packet processing resumption when a remote Bro dies
      during state synchronization (Robin Sommer).
This commit is contained in:
Robin Sommer 2010-12-08 04:10:26 -08:00
parent c690a8b2f3
commit dc5d3560f7
3 changed files with 22 additions and 3 deletions

View file

@ -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 1.6-dev.2 Wed Dec 8 03:57:03 PST 2010
- Compatibility fix for OpenSSL 1.0.0 (Christian Kreibich, Gregor - Compatibility fix for OpenSSL 1.0.0 (Christian Kreibich, Gregor

View file

@ -1 +1 @@
1.6-dev.2 1.6-dev.3

View file

@ -681,7 +681,7 @@ bool RemoteSerializer::CloseConnection(Peer* peer)
if ( peer->suspended_processing ) if ( peer->suspended_processing )
{ {
net_continue_processing(); net_continue_processing();
current_peer->suspended_processing = false; peer->suspended_processing = false;
} }
if ( peer->state == Peer::CLOSING ) if ( peer->state == Peer::CLOSING )
@ -1606,6 +1606,12 @@ void RemoteSerializer::PeerDisconnected(Peer* peer)
{ {
assert(peer); assert(peer);
if ( peer->suspended_processing )
{
net_continue_processing();
peer->suspended_processing = false;
}
if ( peer->state == Peer::CLOSED || peer->state == Peer::INIT ) if ( peer->state == Peer::CLOSED || peer->state == Peer::INIT )
return; return;
@ -1736,6 +1742,12 @@ void RemoteSerializer::UnregisterHandlers(Peer* peer)
void RemoteSerializer::RemovePeer(Peer* peer) void RemoteSerializer::RemovePeer(Peer* peer)
{ {
if ( peer->suspended_processing )
{
net_continue_processing();
peer->suspended_processing = false;
}
peers.remove(peer); peers.remove(peer);
UnregisterHandlers(peer); UnregisterHandlers(peer);
@ -2933,7 +2945,7 @@ void SocketComm::Run()
struct timeval small_timeout; struct timeval small_timeout;
small_timeout.tv_sec = 0; small_timeout.tv_sec = 0;
small_timeout.tv_usec = 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, int a = select(max_fd + 1, &fd_read, &fd_write, &fd_except,
&small_timeout); &small_timeout);