public Native(IPv6MulticastRequest managed)
                {
                    Debug.Assert(managed.MulticastAddress.Length == MulticastAddressLength);
                    fixed(void *dest = _multicastAddress)
                    {
                        managed.MulticastAddress.CopyTo(new Span <byte>(dest, MulticastAddressLength));
                    }

                    _interfaceIndex = managed.InterfaceIndex;
                }
Beispiel #2
0
 internal static extern SocketError setsockopt(
     [In] SafeSocketHandle socketHandle,
     [In] SocketOptionLevel optionLevel,
     [In] SocketOptionName optionName,
     [In] ref IPv6MulticastRequest mreq,
     [In] int optionLength);
 internal static extern SocketError getsockopt(
     [In] SafeCloseSocket socketHandle,
     [In] SocketOptionLevel optionLevel,
     [In] SocketOptionName optionName,
     [Out] out IPv6MulticastRequest optionValue,
     [In, Out] ref int optionLength);
 public Native(IPv6MulticastRequest managed)
 {
     Debug.Assert(managed.MulticastAddress.Length == MulticastAddressLength);
     managed.MulticastAddress.CopyTo(MemoryMarshal.CreateSpan(ref _multicastAddress[0], MulticastAddressLength));
     _interfaceIndex = managed.InterfaceIndex;
 }
 public static Native ConvertToUnmanaged(IPv6MulticastRequest managed) => new(managed);
Beispiel #6
0
        private void SetIPv6MulticastOption(SocketOptionName optionName, IPv6MulticastOption mr)
        {
            var optionValue = new IPv6MulticastRequest()
            {
                MulticastAddress = mr.Group.GetAddressBytes(),
                InterfaceIndex = (int)mr.InterfaceIndex
            };

            if (UnsafeMethods.setsockopt(Handle, SocketOptionLevel.IPv6, optionName, ref optionValue, IPv6MulticastRequest.Size) ==
                SocketError.SocketError)
            {
                throw new SocketException();
            }
        }
 internal static partial SocketError getsockopt(
     SafeSocketHandle socketHandle,
     SocketOptionLevel optionLevel,
     SocketOptionName optionName,
     out IPv6MulticastRequest optionValue,
     ref int optionLength);