THRIFT-4038 socket check: checking an unsigned number against >= 0 never fails
Client: C++
Patch: gzshi <shgzone.hust@gmail.com>
This closes #1153
diff --git a/lib/cpp/src/thrift/server/TNonblockingServer.cpp b/lib/cpp/src/thrift/server/TNonblockingServer.cpp
index 537770b..649910f 100644
--- a/lib/cpp/src/thrift/server/TNonblockingServer.cpp
+++ b/lib/cpp/src/thrift/server/TNonblockingServer.cpp
@@ -1321,7 +1321,7 @@
ownEventBase_ = false;
}
- if (listenSocket_ >= 0) {
+ if (listenSocket_ != THRIFT_INVALID_SOCKET) {
if (0 != ::THRIFT_CLOSESOCKET(listenSocket_)) {
GlobalOutput.perror("TNonblockingIOThread listenSocket_ close(): ", THRIFT_GET_SOCKET_ERROR);
}
@@ -1387,7 +1387,7 @@
event_base_get_method(eventBase_));
}
- if (listenSocket_ >= 0) {
+ if (listenSocket_ != THRIFT_INVALID_SOCKET) {
// Register the server event
event_set(&serverEvent_,
listenSocket_,
@@ -1590,7 +1590,7 @@
void TNonblockingIOThread::cleanupEvents() {
// stop the listen socket, if any
- if (listenSocket_ >= 0) {
+ if (listenSocket_ != THRIFT_INVALID_SOCKET) {
if (event_del(&serverEvent_) == -1) {
GlobalOutput.perror("TNonblockingIOThread::stop() event_del: ", THRIFT_GET_SOCKET_ERROR);
}