You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2016/01/09 01:10:40 UTC

[jira] [Comment Edited] (THRIFT-3000) .NET implementation has trouble with mixed IP modes

    [ https://issues.apache.org/jira/browse/THRIFT-3000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15090241#comment-15090241 ] 

Jens Geyer edited comment on THRIFT-3000 at 1/9/16 12:09 AM:
-------------------------------------------------------------

The approach over there in THRIFT-3510 (and my own WP7 creation) brought me to the conclusion, that we probably should have different - and clearly named - C# assemblies for the various supported versions. Of course, we don't need one for /every/ version, only where it makes sense.

That would allow to make use of the latest technologies ...
- ... while still having fallback options that work with older framework versions
- ... and eliminate the need for crude (and slow) constructs via reflection or the like


was (Author: jensg):
The approach over there in THRIFT-3510 (and my own WP7 creation) brought me to the conclusion, that we probably should have different - and clearly named - C# assemblies for the various supported versions. Of course, we don't need one for /every/ version, only where it makes sense.

That would allow to make use of the latest technologies ...
- ... while still having fallback options that work with older framework versions
-* ... and eliminate the need for crude (and slow) constructs via reflection or the like

> .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
>
> 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)