public void AnnouncePeerResponseDecode() { // Register the query as being sent so we can decode the response AnnouncePeerDecode(); MessageFactory.RegisterSend(message); string text = "d1:rd2:id20:mnopqrstuvwxyz123456e1:t2:aa1:y1:re"; AnnouncePeerResponse m = (AnnouncePeerResponse)Decode(text); Assert.AreEqual(infohash, m.Id, "#1"); Compare(m, text); }
public override void Handle(DhtEngine engine, Node node) { base.Handle(engine, node); if (!engine.Torrents.ContainsKey(InfoHash)) { engine.Torrents.Add(InfoHash, new List <Node>()); } DhtMessage response; if (engine.TokenManager.VerifyToken(node, Token)) { engine.Torrents[InfoHash].Add(node); response = new AnnouncePeerResponse(engine.RoutingTable.LocalNode.Id, TransactionId); } else { response = new ErrorMessage(ErrorCode.ProtocolError, "Invalid or expired token received"); } engine.MessageLoop.EnqueueSend(response, node.EndPoint); }
public void AnnouncePeerResponseEncode() { AnnouncePeerResponse m = new AnnouncePeerResponse(infohash, transactionId); Compare(m, "d1:rd2:id20:mnopqrstuvwxyz123456e1:t2:aa1:y1:re"); }
public void AnnouncePeerResponseEncode() { var message = new AnnouncePeerResponse(_infohash, _transactionId); Compare(message, "d1:rd2:id20:mnopqrstuvwxyz123456e1:t2:aa1:y1:re"); }