summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2010-05-13 01:10:56 +0000
committerMike Buland <eichlan@xagasoft.com>2010-05-13 01:10:56 +0000
commit9a30a663e472774a45b78b3240f6a399637992fc (patch)
treef0758fa4581600c375c9fddec18d54f81463e075 /src/server.cpp
parent6acfc972c2d5734e62c45b4803ef18101fc1dcb2 (diff)
downloadlibbu++-9a30a663e472774a45b78b3240f6a399637992fc.tar.gz
libbu++-9a30a663e472774a45b78b3240f6a399637992fc.tar.bz2
libbu++-9a30a663e472774a45b78b3240f6a399637992fc.tar.xz
libbu++-9a30a663e472774a45b78b3240f6a399637992fc.zip
Hmmm, apparently there was a corner case that would cause a disconnect to
crater the server system. Lameness...
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp12
1 files changed, 11 insertions, 1 deletions
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()
96 try 96 try
97 { 97 {
98 Client *pClient = hClients.get( j ); 98 Client *pClient = hClients.get( j );
99 pClient->processOutput(); 99 try
100 {
101 pClient->processOutput();
102 }
103 catch( Bu::SocketException &e )
104 {
105 onClosedConnection( pClient );
106 pClient->close();
107 hClients.erase( j );
108 FD_CLR( j, &fdActive );
109 }
100 } 110 }
101 catch( Bu::HashException &e ) 111 catch( Bu::HashException &e )
102 { 112 {