Example #1
0
        internal void AddAuthentifiedPeer(IPeer peer)
        {
            if (peer == null)
            {
                _logger?.Warn("Peer is null, cannot add.");
                return;
            }

            if (!peer.IsAuthentified)
            {
                _logger?.Warn($"Peer not authentified, cannot add {peer}");
                return;
            }

            lock (_peerListLock)
            {
                _authentifyingPeer.Remove(peer);

                if (GetPeer(peer) != null)
                {
                    peer.Dispose(); // todo
                    return;
                }

                _peers.Add(peer);
            }

            _logger?.Info($"Peer authentified and added : {{ addr: {peer}, key: {peer.DistantNodeAddress.ToHex()}, bp: {peer.IsBp} }}");

            peer.MessageReceived += OnPeerMessageReceived;

            PeerEvent?.Invoke(this, new PeerEventArgs(peer, PeerEventType.Added));
        }
 public PeerEventArgs(PeerEvent type, StringBuilder data)
 {
     this.eventType = type;
     this.message = data.ToString();
     this.data = Encoding.UTF8.GetBytes(this.message);
 }
 public PeerEventArgs(PeerEvent type, byte[] data)
 {
     this.eventType = type;
     this.data = data;
 }
 public PeerEventArgs(PeerEvent type, string data)
 {
     this.eventType = type;
     this.message = data;
 }
 // ============================================
 // PUBLIC Constructors
 // ============================================
 public PeerEventArgs(PeerEvent type)
 {
     this.eventType = type;
     this.data = null;
 }