diff options
| author | dkanada <dkanada@users.noreply.github.com> | 2019-11-07 18:56:46 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-07 18:56:46 +0900 |
| commit | b103aa20c1ac09f301dfac0f86138f8e823b50de (patch) | |
| tree | b939dd9acd8ca737c3549f12326c02c91678d664 /Mono.Nat/NatManager.cs | |
| parent | 2779d9d3bc9a9fd731e118f57d4601de4a55d032 (diff) | |
| parent | 210af0e73e6370b037105ed89776e86217fb873a (diff) | |
Merge pull request #1970 from Bond-009/nat
Use Mono.Nat Nuget package
Diffstat (limited to 'Mono.Nat/NatManager.cs')
| -rw-r--r-- | Mono.Nat/NatManager.cs | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/Mono.Nat/NatManager.cs b/Mono.Nat/NatManager.cs deleted file mode 100644 index 3ed01a6b3..000000000 --- a/Mono.Nat/NatManager.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Net; -using System.Collections.Generic; -using System.Threading.Tasks; -using MediaBrowser.Common.Net; -using MediaBrowser.Model.Dlna; -using Microsoft.Extensions.Logging; -using System.Linq; - -namespace Mono.Nat -{ - public class NatManager : IDisposable - { - public event EventHandler<DeviceEventArgs> DeviceFound; - - private List<ISearcher> controllers = new List<ISearcher>(); - - private ILogger Logger; - private IHttpClient HttpClient; - - public NatManager(ILogger logger, IHttpClient httpClient) - { - Logger = logger; - HttpClient = httpClient; - } - - private object _runSyncLock = new object(); - public void StartDiscovery() - { - lock (_runSyncLock) - { - if (controllers.Count > 0) - { - return; - } - - controllers.Add(new PmpSearcher(Logger)); - - foreach (var searcher in controllers) - { - searcher.DeviceFound += Searcher_DeviceFound; - } - } - } - - public void StopDiscovery() - { - lock (_runSyncLock) - { - var disposables = controllers.OfType<IDisposable>().ToList(); - controllers.Clear(); - - foreach (var disposable in disposables) - { - disposable.Dispose(); - } - } - } - - public void Dispose() - { - StopDiscovery(); - } - - public Task Handle(IPAddress localAddress, UpnpDeviceInfo deviceInfo, IPEndPoint endpoint, NatProtocol protocol) - { - switch (protocol) - { - case NatProtocol.Upnp: - var searcher = new UpnpSearcher(Logger, HttpClient); - searcher.DeviceFound += Searcher_DeviceFound; - return searcher.Handle(localAddress, deviceInfo, endpoint); - default: - throw new ArgumentException("Unexpected protocol: " + protocol); - } - } - - private void Searcher_DeviceFound(object sender, DeviceEventArgs e) - { - if (DeviceFound != null) - { - DeviceFound(sender, e); - } - } - } -} |
