Thrift-1997:Add accept backlog configuration method to TServerSocket
Client: cpp
Patch: Randy Abernethy
TServerSocket hard codes the accept backlog to 1024. This patch adds a setAcceptBacklog() method which can be used to change the backlog size (must be called prior to listen()).
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp
index 20313ac..1000367 100644
--- a/lib/cpp/src/thrift/transport/TServerSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp
@@ -78,7 +78,7 @@
TServerSocket::TServerSocket(int port) :
port_(port),
serverSocket_(-1),
- acceptBacklog_(1024),
+ acceptBacklog_(DEFAULT_BACKLOG),
sendTimeout_(0),
recvTimeout_(0),
accTimeout_(-1),
@@ -92,7 +92,7 @@
TServerSocket::TServerSocket(int port, int sendTimeout, int recvTimeout) :
port_(port),
serverSocket_(-1),
- acceptBacklog_(1024),
+ acceptBacklog_(DEFAULT_BACKLOG),
sendTimeout_(sendTimeout),
recvTimeout_(recvTimeout),
accTimeout_(-1),
@@ -107,7 +107,7 @@
port_(0),
path_(path),
serverSocket_(-1),
- acceptBacklog_(1024),
+ acceptBacklog_(DEFAULT_BACKLOG),
sendTimeout_(0),
recvTimeout_(0),
accTimeout_(-1),
@@ -134,6 +134,10 @@
accTimeout_ = accTimeout;
}
+void TServerSocket::setAcceptBacklog(int accBacklog) {
+ acceptBacklog_ = accBacklog;
+}
+
void TServerSocket::setRetryLimit(int retryLimit) {
retryLimit_ = retryLimit;
}
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.h b/lib/cpp/src/thrift/transport/TServerSocket.h
index 2ee7593..e562a19 100644
--- a/lib/cpp/src/thrift/transport/TServerSocket.h
+++ b/lib/cpp/src/thrift/transport/TServerSocket.h
@@ -37,6 +37,8 @@
*/
class TServerSocket : public TServerTransport {
public:
+ const static int DEFAULT_BACKLOG = 1024;
+
TServerSocket(int port);
TServerSocket(int port, int sendTimeout, int recvTimeout);
TServerSocket(std::string path);
@@ -47,6 +49,7 @@
void setRecvTimeout(int recvTimeout);
void setAcceptTimeout(int accTimeout);
+ void setAcceptBacklog(int accBacklog);
void setRetryLimit(int retryLimit);
void setRetryDelay(int retryDelay);