]> granicus.if.org Git - icinga2/commitdiff
Change return type for Socket::Pool to bool
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 4 Jul 2014 07:31:43 +0000 (09:31 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 4 Jul 2014 07:31:43 +0000 (09:31 +0200)
refs #6617

lib/base/socket.cpp
lib/base/socket.hpp

index 7057cc551695b291894f2156a6fe4e348731886c..452f1adab65cb13f1d497714a518d8109f4fcc90 100644 (file)
@@ -358,8 +358,10 @@ Socket::Ptr Socket::Accept(void)
        return make_shared<Socket>(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
+}
index 7dc3dca785525f70fabafb1b488ede424d2db48e..429b7f24ebba9f2a100c446dc9af304b32c4f6c5 100644 (file)
@@ -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);