public void Test_GetRandomID() { var randId = DHTHelper.GetRandomID(); Assert.IsNotNull(randId); Assert.AreEqual(20, randId.Length); }
public void Test_ToString() { var endPoint = new IPEndPoint(IPAddress.Any, 0); var randId = DHTHelper.GetRandomID(); var node = new DHTNode(randId, endPoint); Assert.IsNotNullOrEmpty(node.ToString()); }
public void Test_CreateChatMessage() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var msg = ProtocolHelper.CreateChatMessage(tid, nodeId, "test"); Assert.IsNotNull(msg); // TODO: test contents }
public void Test_CreateHandshakeResponse() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var msg = ProtocolHelper.CreateHandshakeResponse(tid, nodeId); Assert.IsNotNull(msg); // TODO: test contents }
public void Test_CreateGetPeerInfoQuery() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var msg = ProtocolHelper.CreateGetPeerInfoQuery(tid, nodeId); Assert.IsNotNull(msg); // TODO: test contents }
public void Test_UpdateNode() { var table = new DHTRoutingTable(10); table.UpdateNode(null); var node = new DHTNode(DHTHelper.GetRandomID(), new IPEndPoint(IPAddress.Any, 0)); table.UpdateNode(node); }
public void Test_CreateAnnouncePeerResponse() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); DHTMessage msg = DHTMessage.CreateAnnouncePeerResponse(tid, nodeId, new List <DHTNode>()); Assert.IsNotNull(msg); Assert.AreEqual(MessageType.Response, msg.Type); // TODO: test contents }
public void Test_CreateFindNodeQuery() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); DHTMessage msg = DHTMessage.CreateFindNodeQuery(tid, nodeId); Assert.IsNotNull(msg); Assert.AreEqual(MessageType.Query, msg.Type); Assert.AreEqual(QueryType.FindNode, msg.QueryType); // TODO: test contents }
public void Test_PeerPingedEventArgs() { IPEndPoint peerEndPoint = new IPEndPoint(IPAddress.Any, 1111); byte[] nodeId = DHTHelper.GetRandomID(); var evt = new PeerPingedEventArgs(peerEndPoint, nodeId); Assert.IsNotNull(evt); Assert.AreEqual(peerEndPoint, evt.EndPoint); Assert.AreEqual(nodeId, evt.NodeId); }
public void Test_CreateGetPeersQuery() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var infoHash = DHTHelper.GetRandomHashID(); DHTMessage msg = DHTMessage.CreateGetPeersQuery(tid, nodeId, infoHash); Assert.IsNotNull(msg); Assert.AreEqual(MessageType.Query, msg.Type); Assert.AreEqual(QueryType.GetPeers, msg.QueryType); // TODO: test contents }
public void Test_CreateAnnouncePeerQuery() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var infoHash = DHTHelper.GetRandomHashID(); DHTMessage msg = DHTMessage.CreateAnnouncePeerQuery(tid, nodeId, infoHash, 1, 1, new BString("XX")); Assert.IsNotNull(msg); Assert.AreEqual(MessageType.Query, msg.Type); Assert.AreEqual(QueryType.AnnouncePeer, msg.QueryType); // TODO: test contents }
public void Test_CreateGetPeerInfoResponse() { var peerInfo = new PeerProfile(); peerInfo.ResetSystem(); var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var msg = ProtocolHelper.CreateGetPeerInfoResponse(tid, nodeId, peerInfo); Assert.IsNotNull(msg); // TODO: test contents }
public void Test_ctor2() { var endPoint = new IPEndPoint(IPAddress.Any, 0); var randId = DHTHelper.GetRandomID(); var node = new DHTNode(randId, endPoint); Assert.IsNotNull(node); Assert.AreEqual(randId, node.ID); Assert.AreEqual(endPoint, node.EndPoint); Assert.AreEqual(0, node.LastAnnouncementTime); Assert.AreEqual(0, node.LastUpdateTime); }
public void Test_CreateGetPeersResponse() { var tid = DHTHelper.GetTransactionId(); var nodeId = DHTHelper.GetRandomID(); var infoHash = DHTHelper.GetRandomHashID(); var peers = new List <IDHTPeer>(); var nodes = new List <DHTNode>(); DHTMessage msg = DHTMessage.CreateGetPeersResponse(tid, nodeId, infoHash, peers, nodes); Assert.IsNotNull(msg); Assert.AreEqual(MessageType.Response, msg.Type); // TODO: test contents }
public void Test_MessageEventArgs() { IPEndPoint peerEndPoint = new IPEndPoint(IPAddress.Any, 1111); byte[] nodeId = DHTHelper.GetRandomID(); BDictionary data = new BDictionary(); var evt = new MessageEventArgs(peerEndPoint, nodeId, data); Assert.IsNotNull(evt); Assert.AreEqual(peerEndPoint, evt.EndPoint); Assert.AreEqual(nodeId, evt.NodeId); Assert.AreEqual(data, evt.Data); }
public void Test_ctor() { var table = new DHTRoutingTable(10); Assert.IsNotNull(table); Assert.AreEqual(0, table.Count); Assert.AreEqual(false, table.IsFull); table.Clear(); var randId = DHTHelper.GetRandomID(); var nodes = table.FindNodes(randId); }
public void Test_FindNode() { var table = new DHTRoutingTable(10); var randId = DHTHelper.GetRandomID(); var nodeEndPoint = new IPEndPoint(IPAddress.Any, 0); var node = new DHTNode(randId, nodeEndPoint); table.UpdateNode(node); var node2 = table.FindNode(nodeEndPoint); Assert.IsNotNull(node2); node2 = table.FindNode(null); Assert.IsNull(node2); }
public void Test_FindNodes() { var table = new DHTRoutingTable(10); var randId = DHTHelper.GetRandomID(); var nodes = table.FindNodes(randId); Assert.IsNotNull(nodes); Assert.AreEqual(0, nodes.Count); var node = new DHTNode(randId, new IPEndPoint(IPAddress.Any, 0)); table.UpdateNode(node); nodes = table.FindNodes(randId); Assert.IsNotNull(nodes); Assert.AreEqual(1, nodes.Count); }
public DHTClient(IPAddress addr, int port, IDHTPeersHolder peersHolder, string clientVer) { fBuffer = new byte[65535]; fClientVer = clientVer; fDefaultIP = new IPEndPoint(IPLoopbackAddress, 0); fLocalID = DHTHelper.GetRandomID(); fLocalIP = new IPEndPoint(addr, port); fLogger = LogManager.GetLogger(ProtocolHelper.LOG_FILE, ProtocolHelper.LOG_LEVEL, "DHTClient"); fPeersHolder = peersHolder; fRoutingTable = new DHTRoutingTable(KTableSize); fSearchRunned = false; fTransactions = new Dictionary <int, DHTMessage>(); fSocket = new Socket(IPAddressFamily, SocketType.Dgram, ProtocolType.Udp); // FIXME: unsupported? #if !__MonoCS__ fSocket.SetIPProtectionLevel(IPProtectionLevel.Unrestricted); #if !IP6 const long IOC_IN = 0x80000000; const long IOC_VENDOR = 0x18000000; const long SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12; byte[] optionInValue = { Convert.ToByte(false) }; byte[] optionOutValue = new byte[4]; fSocket.IOControl((IOControlCode)SIO_UDP_CONNRESET, optionInValue, optionOutValue); #else #endif #endif #if !IP6 fSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); fSocket.Ttl = 255; #else fSocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false); #endif fSocket.Bind(fLocalIP); }