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)); }
/// <summary> /// Disposes the <see cref="Broker" /> and releases all resources held by this instance. /// </summary> public void Dispose() { if (_disposed) { return; } try { InitializeDisposeLock.EnterWriteLock(); if (_disposed) { return; } if (_sharedPeer != null) { _sharedPeer.Dispose(); } if (_peer != null) { _peer.Dispose(); } _disposed = true; } finally { InitializeDisposeLock.ExitWriteLock(); } }
public void Dispose() { db.Dispose(); peer.Dispose(); }
public void Dispose() { peer.Dispose(); }