aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Networking/NetworkManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-11-27 15:16:41 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-11-27 15:16:41 -0500
commit26edcfefbb031a98f2d6f64b692bba07587614b7 (patch)
treed3075523535d00c4e4fb579dbf8863d742a21a40 /Emby.Server.Implementations/Networking/NetworkManager.cs
parent39f20fdb4e7bda153caf4450578d5f72a3049b1c (diff)
cache network data longer
Diffstat (limited to 'Emby.Server.Implementations/Networking/NetworkManager.cs')
-rw-r--r--Emby.Server.Implementations/Networking/NetworkManager.cs37
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)
{