|
|
|
@ -9,6 +9,7 @@ using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using MediaBrowser.Controller.Security;
|
|
|
|
|
using MediaBrowser.Model.IO;
|
|
|
|
|
using MediaBrowser.Model.Threading;
|
|
|
|
|
|
|
|
|
@ -26,8 +27,9 @@ namespace Emby.Server.Implementations.Connect
|
|
|
|
|
private readonly IApplicationHost _appHost;
|
|
|
|
|
private readonly IFileSystem _fileSystem;
|
|
|
|
|
private readonly ITimerFactory _timerFactory;
|
|
|
|
|
private readonly IEncryptionManager _encryption;
|
|
|
|
|
|
|
|
|
|
public ConnectEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, ILogger logger, INetworkManager networkManager, IConnectManager connectManager, IApplicationHost appHost, IFileSystem fileSystem, ITimerFactory timerFactory)
|
|
|
|
|
public ConnectEntryPoint(IHttpClient httpClient, IApplicationPaths appPaths, ILogger logger, INetworkManager networkManager, IConnectManager connectManager, IApplicationHost appHost, IFileSystem fileSystem, ITimerFactory timerFactory, IEncryptionManager encryption)
|
|
|
|
|
{
|
|
|
|
|
_httpClient = httpClient;
|
|
|
|
|
_appPaths = appPaths;
|
|
|
|
@ -37,6 +39,7 @@ namespace Emby.Server.Implementations.Connect
|
|
|
|
|
_appHost = appHost;
|
|
|
|
|
_fileSystem = fileSystem;
|
|
|
|
|
_timerFactory = timerFactory;
|
|
|
|
|
_encryption = encryption;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Run()
|
|
|
|
@ -143,7 +146,7 @@ namespace Emby.Server.Implementations.Connect
|
|
|
|
|
|
|
|
|
|
private string CacheFilePath
|
|
|
|
|
{
|
|
|
|
|
get { return Path.Combine(_appPaths.DataPath, "wan.txt"); }
|
|
|
|
|
get { return Path.Combine(_appPaths.DataPath, "wan.dat"); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CacheAddress(IpAddressInfo address)
|
|
|
|
@ -153,7 +156,14 @@ namespace Emby.Server.Implementations.Connect
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
_fileSystem.CreateDirectory(Path.GetDirectoryName(path));
|
|
|
|
|
_fileSystem.WriteAllText(path, address.ToString(), Encoding.UTF8);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
_fileSystem.WriteAllText(path, _encryption.EncryptString(address.ToString()), Encoding.UTF8);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
@ -169,7 +179,7 @@ namespace Emby.Server.Implementations.Connect
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var endpoint = _fileSystem.ReadAllText(path, Encoding.UTF8);
|
|
|
|
|
var endpoint = _encryption.DecryptString(_fileSystem.ReadAllText(path, Encoding.UTF8));
|
|
|
|
|
IpAddressInfo ipAddress;
|
|
|
|
|
|
|
|
|
|
if (_networkManager.TryParseIpAddress(endpoint, out ipAddress))
|
|
|
|
|