diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-12-08 01:54:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-12-08 01:54:16 -0500 |
| commit | 862018b5c20e27dc67619b8c0c212507685e8120 (patch) | |
| tree | 3afc3ec162582d6dfd5a9b6feb60caefca6d5f2d /Emby.Server.Core/ApplicationHost.cs | |
| parent | fa6b90eb745c2491ae50ce4fe1e2fb5700f87399 (diff) | |
| parent | 9ed3c311757a615ae32296da4b43f772370d1143 (diff) | |
Merge pull request #2333 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Core/ApplicationHost.cs')
| -rw-r--r-- | Emby.Server.Core/ApplicationHost.cs | 47 |
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, |
