]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5336] Fix EAGAIN/EWOULDBLOCK handling in UnixDomainSocket
authorThomas <tmark@isc.org>
Tue, 15 Aug 2017 15:40:09 +0000 (11:40 -0400)
committerThomas <tmark@isc.org>
Tue, 15 Aug 2017 15:40:09 +0000 (11:40 -0400)
src/lib/asiolink/unix_domain_socket.cc

index 44accc38542bcfbe0748c13e8ed3eb5ad35e8512..f17ec2e8f73f5b4452ab65c94892c86a56505be7 100644 (file)
@@ -213,8 +213,10 @@ UnixDomainSocketImpl::sendHandler(const UnixDomainSocket::Handler& remote_handle
     if ((ec.value() == boost::asio::error::would_block) ||
         (ec.value() == boost::asio::error::try_again)) {
         doSend(buffer, remote_handler);
+
+    } else {
+        remote_handler(ec, length);
     }
-    remote_handler(ec, length);
 }
 
 void
@@ -246,8 +248,10 @@ UnixDomainSocketImpl::receiveHandler(const UnixDomainSocket::Handler& remote_han
     if ((ec.value() == boost::asio::error::would_block) ||
         (ec.value() == boost::asio::error::try_again)) {
         doReceive(buffer, remote_handler);
+
+    } else {
+        remote_handler(ec, length);
     }
-    remote_handler(ec, length);
 }
 
 void