diff options
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; } |