diff options
| author | WWWesten <4700006+WWWesten@users.noreply.github.com> | 2021-11-01 23:43:29 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-01 23:43:29 +0500 |
| commit | 0a14279e2a21bcb9654a06a2d49e1e4f0cc5329c (patch) | |
| tree | e1b1bd603b011ca98e5793e356326bf4a35a7050 /Mono.Nat/NatManager.cs | |
| parent | f2817fef743eeb75a00782ceea363b2d3e7dc9f2 (diff) | |
| parent | 76eeb8f655424d295e73ced8349c6fefee6ddb12 (diff) | |
Merge branch 'jellyfin:master' into master
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); - } - } - } -} |
