thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Geyer (JIRA)" <>
Subject [jira] (THRIFT-3000) .NET implementation has trouble with mixed IP modes
Date Tue, 31 Jan 2017 20:23:52 GMT


Jens Geyer resolved THRIFT-3000.
       Resolution: Fixed
    Fix Version/s: 0.11.0


> .NET implementation has trouble with mixed IP modes
> ---------------------------------------------------
>                 Key: THRIFT-3000
>                 URL:
>             Project: Thrift
>          Issue Type: Bug
>          Components: C# - Library
>    Affects Versions: 0.9.2, 0.9.3
>         Environment: Windows 7 / Windows 8 / Windows 8.1 / .NET 3.5 / .NET 4.0 / .NET
>            Reporter: Tobias Mundt
>            Assignee: Jens Geyer
>            Priority: Minor
>             Fix For: 0.11.0
> The .NET implementation of TSocket and TServerSocket use the .NET class TcpClient and
TcpListener. When creating instances of theses classes the .NET framework estabiles either
an IPv4 or an IPv6 lsitener/client depending on the order of network protocols set in the
control center for the network adapter. Mention that only the first type of protocol is used
not both. Microsoft switched the default order og ipv4 over ipv6 in windows 7 to ipv6 over
ipv4 in windows 8  and 8.1. That means that a thrift component on a win 7 machine can not
talk to the same component on a win 8 machine since they fired of different listeners. 
> When upgrading to .NET 4.5 this can be solved by setting the DualMode=true flag on the
TcpListener.Server and the TcpClient.Client sockets. Since DualMode is not supported in Mono
as of February 2015. The patch can not be applied.
> Another possible solutions would be to get the configuration of the network protocol
order manually and apply the approvriate ip protocol by hand.
> Yet a third possibility would by to add a parameter to the TSocket and TServerSocket
constructors to let the user choose the behaviour of the TcpListener and TcpClient
> This problem was attmepted to be solved in the pull request
which was rejected due to mono incompatibility

This message was sent by Atlassian JIRA

View raw message