THRIFT-2038 THRIFT_INVALID_SOCKET added to PlatformSocket.h
Patch: Konrad Grochowski
diff --git a/lib/cpp/src/thrift/server/TNonblockingServer.cpp b/lib/cpp/src/thrift/server/TNonblockingServer.cpp
index dcc90e2..c556d96 100644
--- a/lib/cpp/src/thrift/server/TNonblockingServer.cpp
+++ b/lib/cpp/src/thrift/server/TNonblockingServer.cpp
@@ -1206,7 +1206,7 @@
 
   for (uint32_t id = 0; id < numIOThreads_; ++id) {
     // the first IO thread also does the listening on server socket
-    THRIFT_SOCKET listenFd = (id == 0 ? serverSocket_ : -1);
+    THRIFT_SOCKET listenFd = (id == 0 ? serverSocket_ : THRIFT_INVALID_SOCKET);
 
     shared_ptr<TNonblockingIOThread> thread(
       new TNonblockingIOThread(this, id, listenFd, useHighPriorityIOThreads_));
@@ -1298,7 +1298,7 @@
       GlobalOutput.perror("TNonblockingIOThread listenSocket_ close(): ",
                           THRIFT_GET_SOCKET_ERROR);
     }
-    listenSocket_ = TNonblockingServer::INVALID_SOCKET_VALUE;
+    listenSocket_ = THRIFT_INVALID_SOCKET;
   }
 
   for (int i = 0; i < 2; ++i) {
@@ -1307,7 +1307,7 @@
         GlobalOutput.perror("TNonblockingIOThread notificationPipe close(): ",
                             THRIFT_GET_SOCKET_ERROR);
       }
-      notificationPipeFDs_[i] = TNonblockingServer::INVALID_SOCKET_VALUE;
+      notificationPipeFDs_[i] = THRIFT_INVALID_SOCKET;
     }
   }
 }
diff --git a/lib/cpp/src/thrift/server/TNonblockingServer.h b/lib/cpp/src/thrift/server/TNonblockingServer.h
index 585aa79..532d4ae 100644
--- a/lib/cpp/src/thrift/server/TNonblockingServer.h
+++ b/lib/cpp/src/thrift/server/TNonblockingServer.h
@@ -145,9 +145,6 @@
   /// # of IO threads to use by default
   static const int DEFAULT_IO_THREADS = 1;
 
-  /// File descriptor of an invalid socket
-  static const THRIFT_SOCKET INVALID_SOCKET_VALUE = -1;
-
   /// # of IO threads this server will use
   size_t numIOThreads_;
 
@@ -277,7 +274,7 @@
   void handleEvent(THRIFT_SOCKET fd, short which);
 
   void init(int port) {
-    serverSocket_ = -1;
+    serverSocket_ = THRIFT_INVALID_SOCKET;
     numIOThreads_ = DEFAULT_IO_THREADS;
     nextIOThread_ = 0;
     useHighPriorityIOThreads_ = false;
diff --git a/lib/cpp/src/thrift/transport/PlatformSocket.h b/lib/cpp/src/thrift/transport/PlatformSocket.h
index 40a4246..58d68a4 100644
--- a/lib/cpp/src/thrift/transport/PlatformSocket.h
+++ b/lib/cpp/src/thrift/transport/PlatformSocket.h
@@ -32,6 +32,7 @@
 #  define THRIFT_EPIPE WSAECONNRESET
 #  define THRIFT_NO_SOCKET_CACHING SO_EXCLUSIVEADDRUSE
 #  define THRIFT_SOCKET SOCKET
+#  define THRIFT_INVALID_SOCKET INVALID_SOCKET
 #  define THRIFT_SOCKETPAIR thrift_socketpair
 #  define THRIFT_FCNTL thrift_fcntl
 #  define THRIFT_O_NONBLOCK 1
@@ -70,6 +71,7 @@
 #  define THRIFT_EPIPE       EPIPE
 #  define THRIFT_NO_SOCKET_CACHING SO_REUSEADDR
 #  define THRIFT_SOCKET int
+#  define THRIFT_INVALID_SOCKET (-1)
 #  define THRIFT_SOCKETPAIR socketpair
 #  define THRIFT_FCNTL fcntl
 #  define THRIFT_O_NONBLOCK O_NONBLOCK
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp
index dc3cb58..4cecc3b 100644
--- a/lib/cpp/src/thrift/transport/TServerSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp
@@ -76,7 +76,7 @@
 
 TServerSocket::TServerSocket(int port) :
   port_(port),
-  serverSocket_(-1),
+  serverSocket_(THRIFT_INVALID_SOCKET),
   acceptBacklog_(DEFAULT_BACKLOG),
   sendTimeout_(0),
   recvTimeout_(0),
@@ -85,12 +85,12 @@
   retryDelay_(0),
   tcpSendBuffer_(0),
   tcpRecvBuffer_(0),
-  intSock1_(-1),
-  intSock2_(-1) {}
+  intSock1_(THRIFT_INVALID_SOCKET),
+  intSock2_(THRIFT_INVALID_SOCKET) {}
 
 TServerSocket::TServerSocket(int port, int sendTimeout, int recvTimeout) :
   port_(port),
-  serverSocket_(-1),
+  serverSocket_(THRIFT_INVALID_SOCKET),
   acceptBacklog_(DEFAULT_BACKLOG),
   sendTimeout_(sendTimeout),
   recvTimeout_(recvTimeout),
@@ -99,13 +99,13 @@
   retryDelay_(0),
   tcpSendBuffer_(0),
   tcpRecvBuffer_(0),
-  intSock1_(-1),
-  intSock2_(-1) {}
+  intSock1_(THRIFT_INVALID_SOCKET),
+  intSock2_(THRIFT_INVALID_SOCKET) {}
 
 TServerSocket::TServerSocket(string path) :
   port_(0),
   path_(path),
-  serverSocket_(-1),
+  serverSocket_(THRIFT_INVALID_SOCKET),
   acceptBacklog_(DEFAULT_BACKLOG),
   sendTimeout_(0),
   recvTimeout_(0),
@@ -114,8 +114,8 @@
   retryDelay_(0),
   tcpSendBuffer_(0),
   tcpRecvBuffer_(0),
-  intSock1_(-1),
-  intSock2_(-1) {}
+  intSock1_(THRIFT_INVALID_SOCKET),
+  intSock2_(THRIFT_INVALID_SOCKET) {}
 
 TServerSocket::~TServerSocket() {
   close();
@@ -157,8 +157,8 @@
   THRIFT_SOCKET sv[2];
   if (-1 == THRIFT_SOCKETPAIR(AF_LOCAL, SOCK_STREAM, 0, sv)) {
     GlobalOutput.perror("TServerSocket::listen() socketpair() ", THRIFT_GET_SOCKET_ERROR);
-    intSock1_ = -1;
-    intSock2_ = -1;
+    intSock1_ = THRIFT_INVALID_SOCKET;
+    intSock2_ = THRIFT_INVALID_SOCKET;
   } else {
     intSock1_ = sv[1];
     intSock2_ = sv[0];
@@ -194,7 +194,7 @@
     serverSocket_ = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
   }
 
-  if (serverSocket_ == -1) {
+  if (serverSocket_ == THRIFT_INVALID_SOCKET) {
     int errno_copy = THRIFT_GET_SOCKET_ERROR;
     GlobalOutput.perror("TServerSocket::listen() socket() ", errno_copy);
     close();
@@ -366,7 +366,7 @@
 }
 
 shared_ptr<TTransport> TServerSocket::acceptImpl() {
-  if (serverSocket_ == -1) {
+  if (serverSocket_ == THRIFT_INVALID_SOCKET) {
     throw TTransportException(TTransportException::NOT_OPEN, "TServerSocket not listening");
   }
 
@@ -379,7 +379,7 @@
     std::memset(fds, 0 , sizeof(fds));
     fds[0].fd = serverSocket_;
     fds[0].events = THRIFT_POLLIN;
-    if (intSock2_ != -1) {
+    if (intSock2_ != THRIFT_INVALID_SOCKET) {
       fds[1].fd = intSock2_;
       fds[1].events = THRIFT_POLLIN;
     }
@@ -401,7 +401,8 @@
       throw TTransportException(TTransportException::UNKNOWN, "Unknown", errno_copy);
     } else if (ret > 0) {
       // Check for an interrupt signal
-      if (intSock2_ != -1 && (fds[1].revents & THRIFT_POLLIN)) {
+      if (intSock2_ != THRIFT_INVALID_SOCKET
+          && (fds[1].revents & THRIFT_POLLIN)) {
         int8_t buf;
         if (-1 == recv(intSock2_, cast_sockopt(&buf), sizeof(int8_t), 0)) {
           GlobalOutput.perror("TServerSocket::acceptImpl() recv() interrupt ", THRIFT_GET_SOCKET_ERROR);
@@ -462,7 +463,7 @@
 }
 
 void TServerSocket::interrupt() {
-  if (intSock1_ != -1) {
+  if (intSock1_ != THRIFT_INVALID_SOCKET) {
     int8_t byte = 0;
     if (-1 == send(intSock1_, cast_sockopt(&byte), sizeof(int8_t), 0)) {
       GlobalOutput.perror("TServerSocket::interrupt() send() ", THRIFT_GET_SOCKET_ERROR);
@@ -471,19 +472,19 @@
 }
 
 void TServerSocket::close() {
-  if (serverSocket_ != -1) {
+  if (serverSocket_ != THRIFT_INVALID_SOCKET) {
     shutdown(serverSocket_, THRIFT_SHUT_RDWR);
     ::THRIFT_CLOSESOCKET(serverSocket_);
   }
-  if (intSock1_ != -1) {
+  if (intSock1_ != THRIFT_INVALID_SOCKET) {
       ::THRIFT_CLOSESOCKET(intSock1_);
   }
-  if (intSock2_ != -1) {
+  if (intSock2_ != THRIFT_INVALID_SOCKET) {
     ::THRIFT_CLOSESOCKET(intSock2_);
   }
-  serverSocket_ = -1;
-  intSock1_ = -1;
-  intSock2_ = -1;
+  serverSocket_ = THRIFT_INVALID_SOCKET;
+  intSock1_ = THRIFT_INVALID_SOCKET;
+  intSock2_ = THRIFT_INVALID_SOCKET;
 }
 
 }}} // apache::thrift::transport
diff --git a/lib/cpp/src/thrift/transport/TSocket.cpp b/lib/cpp/src/thrift/transport/TSocket.cpp
index a9a752c..d521bb5 100644
--- a/lib/cpp/src/thrift/transport/TSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TSocket.cpp
@@ -79,7 +79,7 @@
   host_(host),
   port_(port),
   path_(""),
-  socket_(-1),
+  socket_(THRIFT_INVALID_SOCKET),
   connTimeout_(0),
   sendTimeout_(0),
   recvTimeout_(0),
@@ -95,7 +95,7 @@
   host_(""),
   port_(0),
   path_(path),
-  socket_(-1),
+  socket_(THRIFT_INVALID_SOCKET),
   connTimeout_(0),
   sendTimeout_(0),
   recvTimeout_(0),
@@ -112,7 +112,7 @@
   host_(""),
   port_(0),
   path_(""),
-  socket_(-1),
+  socket_(THRIFT_INVALID_SOCKET),
   connTimeout_(0),
   sendTimeout_(0),
   recvTimeout_(0),
@@ -147,7 +147,7 @@
 }
 
 bool TSocket::isOpen() {
-  return (socket_ != -1);
+  return (socket_ != THRIFT_INVALID_SOCKET);
 }
 
 bool TSocket::peek() {
@@ -187,7 +187,7 @@
     socket_ = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
   }
 
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     int errno_copy = THRIFT_GET_SOCKET_ERROR;
     GlobalOutput.perror("TSocket::open() socket() " + getSocketInfo(), errno_copy);
     throw TTransportException(TTransportException::NOT_OPEN, "socket()", errno_copy);
@@ -394,22 +394,22 @@
 }
 
 void TSocket::close() {
-  if (socket_ != -1) {
+  if (socket_ != THRIFT_INVALID_SOCKET) {
     shutdown(socket_, THRIFT_SHUT_RDWR);
     ::THRIFT_CLOSESOCKET(socket_);
   }
-  socket_ = -1;
+  socket_ = THRIFT_INVALID_SOCKET;
 }
 
 void TSocket::setSocketFD(THRIFT_SOCKET socket) {
-  if (socket_ != -1) {
+  if (socket_ != THRIFT_INVALID_SOCKET) {
     close();
   }
   socket_ = socket;
 }
 
 uint32_t TSocket::read(uint8_t* buf, uint32_t len) {
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     throw TTransportException(TTransportException::NOT_OPEN, "Called read on non-open socket");
   }
 
@@ -541,7 +541,7 @@
 }
 
 uint32_t TSocket::write_partial(const uint8_t* buf, uint32_t len) {
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     throw TTransportException(TTransportException::NOT_OPEN, "Called write on non-open socket");
   }
 
@@ -599,7 +599,7 @@
 void TSocket::setLinger(bool on, int linger) {
   lingerOn_ = on;
   lingerVal_ = linger;
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     return;
   }
 
@@ -613,7 +613,7 @@
 
 void TSocket::setNoDelay(bool noDelay) {
   noDelay_ = noDelay;
-  if (socket_ == -1 || !path_.empty()) {
+  if (socket_ == THRIFT_INVALID_SOCKET || !path_.empty()) {
     return;
   }
 
@@ -639,7 +639,7 @@
   }
   recvTimeout_ = ms;
 
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     return;
   }
 
@@ -664,7 +664,7 @@
   }
   sendTimeout_ = ms;
 
-  if (socket_ == -1) {
+  if (socket_ == THRIFT_INVALID_SOCKET) {
     return;
   }
 
@@ -698,7 +698,7 @@
     struct sockaddr* addrPtr;
     socklen_t addrLen;
 
-    if (socket_ == -1) {
+    if (socket_ == THRIFT_INVALID_SOCKET) {
       return host_;
     }
 
@@ -732,7 +732,7 @@
     struct sockaddr* addrPtr;
     socklen_t addrLen;
 
-    if (socket_ == -1) {
+    if (socket_ == THRIFT_INVALID_SOCKET) {
       return peerAddress_;
     }
 
diff --git a/lib/cpp/src/thrift/transport/TSocketPool.cpp b/lib/cpp/src/thrift/transport/TSocketPool.cpp
index c468fb3..e0b286a 100644
--- a/lib/cpp/src/thrift/transport/TSocketPool.cpp
+++ b/lib/cpp/src/thrift/transport/TSocketPool.cpp
@@ -37,7 +37,7 @@
 TSocketPoolServer::TSocketPoolServer()
   : host_(""),
     port_(0),
-    socket_(-1),
+    socket_(THRIFT_INVALID_SOCKET),
     lastFailTime_(0),
     consecutiveFailures_(0) {}
 
@@ -47,7 +47,7 @@
 TSocketPoolServer::TSocketPoolServer(const string &host, int port)
   : host_(host),
     port_(port),
-    socket_(-1),
+    socket_(THRIFT_INVALID_SOCKET),
     lastFailTime_(0),
     consecutiveFailures_(0) {}
 
@@ -178,7 +178,7 @@
 
   size_t numServers = servers_.size();
   if (numServers == 0) {
-    socket_ = -1;
+    socket_ = THRIFT_INVALID_SOCKET;
     throw TTransportException(TTransportException::NOT_OPEN);
   }
 
@@ -219,7 +219,7 @@
         } catch (TException e) {
           string errStr = "TSocketPool::open failed "+getSocketInfo()+": "+e.what();
           GlobalOutput(errStr.c_str());
-          socket_ = -1;
+          socket_ = THRIFT_INVALID_SOCKET;
           continue;
         }
 
@@ -247,7 +247,7 @@
 void TSocketPool::close() {
   TSocket::close();
   if (currentServer_) {
-    currentServer_->socket_ = -1;
+    currentServer_->socket_ = THRIFT_INVALID_SOCKET;
   }
 }