aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server.cpp1
-rw-r--r--src/socket.cpp4
2 files changed, 3 insertions, 2 deletions
diff --git a/src/server.cpp b/src/server.cpp
index b7dec41..bfa7880 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -92,6 +92,7 @@ void Bu::Server::scan()
92 if( !pClient->isOpen() ) 92 if( !pClient->isOpen() )
93 { 93 {
94 onClosedConnection( pClient ); 94 onClosedConnection( pClient );
95 pClient->close();
95 hClients.erase( j ); 96 hClients.erase( j );
96 FD_CLR( j, &fdActive ); 97 FD_CLR( j, &fdActive );
97 } 98 }
diff --git a/src/socket.cpp b/src/socket.cpp
index 46e6cd7..3ddc492 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -159,7 +159,7 @@ size_t Bu::Socket::read( void *pBuf, size_t nBytes )
159 bu_recv( nSocket, (char *) pBuf, nBytes, 0 ) ); 159 bu_recv( nSocket, (char *) pBuf, nBytes, 0 ) );
160 if( nRead == 0 ) 160 if( nRead == 0 )
161 { 161 {
162 bActive = false; 162 close();
163 throw SocketException( SocketException::cClosed, "Socket closed."); 163 throw SocketException( SocketException::cClosed, "Socket closed.");
164 } 164 }
165 if( nRead < 0 ) 165 if( nRead < 0 )
@@ -171,7 +171,7 @@ size_t Bu::Socket::read( void *pBuf, size_t nBytes )
171#else 171#else
172 if( errno == ENETRESET || errno == ECONNRESET ) 172 if( errno == ENETRESET || errno == ECONNRESET )
173 { 173 {
174 bActive = false; 174 close();
175 throw SocketException( SocketException::cClosed, 175 throw SocketException( SocketException::cClosed,
176 strerror(errno) ); 176 strerror(errno) );
177 } 177 }