33using Microsoft . Extensions . Logging ;
44using Microsoft . Extensions . Logging . Abstractions ;
55using Nager . PublicSuffix . Exceptions ;
6+ using Nager . PublicSuffix . Models ;
67using Nager . PublicSuffix . RuleParsers ;
78using Nager . PublicSuffix . RuleProviders . CacheProviders ;
89using System ;
@@ -21,6 +22,7 @@ public class CachedHttpRuleProvider : BaseRuleProvider
2122 private readonly ILogger < CachedHttpRuleProvider > _logger ;
2223 private readonly ICacheProvider _cacheProvider ;
2324 private readonly HttpClient _httpClient ;
25+ private readonly TldRuleDivisionFilter _tldRuleDivisionFilter ;
2426
2527 /// <summary>
2628 /// Returns the cache provider
@@ -36,12 +38,14 @@ public class CachedHttpRuleProvider : BaseRuleProvider
3638 /// <param name="configuration"></param>
3739 /// <param name="cacheProvider"></param>
3840 /// <param name="httpClient"></param>
41+ /// <param name="tldRuleDivisionFilter"></param>
3942 [ ActivatorUtilitiesConstructor ]
4043 public CachedHttpRuleProvider (
4144 ILogger < CachedHttpRuleProvider > logger ,
4245 IConfiguration configuration ,
4346 ICacheProvider cacheProvider ,
44- HttpClient httpClient )
47+ HttpClient httpClient ,
48+ TldRuleDivisionFilter tldRuleDivisionFilter = TldRuleDivisionFilter . All )
4549 {
4650 this . _logger = logger ;
4751 this . _cacheProvider = cacheProvider ;
@@ -54,6 +58,7 @@ public CachedHttpRuleProvider(
5458 }
5559
5660 this . _dataFileUrl = url ?? throw new InvalidOperationException ( "_dataFileUrl must contain a non-null value" ) ;
61+ this . _tldRuleDivisionFilter = tldRuleDivisionFilter ;
5762 }
5863
5964 /// <summary>
@@ -65,16 +70,18 @@ public CachedHttpRuleProvider(
6570 /// <param name="httpClient"></param>
6671 /// <param name="configuration"></param>
6772 /// <param name="logger"></param>
73+ /// <param name="tldRuleDivisionFilter"></param>
6874 public CachedHttpRuleProvider (
6975 ICacheProvider cacheProvider ,
7076 HttpClient httpClient ,
7177 IConfiguration ? configuration = default ,
72- ILogger < CachedHttpRuleProvider > ? logger = default
73- )
78+ ILogger < CachedHttpRuleProvider > ? logger = default ,
79+ TldRuleDivisionFilter tldRuleDivisionFilter = TldRuleDivisionFilter . All )
7480 {
7581 this . _cacheProvider = cacheProvider ;
7682 this . _httpClient = httpClient ;
7783 this . _logger = logger ?? new NullLogger < CachedHttpRuleProvider > ( ) ;
84+ this . _tldRuleDivisionFilter = tldRuleDivisionFilter ;
7885
7986 var url = "https://publicsuffix.org/list/public_suffix_list.dat" ;
8087 if ( configuration != default )
@@ -122,7 +129,7 @@ public override async Task<bool> BuildAsync(
122129 return false ;
123130 }
124131
125- var ruleParser = new TldRuleParser ( ) ;
132+ var ruleParser = new TldRuleParser ( this . _tldRuleDivisionFilter ) ;
126133 var rules = ruleParser . ParseRules ( ruleData ! ) ;
127134
128135 base . CreateDomainDataStructure ( rules ) ;
0 commit comments