internal async Task StopAsync() { CheckDisposed(); // If all the torrents are stopped, stop ticking IsRunning = allTorrents.Exists(m => m.State != TorrentState.Stopped); if (!IsRunning) { if (PeerListener.LocalEndPoint != null) { await PortForwarder.UnregisterMappingAsync(new Mapping (Protocol.Tcp, PeerListener.LocalEndPoint.Port), CancellationToken.None); } if (DhtListener.LocalEndPoint != null) { await PortForwarder.UnregisterMappingAsync(new Mapping (Protocol.Udp, DhtListener.LocalEndPoint.Port), CancellationToken.None); } PeerListener.Stop(); LocalPeerDiscovery.Stop(); if (Settings.AllowPortForwarding) { await PortForwarder.StopAsync(CancellationToken.None); } await MaybeSaveDhtNodes(); await DhtEngine.StopAsync(); } }
internal async Task StopAsync() { CheckDisposed(); // If all the torrents are stopped, stop ticking IsRunning = allTorrents.Exists(m => m.State != TorrentState.Stopped); if (!IsRunning) { Listener.Stop(); LocalPeerDiscovery.Stop(); await PortForwarder.UnregisterMappingAsync(new Mapping (Protocol.Tcp, Settings.ListenPort), CancellationToken.None); } }
public void Dispose() { if (Disposed) { return; } Disposed = true; MainLoop.QueueWait(() => { DhtEngine.Dispose(); DiskManager.Dispose(); listenManager.Dispose(); LocalPeerDiscovery.Stop(); }); }
internal void RegisterLocalPeerDiscovery(ILocalPeerDiscovery localPeerDiscovery) { if (LocalPeerDiscovery != null) { LocalPeerDiscovery.PeerFound -= HandleLocalPeerFound; LocalPeerDiscovery.Stop(); } LocalPeerDiscovery = localPeerDiscovery ?? new NullLocalPeerDiscovery(); if (LocalPeerDiscovery != null) { LocalPeerDiscovery.PeerFound += HandleLocalPeerFound; LocalPeerDiscovery.Start(); } }
public void Dispose () { if (Disposed) return; Disposed = true; MainLoop.QueueWait (() => { PeerListener.Stop (); listenManager.SetListener (new NullPeerListener ()); DhtListener.Stop (); DhtEngine.Dispose (); DiskManager.Dispose (); LocalPeerDiscovery.Stop (); }); }
void RegisterLocalPeerDiscovery(ILocalPeerDiscovery localPeerDiscovery) { if (LocalPeerDiscovery != null) { LocalPeerDiscovery.PeerFound -= HandleLocalPeerFound; LocalPeerDiscovery.Stop(); } if (!SupportsLocalPeerDiscovery || localPeerDiscovery == null) { localPeerDiscovery = new NullLocalPeerDiscovery(); } LocalPeerDiscovery = localPeerDiscovery; if (LocalPeerDiscovery != null) { LocalPeerDiscovery.PeerFound += HandleLocalPeerFound; if (IsRunning) { LocalPeerDiscovery.Start(); } } }