|
@@ -20,7 +20,7 @@ namespace MediaBrowser.Common.Implementations.Networking
|
|
Logger = logger;
|
|
Logger = logger;
|
|
}
|
|
}
|
|
|
|
|
|
- private volatile List<IPAddress> _localIpAddresses;
|
|
|
|
|
|
+ private List<IPAddress> _localIpAddresses;
|
|
private readonly object _localIpAddressSyncLock = new object();
|
|
private readonly object _localIpAddressSyncLock = new object();
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -29,24 +29,20 @@ namespace MediaBrowser.Common.Implementations.Networking
|
|
/// <returns>IPAddress.</returns>
|
|
/// <returns>IPAddress.</returns>
|
|
public IEnumerable<IPAddress> GetLocalIpAddresses()
|
|
public IEnumerable<IPAddress> GetLocalIpAddresses()
|
|
{
|
|
{
|
|
- const int cacheMinutes = 3;
|
|
|
|
- var forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= cacheMinutes;
|
|
|
|
|
|
+ const int cacheMinutes = 5;
|
|
|
|
|
|
- if (_localIpAddresses == null || forceRefresh)
|
|
|
|
|
|
+ lock (_localIpAddressSyncLock)
|
|
{
|
|
{
|
|
- lock (_localIpAddressSyncLock)
|
|
|
|
- {
|
|
|
|
- forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= cacheMinutes;
|
|
|
|
|
|
+ var forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= cacheMinutes;
|
|
|
|
|
|
- if (_localIpAddresses == null || forceRefresh)
|
|
|
|
- {
|
|
|
|
- var addresses = GetLocalIpAddressesInternal().ToList();
|
|
|
|
|
|
+ if (_localIpAddresses == null || forceRefresh)
|
|
|
|
+ {
|
|
|
|
+ var addresses = GetLocalIpAddressesInternal().ToList();
|
|
|
|
|
|
- _localIpAddresses = addresses;
|
|
|
|
- _lastRefresh = DateTime.UtcNow;
|
|
|
|
|
|
+ _localIpAddresses = addresses;
|
|
|
|
+ _lastRefresh = DateTime.UtcNow;
|
|
|
|
|
|
- return addresses;
|
|
|
|
- }
|
|
|
|
|
|
+ return addresses;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|