private async Task <int> AnalyzeFile(ValueItem file, int changesetId) { int resultNumber = 0; if (!file.ChangeType.Contains("delete")) { // 2.3 - Sortir les différences FileComparerResult diffResult = await _vcc.CompareChangesetFile(file.Item.Path, "P" + changesetId, changesetId.ToString()).ConfigureAwait(false); if (diffResult.Blocks.Count == 1) { //c'est le premier ajout sur le silo resultNumber += diffResult.Blocks[0].ModifiedLinesCount; } else { // 2.4 - Pour chaque différence foreach (Block block in diffResult.Blocks) { resultNumber += BlockRule.GetBlockModifiedLinesCount(block); } } } return(resultNumber); }
public Task <bool> BlockIPAddresses(string ruleNamePrefix, IEnumerable <IPAddressRange> ranges, IEnumerable <PortRange> allowedPorts, CancellationToken cancelToken = default) { // for performance, ranges is assumed to be sorted lock (this) { ruleNamePrefix = ScrubRuleNamePrefix(ruleNamePrefix); List <IPAddressRange> rangesList = new List <IPAddressRange>(ranges); List <PortRange> portList = new List <PortRange>(allowedPorts ?? new PortRange[0]); blockRules[ruleNamePrefix] = new BlockRule(rangesList, portList); } return(Task.FromResult <bool>(true)); }
public IEnumerable <IPAddressRange> EnumerateIPAddresses(string ruleNamePrefix = null) { lock (this) { ruleNamePrefix = ScrubRuleNamePrefix(ruleNamePrefix); if (ruleNamePrefix.StartsWith(RulePrefix + "0", StringComparison.OrdinalIgnoreCase)) { foreach (uint ip in blockedIPAddressesV4) { yield return(new IPAddressRange(ip.ToIPAddress())); } foreach (UInt128 ip in blockedIPAddressesV6) { yield return(new IPAddressRange(ip.ToIPAddress())); } } if (ruleNamePrefix.StartsWith(RulePrefix + "1", StringComparison.OrdinalIgnoreCase)) { foreach (uint ip in allowedIPAddressesV4) { yield return(new IPAddressRange(ip.ToIPAddress())); } foreach (UInt128 ip in allowedIPAddressesV6) { yield return(new IPAddressRange(ip.ToIPAddress())); } } foreach (string key in blockRules.Keys.Where(k => k.StartsWith(ruleNamePrefix, StringComparison.OrdinalIgnoreCase))) { BlockRule rule = blockRules[key]; foreach (IPAddressRange range in rule.EnumerateIPAddresses()) { yield return(range); } } } }