aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Core/ApplicationHost.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-12-08 01:54:16 -0500
committerGitHub <noreply@github.com>2016-12-08 01:54:16 -0500
commit862018b5c20e27dc67619b8c0c212507685e8120 (patch)
tree3afc3ec162582d6dfd5a9b6feb60caefca6d5f2d /Emby.Server.Core/ApplicationHost.cs
parentfa6b90eb745c2491ae50ce4fe1e2fb5700f87399 (diff)
parent9ed3c311757a615ae32296da4b43f772370d1143 (diff)
Merge pull request #2333 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Core/ApplicationHost.cs')
-rw-r--r--Emby.Server.Core/ApplicationHost.cs47
1 files changed, 39 insertions, 8 deletions
diff --git a/Emby.Server.Core/ApplicationHost.cs b/Emby.Server.Core/ApplicationHost.cs
index f7fe02fbaa..06c761f218 100644
--- a/Emby.Server.Core/ApplicationHost.cs
+++ b/Emby.Server.Core/ApplicationHost.cs
@@ -1305,19 +1305,49 @@ namespace Emby.Server.Core
public async Task<List<IpAddressInfo>> GetLocalIpAddresses()
{
- var addresses = NetworkManager.GetLocalIpAddresses().ToList();
- var list = new List<IpAddressInfo>();
+ var addresses = ServerConfigurationManager
+ .Configuration
+ .LocalNetworkAddresses
+ .Select(NormalizeConfiguredLocalAddress)
+ .Where(i => i != null)
+ .ToList();
- foreach (var address in addresses)
+ if (addresses.Count == 0)
{
- var valid = await IsIpAddressValidAsync(address).ConfigureAwait(false);
- if (valid)
+ addresses.AddRange(NetworkManager.GetLocalIpAddresses());
+
+ var list = new List<IpAddressInfo>();
+
+ foreach (var address in addresses)
{
- list.Add(address);
+ var valid = await IsIpAddressValidAsync(address).ConfigureAwait(false);
+ if (valid)
+ {
+ list.Add(address);
+ }
}
+
+ addresses = list;
}
- return list;
+ return addresses;
+ }
+
+ private IpAddressInfo NormalizeConfiguredLocalAddress(string address)
+ {
+ var index = address.Trim('/').IndexOf('/');
+
+ if (index != -1)
+ {
+ address = address.Substring(index + 1);
+ }
+
+ IpAddressInfo result;
+ if (NetworkManager.TryParseIpAddress(address.Trim('/'), out result))
+ {
+ return result;
+ }
+ return null;
}
private readonly ConcurrentDictionary<string, bool> _validAddressResults = new ConcurrentDictionary<string, bool>(StringComparer.OrdinalIgnoreCase);
@@ -1553,7 +1583,8 @@ namespace Emby.Server.Core
throw new NotImplementedException();
}
- var process = ProcessFactory.Create(new ProcessOptions {
+ var process = ProcessFactory.Create(new ProcessOptions
+ {
FileName = url,
EnableRaisingEvents = true,
UseShellExecute = true,