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