internal void HandlePeerConnected(PeerId id, Direction direction)
 {
     // The only message sent/received so far is the Handshake message.
     // The current mode decides what additional messages need to be sent.
     Mode.HandlePeerConnected(id, direction);
     RaisePeerConnected(new PeerConnectionEventArgs(this, id, direction));
 }
Пример #2
0
 internal void HandlePeerConnected(PeerId id)
 {
     // The only message sent/received so far is the Handshake message.
     // The current mode decides what additional messages need to be sent.
     RaisePeerConnected(new PeerConnectedEventArgs(id));
     Mode.HandlePeerConnected(id);
 }
        public void SwitchingModesSendsHaves()
        {
            Rig.Manager.Peers.ConnectedPeers.Add(Rig.CreatePeer(true, true));
            Rig.Manager.Peers.ConnectedPeers.Add(Rig.CreatePeer(true, false));

            var peer = Rig.CreatePeer(true);

            peer.BitField.SetAll(true);
            Mode.HandlePeerConnected(peer, Direction.Incoming);
            Mode.Tick(0);

            Assert.IsTrue(Rig.Manager.Peers.ConnectedPeers[0].Dequeue() is HaveAllMessage, "#1");
            BitfieldMessage m = (BitfieldMessage)Rig.Manager.Peers.ConnectedPeers[1].Dequeue();

            Assert.IsTrue(m.BitField.AllTrue, "#2");
        }