예제 #1
0
        public async Task Stop_ShouldLaunch_DisconnectAllPeers()
        {
            await _networkServer.StartAsync();

            var peer = AddPeerToPool();

            peer.IsShutdown.ShouldBeFalse();
            await _networkServer.DisconnectAsync(peer);

            await _networkServer.StopAsync();

            peer.IsShutdown.ShouldBeTrue();
        }
예제 #2
0
        /// <summary>
        /// Try remove the peer, put the peer to blacklist, and disconnect.
        /// </summary>
        /// <param name="peer"></param>
        /// <param name="removalSeconds"></param>
        /// <returns>If the peer is null, return false.</returns>
        private async Task <bool> TryRemovePeerAsync(IPeer peer, int removalSeconds)
        {
            if (peer == null)
            {
                return(false);
            }

            _blackListedPeerProvider.AddHostToBlackList(peer.RemoteEndpoint.Host, removalSeconds);
            Logger.LogDebug($"Blacklisted {peer.RemoteEndpoint.Host} ({peer.Info.Pubkey})");

            await _networkServer.DisconnectAsync(peer);

            return(true);
        }