[ https://issues.apache.org/jira/browse/THRIFT-3437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15021740#comment-15021740 ]
ASF GitHub Bot commented on THRIFT-3437: ---------------------------------------- Github user nsuke commented on a diff in the pull request: https://github.com/apache/thrift/pull/628#discussion_r45580084 --- Diff: lib/cpp/src/thrift/server/TNonblockingServer.cpp --- @@ -1105,10 +1113,17 @@ void TNonblockingServer::listenSocket(THRIFT_SOCKET s) { serverSocket_ = s; if (!port_) { - sockaddr_in addr; - socklen_t size = sizeof(addr); - if (!getsockname(serverSocket_, reinterpret_cast<sockaddr*>(&addr), &size)) { - listenPort_ = ntohs(addr.sin_port); + #ifdef _WIN32 + struct sockaddr_storage addr; + struct sockaddr_in *pAddr = (sockaddr_in *) &addr; + socklen_t size = sizeof(addr); + #else + struct sockaddr_in addr; + struct sockaddr_in *pAddr = &addr; + socklen_t size = sizeof(addr); + #endif --- End diff -- Sure, and on Unix, the result shall be truncated rather than fail if the size is not enough. What I was wondering is whether the failure is official Windows API spec or MinGW only behavior. > Mingw-w64 build fail > -------------------- > > Key: THRIFT-3437 > URL: https://issues.apache.org/jira/browse/THRIFT-3437 > Project: Thrift > Issue Type: Bug > Components: Build Process > Affects Versions: 0.9.3 > Environment: Windows XP/7/8/10 > Reporter: Antonio Di Monaco > Labels: patch > > When building Thrift code under MinGW-w64, I got a compilation failure, due > to the following problems: > - Missing ws2_32 library link in CMakeLists.txt file > - conflict with boost/tr1/functional.hpp, when using BOOST_THREAD > - AI_ADDRCONFIG missing when Win32 version lower than 0x0600 > - Missing __MINGW32__ define > Tests fail due to getsockname due to: > - different Win32 getsockname behavior > - BOOST_TEST_DYN_LINK not supported > - Q_MOC_RUN / Boost conflict during build > - mkstemp not supported (cause _mktemp_s should be used) > Solved with pull request "Fixed MinGW-w64 build && boost/functional conflict > #628" -- This message was sent by Atlassian JIRA (v6.3.4#6332)