diff options
author | Atsushi Eno <atsushi@ximian.com> | 2011-02-14 19:54:13 +0300 |
---|---|---|
committer | Atsushi Eno <atsushi@ximian.com> | 2011-02-14 19:57:02 +0300 |
commit | 675dc5b693495cb50c3004499a1d1f137722b988 (patch) | |
tree | 460dd6bf034988e45de69c69d890e9a4102edf02 | |
parent | 881d960b2943baf4cfd1ba811ca08941a8104c81 (diff) |
support UdpTranspoerSettings.MulticastInterfaceId. This should fix bug #669328.2.10
2 files changed, 4 insertions, 0 deletions
diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Udp/UdpDuplexChannel.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Udp/UdpDuplexChannel.cs index d87addf015c..754cf515f7b 100644 --- a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Udp/UdpDuplexChannel.cs +++ b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery.Udp/UdpDuplexChannel.cs @@ -265,6 +265,9 @@ namespace System.ServiceModel.Discovery.Udp client.EnableBroadcast = true; // FIXME: apply UdpTransportSetting here. + var settings = binding_element.TransportSettings; + if (settings.MulticastInterfaceId != null) + client.Client.SetSocketOption (SocketOptionLevel.Udp, SocketOptionName.MulticastInterface, settings.MulticastInterfaceId); } Func<TimeSpan,Message> receive_delegate; diff --git a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery/UdpTransportSettings.cs b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery/UdpTransportSettings.cs index d6032b1f2fb..78e0e42c9ea 100755 --- a/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery/UdpTransportSettings.cs +++ b/mcs/class/System.ServiceModel.Discovery/System.ServiceModel.Discovery/UdpTransportSettings.cs @@ -54,6 +54,7 @@ namespace System.ServiceModel.Discovery MaxPendingMessageCount = source.MaxPendingMessageCount; MaxReceivedMessageSize = source.MaxReceivedMessageSize; MaxUnicastRetransmitCount = source.MaxUnicastRetransmitCount; + MulticastInterfaceId = source.MulticastInterfaceId; SocketReceiveBufferSize = source.SocketReceiveBufferSize; TimeToLive = source.TimeToLive; } |