[ https://issues.apache.org/jira/browse/THRIFT-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer reopened THRIFT-3000: -------------------------------- Since I don't want to lose the changes I made to the original patch, I created a branch of the repo state immediately before the revert. [This branch is available in my GitHub mirror of Apache Thrift|https://github.com/Jens-G/thrift/tree/THRIFT-3000-fixup]. *My proposal is to use that branch as a starting point for further development* . > .NET implementation has trouble with mixed IP modes > --------------------------------------------------- > > Key: THRIFT-3000 > URL: https://issues.apache.org/jira/browse/THRIFT-3000 > 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 4.5 > Reporter: Tobias Mundt > Assignee: Jens Geyer > Priority: Minor > Fix For: 0.9.3 > > > 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 > https://github.com/apache/thrift/pull/377 which was rejected due to mono > incompatibility -- This message was sent by Atlassian JIRA (v6.3.4#6332)