From: Gunnar Beutner Date: Fri, 4 Jul 2014 07:31:43 +0000 (+0200) Subject: Change return type for Socket::Pool to bool X-Git-Tag: v2.0.1~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b157ac54f55a50661baf907062450fccba5b505;p=icinga2 Change return type for Socket::Pool to bool refs #6617 --- diff --git a/lib/base/socket.cpp b/lib/base/socket.cpp index 7057cc551..452f1adab 100644 --- a/lib/base/socket.cpp +++ b/lib/base/socket.cpp @@ -358,8 +358,10 @@ Socket::Ptr Socket::Accept(void) return make_shared(fd); } -void Socket::Poll(bool read, bool write) +bool Socket::Poll(bool read, bool write) { + int rc; + #ifdef _WIN32 fd_set readfds, writefds, exceptfds; @@ -374,7 +376,9 @@ void Socket::Poll(bool read, bool write) FD_ZERO(&exceptfds); FD_SET(GetFD(), &exceptfds); - if (select(GetFD() + 1, &readfds, &writefds, &exceptfds, NULL) < 0) { + rc = select(GetFD() + 1, &readfds, &writefds, &exceptfds, NULL); + + if (rc < 0) { std::ostringstream msgbuf; msgbuf << "select() failed with return code " << WSAGetLastError() << ", \"" << Utility::FormatErrorNumber(WSAGetLastError()) << "\""; Log(LogCritical, "Socket", msgbuf.str()); @@ -389,7 +393,9 @@ void Socket::Poll(bool read, bool write) pfd.events = (read ? POLLIN : 0) | (write ? POLLOUT : 0); pfd.revents = 0; - if (poll(&pfd, 1, -1) < 0) { + rc = poll(&pfd, 1, -1); + + if (rc < 0) { std::ostringstream msgbuf; msgbuf << "poll() failed with return code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\""; Log(LogCritical, "Socket", msgbuf.str()); @@ -399,6 +405,8 @@ void Socket::Poll(bool read, bool write) << boost::errinfo_errno(errno)); } #endif /* _WIN32 */ + + return (rc != 0); } void Socket::MakeNonBlocking(void) @@ -408,4 +416,4 @@ void Socket::MakeNonBlocking(void) #else /* _WIN32 */ Utility::SetNonBlocking(GetFD()); #endif /* _WIN32 */ -} \ No newline at end of file +} diff --git a/lib/base/socket.hpp b/lib/base/socket.hpp index 7dc3dca78..429b7f24e 100644 --- a/lib/base/socket.hpp +++ b/lib/base/socket.hpp @@ -57,7 +57,7 @@ public: void Listen(void); Socket::Ptr Accept(void); - void Poll(bool read, bool write); + bool Poll(bool read, bool write); void MakeNonBlocking(void);