Example #1
0
        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);
        }
Example #2
0
 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));
 }
Example #3
0
 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);
             }
         }
     }
 }