aboutsummaryrefslogtreecommitdiff
path: root/Mono.Nat/NatManager.cs
diff options
context:
space:
mode:
authorWWWesten <4700006+WWWesten@users.noreply.github.com>2021-11-01 23:43:29 +0500
committerGitHub <noreply@github.com>2021-11-01 23:43:29 +0500
commit0a14279e2a21bcb9654a06a2d49e1e4f0cc5329c (patch)
treee1b1bd603b011ca98e5793e356326bf4a35a7050 /Mono.Nat/NatManager.cs
parentf2817fef743eeb75a00782ceea363b2d3e7dc9f2 (diff)
parent76eeb8f655424d295e73ced8349c6fefee6ddb12 (diff)
Merge branch 'jellyfin:master' into master
Diffstat (limited to 'Mono.Nat/NatManager.cs')
-rw-r--r--Mono.Nat/NatManager.cs86
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);
- }
- }
- }
-}