summaryrefslogtreecommitdiff
path: root/src/network/socket_handler.cpp
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2013-11-03 17:54:07 +0100
committerFlorent Le Coz <louiz@louiz.org>2013-11-03 17:55:23 +0100
commitd834d6ed0647ba7e51e81f600fe259156e2b8070 (patch)
tree4b7b63648e788fc3e1c4f68457c3f3a8baa3cd6d /src/network/socket_handler.cpp
parentf2f94618fcf87b4fc1ad86902c63a7a48be745b8 (diff)
downloadbiboumi-d834d6ed0647ba7e51e81f600fe259156e2b8070.tar.gz
biboumi-d834d6ed0647ba7e51e81f600fe259156e2b8070.tar.bz2
biboumi-d834d6ed0647ba7e51e81f600fe259156e2b8070.tar.xz
biboumi-d834d6ed0647ba7e51e81f600fe259156e2b8070.zip
Exit the poller when it handles no connection at all
Diffstat (limited to 'src/network/socket_handler.cpp')
-rw-r--r--src/network/socket_handler.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/network/socket_handler.cpp b/src/network/socket_handler.cpp
index e738302..737bbf5 100644
--- a/src/network/socket_handler.cpp
+++ b/src/network/socket_handler.cpp
@@ -66,7 +66,10 @@ void SocketHandler::on_recv()
ssize_t size = ::recv(this->socket, buf, 4096, 0);
if (0 == size)
- this->on_connection_close();
+ {
+ this->on_connection_close();
+ this->close();
+ }
else if (-1 == static_cast<ssize_t>(size))
throw std::runtime_error("Error reading from socket");
else