Ejemplo n.º 1
0
        //
        // Converts IPEndpoint class into native PEER_ADDRESS structure
        //
        internal static PEER_ADDRESS ConvertIPEndpointToPEER_ADDRESS(IPEndPoint endPoint)
        {
            PEER_ADDRESS pa  = new PEER_ADDRESS();
            SOCKADDR_IN6 sin = new SOCKADDR_IN6();

            sin.sin6_family   = (ushort)endPoint.AddressFamily;
            sin.sin6_flowinfo = 0; //
            unchecked {
                sin.sin6_port = (ushort)IPAddress.HostToNetworkOrder((short)endPoint.Port);
            }
            sin.sin6_scope_id = (uint)endPoint.Address.ScopeId;
            CollaborationHelperFunctions.ByteArrayToSin6Addr(endPoint.Address.GetAddressBytes(), ref sin);
            pa.dwSize = 32;
            pa.sin6   = sin;
            return(pa);
        }
Ejemplo n.º 2
0
 //
 // Converts address bytes to a SOCKADDR_IN6 that can be passed into
 // native
 //
 internal static void ByteArrayToSin6Addr(byte[] addrBytes, ref SOCKADDR_IN6 sin6)
 {
     sin6.sin6_addr0  = addrBytes[0];
     sin6.sin6_addr1  = addrBytes[1];
     sin6.sin6_addr2  = addrBytes[2];
     sin6.sin6_addr3  = addrBytes[3];
     sin6.sin6_addr4  = addrBytes[4];
     sin6.sin6_addr5  = addrBytes[5];
     sin6.sin6_addr6  = addrBytes[6];
     sin6.sin6_addr7  = addrBytes[7];
     sin6.sin6_addr8  = addrBytes[8];
     sin6.sin6_addr9  = addrBytes[9];
     sin6.sin6_addr10 = addrBytes[10];
     sin6.sin6_addr11 = addrBytes[11];
     sin6.sin6_addr12 = addrBytes[12];
     sin6.sin6_addr13 = addrBytes[13];
     sin6.sin6_addr14 = addrBytes[14];
     sin6.sin6_addr15 = addrBytes[15];
 }
 //
 // Converts IPEndpoint class into native PEER_ADDRESS structure
 //
 internal static PEER_ADDRESS ConvertIPEndpointToPEER_ADDRESS(IPEndPoint endPoint)
 {
     PEER_ADDRESS pa = new PEER_ADDRESS();
     SOCKADDR_IN6 sin = new SOCKADDR_IN6();
     sin.sin6_family = (ushort)endPoint.AddressFamily;
     sin.sin6_flowinfo = 0; // 
     unchecked{
         sin.sin6_port = (ushort)IPAddress.HostToNetworkOrder((short)endPoint.Port);
     }
     sin.sin6_scope_id = (uint)endPoint.Address.ScopeId;
     CollaborationHelperFunctions.ByteArrayToSin6Addr(endPoint.Address.GetAddressBytes(), ref sin);
     pa.dwSize = 32;
     pa.sin6 = sin;
     return pa;
 }
 //
 // Converts address bytes to a SOCKADDR_IN6 that can be passed into
 // native
 //
 internal static void ByteArrayToSin6Addr(byte[] addrBytes, ref SOCKADDR_IN6 sin6)
 {
     sin6.sin6_addr0 = addrBytes[0];
     sin6.sin6_addr1 = addrBytes[1];
     sin6.sin6_addr2 = addrBytes[2];
     sin6.sin6_addr3 = addrBytes[3];
     sin6.sin6_addr4 = addrBytes[4];
     sin6.sin6_addr5 = addrBytes[5];
     sin6.sin6_addr6 = addrBytes[6];
     sin6.sin6_addr7 = addrBytes[7];
     sin6.sin6_addr8 = addrBytes[8];
     sin6.sin6_addr9 = addrBytes[9];
     sin6.sin6_addr10 = addrBytes[10];
     sin6.sin6_addr11 = addrBytes[11];
     sin6.sin6_addr12 = addrBytes[12];
     sin6.sin6_addr13 = addrBytes[13];
     sin6.sin6_addr14 = addrBytes[14];
     sin6.sin6_addr15 = addrBytes[15];
 }