public AnnouncePeerQuery(TransactionID transactionId, NodeID senderNodeId, InfoHash infoHash, PeerToken token, int port, bool impliedPort)
 {
     TransactionID = transactionId;
     SenderNode    = senderNodeId;
     InfoHash      = infoHash;
     Port          = port;
     Token         = token;
     ImpliedPort   = impliedPort;
 }
        public void AnnouncePeerQuery_Encoding()
        {
            TransactionID     transactionId = new TransactionID(Encoding.UTF8.GetBytes("aa"));
            NodeID            senderId      = new NodeID(Encoding.UTF8.GetBytes("abcdefghij0123456789"));
            InfoHash          infoHash      = new InfoHash(Encoding.UTF8.GetBytes("mnopqrstuvwxyz123456"));
            PeerToken         token         = new PeerToken(Encoding.UTF8.GetBytes("aoeusnth"));
            int               port          = 6881;
            bool              impliedPort   = true;
            AnnouncePeerQuery testQuery     = new AnnouncePeerQuery(transactionId, senderId, infoHash, token, port, impliedPort);

            byte[] bencodedMessageBytes = testQuery.Construct().Encode();

            Assert.Equal(MessageType.Query, KademliaRPC.TryParseMessage(bencodedMessageBytes, out BDictionary message));
            Assert.Equal(QueryType.announce_peer, KademliaRPC.TryGetQuery(message, out Query query));
            Assert.True(query is AnnouncePeerQuery);
            Assert.Equal(testQuery.TransactionID, query.TransactionID);
            Assert.Equal(testQuery.SenderNode, ((AnnouncePeerQuery)query).SenderNode);
            Assert.Equal(testQuery.InfoHash, ((AnnouncePeerQuery)query).InfoHash);
            Assert.Equal(testQuery.Token, ((AnnouncePeerQuery)query).Token);
            Assert.Equal(testQuery.Port, ((AnnouncePeerQuery)query).Port);
            Assert.Equal(testQuery.ImpliedPort, ((AnnouncePeerQuery)query).ImpliedPort);

            Assert.Equal(TestBencodedMessage, Encoding.UTF8.GetString(bencodedMessageBytes));
        }
Exemple #3
0
 public GetPeersResponse(TransactionID transactionId, NodeID queriedNodeId, PeerToken token, PeerContact[] peers)
     : this(transactionId, queriedNodeId, token)
 {
     Peers = peers;
 }
Exemple #4
0
 public GetPeersResponse(TransactionID transactionId, NodeID queriedNodeId, PeerToken token, IPv4Node[] nodes, IPv6Node[] nodes6)
     : this(transactionId, queriedNodeId, token)
 {
     Nodes  = nodes;
     Nodes6 = nodes6;
 }
Exemple #5
0
 private GetPeersResponse(TransactionID transactionId, NodeID queriedNodeId, PeerToken token)
 {
     TransactionID = transactionId;
     QueriedNode   = queriedNodeId;
     Token         = token;
 }