private Task UpdateFirewall() { if (firewallNeedsBlockedIPAddressesUpdate) { firewallNeedsBlockedIPAddressesUpdate = false; List <IPBanFirewallIPAddressDelta> deltas = ipDB.EnumerateIPAddressesDeltaAndUpdateState(true, UtcNow, Config.ResetFailedLoginCountForUnbannedIPAddresses).Where(i => !i.Added || !IsWhitelisted(i.IPAddress)).ToList(); Logger.Warn("Updating firewall with {0} entries...", deltas.Count); Logger.Info("Firewall entries updated: {0}", string.Join(',', deltas.Select(d => d.IPAddress))); if (MultiThreaded) { RunFirewallTask((token) => Firewall.BlockIPAddressesDelta(null, deltas, null, token)); } else { Firewall.BlockIPAddressesDelta(null, deltas).Sync(); } } return(Task.CompletedTask); }