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");