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;
}
}