[
https://issues.apache.org/jira/browse/THRIFT-1690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13471103#comment-13471103
]
Pavlin Radoslavov commented on THRIFT-1690:
-------------------------------------------
A follow-up on my earlier comment:
The proper solution would be to check
for "SOCKET" inside configure.ac and conditionally typedef it for
all systems that don't have it.
Apparently, both header files TSocket.h and
TServerSocket.h are installed on the system
(by default in /usr/local/include/thrift/transport).
As such, the conditional typedef must use symbols
that are pre-defined for the client software that
might include those header files.
I.e., it must be a symbol defined in some of the other Thrift
header files installed on the system, or a
symbol defined by the system itself.
The "#ifndef _WIN32" solution is fine, because it
belongs to the latter category.
> Sockets and Pipe Handles truncated on Win64
> -------------------------------------------
>
> Key: THRIFT-1690
> URL: https://issues.apache.org/jira/browse/THRIFT-1690
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.9
> Environment: 64-bit Windows
> Reporter: Ben Craig
> Assignee: Roger Meier
> Attachments: lib_socket_typedef.patch, libthrift_pipe_size.patch,
> libthrift_warning_purge.patch
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> On 64-bit Windows, "int" is a 32-bit value. SOCKET and HANDLE are 64-bit.
> All of the files dealing with sockets in thrift use "int" as the type of a
> socket, as this is the idiomatic way to handle sockets on POSIX systems. For
> portability, a SOCKET typedef is probably needed.
> For the Pipe Server and Pipe Transport, HANDLEs are cast to ints to store as
> member variables for some reason (maybe to avoid #including <windows.h> in a
> header?).
> Both of these situations can result in invalid handles being used (and valid
> handles being leaked) when the system is under load.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira