From 204d680cf8aec2aef264aa3432e56153bc95410c Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Sun, 22 May 2011 23:38:38 +0200 Subject: [PATCH] xmlrpc2di: ignore EAGAIN/EWOULDBLOCK result on accept + clearer logic parenthesis --- apps/xmlrpc2di/MultithreadXmlRpcServer.cpp | 4 +++- apps/xmlrpc2di/xmlrpc++/src/XmlRpcDispatch.cpp | 2 +- apps/xmlrpc2di/xmlrpc++/src/XmlRpcServer.cpp | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/xmlrpc2di/MultithreadXmlRpcServer.cpp b/apps/xmlrpc2di/MultithreadXmlRpcServer.cpp index 88c5de70..438c89d1 100644 --- a/apps/xmlrpc2di/MultithreadXmlRpcServer.cpp +++ b/apps/xmlrpc2di/MultithreadXmlRpcServer.cpp @@ -97,8 +97,10 @@ void MultithreadXmlRpcServer::acceptConnection() int s = XmlRpcSocket::accept(this->getfd()); if (s < 0) { - ERROR("MultithreadXmlRpcServer::acceptConnection: Could not accept connection (%s).", + if (s != EAGAIN && s != EWOULDBLOCK) { + ERROR("MultithreadXmlRpcServer::acceptConnection: Could not accept connection (%s).", XmlRpcSocket::getErrorMsg().c_str()); + } } else if ( ! XmlRpcSocket::setNonBlocking(s)) diff --git a/apps/xmlrpc2di/xmlrpc++/src/XmlRpcDispatch.cpp b/apps/xmlrpc2di/xmlrpc++/src/XmlRpcDispatch.cpp index 99741fa0..13d09162 100644 --- a/apps/xmlrpc2di/xmlrpc++/src/XmlRpcDispatch.cpp +++ b/apps/xmlrpc2di/xmlrpc++/src/XmlRpcDispatch.cpp @@ -228,7 +228,7 @@ XmlRpcDispatch::waitForAndProcessEvents(double timeout) newMask |= src->handleEvent(WritableEvent); ++nset; } - if (fds[i].revents & POLLERR|POLLNVAL|POLLHUP) + if (fds[i].revents & (POLLERR|POLLNVAL|POLLHUP)) { newMask |= src->handleEvent(Exception); ++nset; diff --git a/apps/xmlrpc2di/xmlrpc++/src/XmlRpcServer.cpp b/apps/xmlrpc2di/xmlrpc++/src/XmlRpcServer.cpp index 139b9998..3a8e8040 100644 --- a/apps/xmlrpc2di/xmlrpc++/src/XmlRpcServer.cpp +++ b/apps/xmlrpc2di/xmlrpc++/src/XmlRpcServer.cpp @@ -175,7 +175,9 @@ XmlRpcServer::acceptConnection() if (s < 0) { //this->close(); - XmlRpcUtil::error("XmlRpcServer::acceptConnection: Could not accept connection (%s).", XmlRpcSocket::getErrorMsg().c_str()); + if (s != EAGAIN && s != EWOULDBLOCK) { + XmlRpcUtil::error("XmlRpcServer::acceptConnection: Could not accept connection (%s).", XmlRpcSocket::getErrorMsg().c_str()); + } } else if ( ! XmlRpcSocket::setNonBlocking(s)) {