From 4b157ac54f55a50661baf907062450fccba5b505 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 4 Jul 2014 09:31:43 +0200 Subject: [PATCH] Change return type for Socket::Pool to bool refs #6617 --- lib/base/socket.cpp | 16 ++++++++++++---- lib/base/socket.hpp | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) 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);