From 9a30a663e472774a45b78b3240f6a399637992fc Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Thu, 13 May 2010 01:10:56 +0000 Subject: Hmmm, apparently there was a corner case that would cause a disconnect to crater the server system. Lameness... --- src/server.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server.cpp b/src/server.cpp index 36d9d6c..e55713d 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -96,7 +96,17 @@ void Bu::Server::scan() try { Client *pClient = hClients.get( j ); - pClient->processOutput(); + try + { + pClient->processOutput(); + } + catch( Bu::SocketException &e ) + { + onClosedConnection( pClient ); + pClient->close(); + hClients.erase( j ); + FD_CLR( j, &fdActive ); + } } catch( Bu::HashException &e ) { -- cgit v1.2.3