From 0be9ffacb782ee3cf4f7681f83e1796cb2be0efa Mon Sep 17 00:00:00 2001 From: Roger Meier Date: Fri, 19 Jul 2013 21:10:01 +0200 Subject: [PATCH] THRIFT-2038 THRIFT_INVALID_SOCKET added to PlatformSocket.h Patch: Konrad Grochowski --- .../src/thrift/server/TNonblockingServer.cpp | 6 +-- .../src/thrift/server/TNonblockingServer.h | 5 +-- lib/cpp/src/thrift/transport/PlatformSocket.h | 2 + .../src/thrift/transport/TServerSocket.cpp | 45 ++++++++++--------- lib/cpp/src/thrift/transport/TSocket.cpp | 32 ++++++------- lib/cpp/src/thrift/transport/TSocketPool.cpp | 10 ++--- 6 files changed, 50 insertions(+), 50 deletions(-) diff --git a/lib/cpp/src/thrift/server/TNonblockingServer.cpp b/lib/cpp/src/thrift/server/TNonblockingServer.cpp index dcc90e25..c556d96a 100644 --- a/lib/cpp/src/thrift/server/TNonblockingServer.cpp +++ b/lib/cpp/src/thrift/server/TNonblockingServer.cpp @@ -1206,7 +1206,7 @@ void TNonblockingServer::registerEvents(event_base* user_event_base) { 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 thread( new TNonblockingIOThread(this, id, listenFd, useHighPriorityIOThreads_)); @@ -1298,7 +1298,7 @@ TNonblockingIOThread::~TNonblockingIOThread() { 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 @@ TNonblockingIOThread::~TNonblockingIOThread() { 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 585aa79b..532d4ae9 100644 --- a/lib/cpp/src/thrift/server/TNonblockingServer.h +++ b/lib/cpp/src/thrift/server/TNonblockingServer.h @@ -145,9 +145,6 @@ class TNonblockingServer : public TServer { /// # 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 @@ class TNonblockingServer : public TServer { 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 40a42460..58d68a47 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 dc3cb586..4cecc3bb 100644 --- a/lib/cpp/src/thrift/transport/TServerSocket.cpp +++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp @@ -76,7 +76,7 @@ using boost::shared_ptr; TServerSocket::TServerSocket(int port) : port_(port), - serverSocket_(-1), + serverSocket_(THRIFT_INVALID_SOCKET), acceptBacklog_(DEFAULT_BACKLOG), sendTimeout_(0), recvTimeout_(0), @@ -85,12 +85,12 @@ TServerSocket::TServerSocket(int port) : 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 @@ TServerSocket::TServerSocket(int port, int sendTimeout, int recvTimeout) : 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 @@ TServerSocket::TServerSocket(string path) : 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 @@ void TServerSocket::listen() { 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 @@ void TServerSocket::listen() { 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 @@ void TServerSocket::listen() { } shared_ptr TServerSocket::acceptImpl() { - if (serverSocket_ == -1) { + if (serverSocket_ == THRIFT_INVALID_SOCKET) { throw TTransportException(TTransportException::NOT_OPEN, "TServerSocket not listening"); } @@ -379,7 +379,7 @@ shared_ptr TServerSocket::acceptImpl() { 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 @@ shared_ptr TServerSocket::acceptImpl() { 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 @@ shared_ptr TServerSocket::createSocket(THRIFT_SOCKET clientSocket) { } 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::interrupt() { } 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 a9a752cf..d521bb56 100644 --- a/lib/cpp/src/thrift/transport/TSocket.cpp +++ b/lib/cpp/src/thrift/transport/TSocket.cpp @@ -79,7 +79,7 @@ TSocket::TSocket(string host, int port) : host_(host), port_(port), path_(""), - socket_(-1), + socket_(THRIFT_INVALID_SOCKET), connTimeout_(0), sendTimeout_(0), recvTimeout_(0), @@ -95,7 +95,7 @@ TSocket::TSocket(string path) : host_(""), port_(0), path_(path), - socket_(-1), + socket_(THRIFT_INVALID_SOCKET), connTimeout_(0), sendTimeout_(0), recvTimeout_(0), @@ -112,7 +112,7 @@ TSocket::TSocket() : host_(""), port_(0), path_(""), - socket_(-1), + socket_(THRIFT_INVALID_SOCKET), connTimeout_(0), sendTimeout_(0), recvTimeout_(0), @@ -147,7 +147,7 @@ TSocket::~TSocket() { } bool TSocket::isOpen() { - return (socket_ != -1); + return (socket_ != THRIFT_INVALID_SOCKET); } bool TSocket::peek() { @@ -187,7 +187,7 @@ void TSocket::openConnection(struct addrinfo *res) { 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::local_open(){ } 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 @@ void TSocket::write(const uint8_t* buf, uint32_t len) { } 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::setPort(int port) { 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::setLinger(bool on, int linger) { void TSocket::setNoDelay(bool noDelay) { noDelay_ = noDelay; - if (socket_ == -1 || !path_.empty()) { + if (socket_ == THRIFT_INVALID_SOCKET || !path_.empty()) { return; } @@ -639,7 +639,7 @@ void TSocket::setRecvTimeout(int ms) { } recvTimeout_ = ms; - if (socket_ == -1) { + if (socket_ == THRIFT_INVALID_SOCKET) { return; } @@ -664,7 +664,7 @@ void TSocket::setSendTimeout(int ms) { } sendTimeout_ = ms; - if (socket_ == -1) { + if (socket_ == THRIFT_INVALID_SOCKET) { return; } @@ -698,7 +698,7 @@ std::string TSocket::getPeerHost() { struct sockaddr* addrPtr; socklen_t addrLen; - if (socket_ == -1) { + if (socket_ == THRIFT_INVALID_SOCKET) { return host_; } @@ -732,7 +732,7 @@ std::string TSocket::getPeerAddress() { 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 c468fb31..e0b286a4 100644 --- a/lib/cpp/src/thrift/transport/TSocketPool.cpp +++ b/lib/cpp/src/thrift/transport/TSocketPool.cpp @@ -37,7 +37,7 @@ using boost::shared_ptr; TSocketPoolServer::TSocketPoolServer() : host_(""), port_(0), - socket_(-1), + socket_(THRIFT_INVALID_SOCKET), lastFailTime_(0), consecutiveFailures_(0) {} @@ -47,7 +47,7 @@ TSocketPoolServer::TSocketPoolServer() 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 @@ void TSocketPool::open() { size_t numServers = servers_.size(); if (numServers == 0) { - socket_ = -1; + socket_ = THRIFT_INVALID_SOCKET; throw TTransportException(TTransportException::NOT_OPEN); } @@ -219,7 +219,7 @@ void TSocketPool::open() { } 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::open() { void TSocketPool::close() { TSocket::close(); if (currentServer_) { - currentServer_->socket_ = -1; + currentServer_->socket_ = THRIFT_INVALID_SOCKET; } } -- 2.17.1