You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ns...@apache.org on 2016/01/02 18:59:11 UTC

[9/9] thrift git commit: THRIFT-3502: C++ TServerSocket passes small buffer to getsockname Client: C++ Patch: Jeremy Spiegel

THRIFT-3502: C++ TServerSocket passes small buffer to getsockname
Client: C++
Patch: Jeremy Spiegel

This closes #761


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/269473d4
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/269473d4
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/269473d4

Branch: refs/heads/master
Commit: 269473d4750a1e03ff0c85125bfa20b2f2475aa3
Parents: 2aaae8a
Author: Jeremy Spiegel <js...@box.com>
Authored: Tue Dec 22 16:19:20 2015 -0800
Committer: Nobuaki Sukegawa <ns...@apache.org>
Committed: Sun Jan 3 02:55:16 2016 +0900

----------------------------------------------------------------------
 lib/cpp/src/thrift/transport/TServerSocket.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/269473d4/lib/cpp/src/thrift/transport/TServerSocket.cpp
----------------------------------------------------------------------
diff --git a/lib/cpp/src/thrift/transport/TServerSocket.cpp b/lib/cpp/src/thrift/transport/TServerSocket.cpp
index 137dc32..347da4d 100644
--- a/lib/cpp/src/thrift/transport/TServerSocket.cpp
+++ b/lib/cpp/src/thrift/transport/TServerSocket.cpp
@@ -494,14 +494,14 @@ void TServerSocket::listen() {
 
     // retrieve bind info
     if (port_ == 0 && retries <= retryLimit_) {
-      struct sockaddr sa;
+      struct sockaddr_storage sa;
       socklen_t len = sizeof(sa);
       std::memset(&sa, 0, len);
-      if (::getsockname(serverSocket_, &sa, &len) < 0) {
+      if (::getsockname(serverSocket_, reinterpret_cast<struct sockaddr*>(&sa), &len) < 0) {
         int errno_copy = errno;
         GlobalOutput.perror("TServerSocket::getPort() getsockname() ", errno_copy);
       } else {
-        if (sa.sa_family == AF_INET6) {
+        if (sa.ss_family == AF_INET6) {
           const struct sockaddr_in6* sin = reinterpret_cast<const struct sockaddr_in6*>(&sa);
           port_ = ntohs(sin->sin6_port);
         } else {