diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-11-27 15:16:41 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-11-27 15:16:41 -0500 |
| commit | 26edcfefbb031a98f2d6f64b692bba07587614b7 (patch) | |
| tree | d3075523535d00c4e4fb579dbf8863d742a21a40 /Emby.Server.Implementations/Networking/NetworkManager.cs | |
| parent | 39f20fdb4e7bda153caf4450578d5f72a3049b1c (diff) | |
cache network data longer
Diffstat (limited to 'Emby.Server.Implementations/Networking/NetworkManager.cs')
| -rw-r--r-- | Emby.Server.Implementations/Networking/NetworkManager.cs | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/Emby.Server.Implementations/Networking/NetworkManager.cs b/Emby.Server.Implementations/Networking/NetworkManager.cs index d938359e9..50e9135b0 100644 --- a/Emby.Server.Implementations/Networking/NetworkManager.cs +++ b/Emby.Server.Implementations/Networking/NetworkManager.cs @@ -19,10 +19,43 @@ namespace Emby.Server.Implementations.Networking { protected ILogger Logger { get; private set; } private DateTime _lastRefresh; + private int NetworkCacheMinutes = 360; public NetworkManager(ILogger logger) { Logger = logger; + + try + { + NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged; + } + catch (Exception ex) + { + NetworkCacheMinutes = 15; + Logger.ErrorException("Error binding to NetworkAddressChanged event", ex); + } + + try + { + NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged; + } + catch (Exception ex) + { + NetworkCacheMinutes = 15; + Logger.ErrorException("Error binding to NetworkChange_NetworkAvailabilityChanged event", ex); + } + } + + private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) + { + Logger.Debug("NetworkAvailabilityChanged"); + _lastRefresh = DateTime.MinValue; + } + + private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) + { + Logger.Debug("NetworkAddressChanged"); + _lastRefresh = DateTime.MinValue; } private List<IpAddressInfo> _localIpAddresses; @@ -30,11 +63,9 @@ namespace Emby.Server.Implementations.Networking public List<IpAddressInfo> GetLocalIpAddresses() { - const int cacheMinutes = 10; - lock (_localIpAddressSyncLock) { - var forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= cacheMinutes; + var forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= NetworkCacheMinutes; if (_localIpAddresses == null || forceRefresh) { |
