diff --git a/DnsServerCore/Dns/StatsManager.cs b/DnsServerCore/Dns/StatsManager.cs index e1c06776..2be46662 100644 --- a/DnsServerCore/Dns/StatsManager.cs +++ b/DnsServerCore/Dns/StatsManager.cs @@ -466,10 +466,26 @@ namespace DnsServerCore.Dns } } + private void Flush() + { + //clear in memory stats + for (int i = 0; i < _lastHourStatCountersCopy.Length; i++) + _lastHourStatCountersCopy[i] = null; + + _hourlyStatsCache.Clear(); + _dailyStatsCache.Clear(); + } + #endregion #region public + public void ReloadStats() + { + Flush(); + LoadLastHourStats(); + } + public void DeleteAllStats() { foreach (string hourlyStatsFile in Directory.GetFiles(Path.Combine(_dnsServer.ConfigFolder, "stats"), "*.stat", SearchOption.TopDirectoryOnly)) @@ -482,11 +498,7 @@ namespace DnsServerCore.Dns File.Delete(dailyStatsFile); } - for (int i = 0; i < _lastHourStatCountersCopy.Length; i++) - _lastHourStatCountersCopy[i] = null; - - _hourlyStatsCache.Clear(); - _dailyStatsCache.Clear(); + Flush(); } public void Update(DnsDatagram response, IPAddress clientIpAddress)