THRIFT-2749: clean up cpp lib for cpp98 build
Client: CPP Lib
Patch: Randy Abernethy
Adds required limits header and reverts use of sizof on
nonstatic members to cpp98 conformance.
diff --git a/lib/cpp/src/thrift/transport/TBufferTransports.h b/lib/cpp/src/thrift/transport/TBufferTransports.h
index af9412c..2ee9adf 100644
--- a/lib/cpp/src/thrift/transport/TBufferTransports.h
+++ b/lib/cpp/src/thrift/transport/TBufferTransports.h
@@ -21,6 +21,7 @@
#define _THRIFT_TRANSPORT_TBUFFERTRANSPORTS_H_ 1
#include <cstring>
+#include <limits>
#include <boost/scoped_array.hpp>
#include <thrift/transport/TTransport.h>
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp
index 541ff4d..811076f 100755
--- a/lib/cpp/src/thrift/transport/TServerSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp
@@ -314,7 +314,7 @@
// Unix Domain Socket
size_t len = path_.size() + 1;
- if (len > sizeof(sockaddr_un::sun_path)) {
+ if (len > sizeof(((sockaddr_un*)NULL)->sun_path)) {
int errno_copy = THRIFT_GET_SOCKET_ERROR;
GlobalOutput.perror("TSocket::listen() Unix Domain socket path too long", errno_copy);
throw TTransportException(TTransportException::NOT_OPEN, " Unix Domain socket path too long");
diff --git a/lib/cpp/src/thrift/transport/TSocket.cpp b/lib/cpp/src/thrift/transport/TSocket.cpp
index 82678ba..af7240a 100644
--- a/lib/cpp/src/thrift/transport/TSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TSocket.cpp
@@ -252,9 +252,8 @@
if (! path_.empty()) {
#ifndef _WIN32
-
size_t len = path_.size() + 1;
- if (len > sizeof(sockaddr_un::sun_path)) {
+ if (len > sizeof(((sockaddr_un*)NULL)->sun_path)) {
int errno_copy = THRIFT_GET_SOCKET_ERROR;
GlobalOutput.perror("TSocket::open() Unix Domain socket path too long", errno_copy);
throw TTransportException(TTransportException::NOT_OPEN, " Unix Domain socket path too long");
@@ -265,7 +264,6 @@
memcpy(address.sun_path, path_.c_str(), len);
socklen_t structlen = static_cast<socklen_t>(sizeof(address));
ret = connect(socket_, (struct sockaddr *) &address, structlen);
-
#else
GlobalOutput.perror("TSocket::open() Unix Domain socket path not supported on windows", -99);
throw TTransportException(TTransportException::NOT_OPEN, " Unix Domain socket path not supported");