Example #1
0
        public static int[] FindAllDots(string s)
        {
            int num = DomainMatchMap <T> .CountDots(s);

            int[] array = new int[num];
            int   num2  = s.IndexOf('.');
            int   num3  = 0;

            while (num2 != -1)
            {
                array[num3] = num2;
                num2        = s.IndexOf('.', num2 + 1);
                num3++;
            }
            return(array);
        }
Example #2
0
        public DomainMatchMap(IList <T> entries)
        {
            this.exact    = new Dictionary <DomainMatchMap <T> .SubString, T>(entries.Count);
            this.wildcard = new Dictionary <DomainMatchMap <T> .SubString, T>(entries.Count);
            foreach (T value in entries)
            {
                if (value.DomainName.SmtpDomain == null)
                {
                    this.star = value;
                }
                else
                {
                    int num = DomainMatchMap <T> .CountDots(value.DomainName.Domain);

                    if (num > this.maxDots)
                    {
                        this.maxDots = num;
                    }
                    DomainMatchMap <T> .SubString key = new DomainMatchMap <T> .SubString(value.DomainName.Domain, 0);

                    if (value.DomainName.IncludeSubDomains)
                    {
                        this.wildcard[key] = value;
                        if (!this.exact.ContainsKey(key))
                        {
                            this.exact.Add(key, value);
                        }
                    }
                    else
                    {
                        this.exact[key] = value;
                    }
                }
            }
            this.maxDots++;
        }