Merge pull request #1151 from Phlogi/patch-1

Use public ports and advertise DNS if available for WAN address
This commit is contained in:
Joshua M. Boniface 2019-03-27 13:54:14 -04:00 committed by GitHub
commit cc2edc4d66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1368,7 +1368,17 @@ namespace Emby.Server.Implementations
public async Task<SystemInfo> GetSystemInfo(CancellationToken cancellationToken)
{
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
string wanAddress;
if (string.IsNullOrEmpty(ServerConfigurationManager.Configuration.WanDdns))
{
wanAddress = await GetWanApiUrlFromExternal(cancellationToken).ConfigureAwait(false);
}
else
{
wanAddress = GetWanApiUrl(ServerConfigurationManager.Configuration.WanDdns);
}
return new SystemInfo
{
@ -1417,8 +1427,18 @@ namespace Emby.Server.Implementations
public async Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken)
{
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
string wanAddress;
if (string.IsNullOrEmpty(ServerConfigurationManager.Configuration.WanDdns))
{
wanAddress = await GetWanApiUrlFromExternal(cancellationToken).ConfigureAwait(false);
}
else
{
wanAddress = GetWanApiUrl(ServerConfigurationManager.Configuration.WanDdns);
}
return new PublicSystemInfo
{
Version = ApplicationVersion,
@ -1456,7 +1476,7 @@ namespace Emby.Server.Implementations
return null;
}
public async Task<string> GetWanApiUrl(CancellationToken cancellationToken)
public async Task<string> GetWanApiUrlFromExternal(CancellationToken cancellationToken)
{
const string Url = "http://ipv4.icanhazip.com";
try
@ -1472,7 +1492,7 @@ namespace Emby.Server.Implementations
CancellationToken = cancellationToken
}).ConfigureAwait(false))
{
return GetLocalApiUrl(response.ReadToEnd().Trim());
return GetWanApiUrl(response.ReadToEnd().Trim());
}
}
catch (Exception ex)
@ -1494,11 +1514,40 @@ namespace Emby.Server.Implementations
public string GetLocalApiUrl(string host)
{
if (EnableHttps)
{
return string.Format("https://{0}:{1}",
host,
HttpsPort.ToString(CultureInfo.InvariantCulture));
}
return string.Format("http://{0}:{1}",
host,
HttpPort.ToString(CultureInfo.InvariantCulture));
host,
HttpPort.ToString(CultureInfo.InvariantCulture));
}
public string GetWanApiUrl(IpAddressInfo ipAddress)
{
if (ipAddress.AddressFamily == IpAddressFamily.InterNetworkV6)
{
return GetWanApiUrl("[" + ipAddress.Address + "]");
}
return GetWanApiUrl(ipAddress.Address);
}
public string GetWanApiUrl(string host)
{
if (EnableHttps)
{
return string.Format("https://{0}:{1}",
host,
ServerConfigurationManager.Configuration.PublicHttpsPort.ToString(CultureInfo.InvariantCulture));
}
return string.Format("http://{0}:{1}",
host,
ServerConfigurationManager.Configuration.PublicPort.ToString(CultureInfo.InvariantCulture));
}
public Task<List<IpAddressInfo>> GetLocalIpAddresses(CancellationToken cancellationToken)
{
return GetLocalIpAddressesInternal(true, 0, cancellationToken);