mirror of
https://github.com/fergalmoran/DnsServer.git
synced 2025-12-22 09:29:50 +00:00
Merge pull request #1073 from IngmarStein/filter_aaaa_specific_domains
Add `filterDomains` setting to `Filter AAAA` app.
This commit is contained in:
@@ -40,6 +40,7 @@ namespace FilterAaaa
|
||||
bool _bypassLocalZones;
|
||||
NetworkAddress[] _bypassNetworks;
|
||||
string[] _bypassDomains;
|
||||
string[] _filterDomains;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -74,6 +75,11 @@ namespace FilterAaaa
|
||||
else
|
||||
_bypassDomains = [];
|
||||
|
||||
if (jsonConfig.TryReadArray("filterDomains", out string[] filterDomains))
|
||||
_filterDomains = filterDomains;
|
||||
else
|
||||
_filterDomains = [];
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
@@ -95,6 +101,19 @@ namespace FilterAaaa
|
||||
if (question.Type != DnsResourceRecordType.AAAA)
|
||||
return response;
|
||||
|
||||
bool filterDomain = _filterDomains.Length == 0;
|
||||
foreach (string filterDomain in _filterDomains)
|
||||
{
|
||||
if (qname.Equals(filterDomain, StringComparison.OrdinalIgnoreCase) || qname.EndsWith("." + filterDomain, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
filterDomain = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!filterDomain)
|
||||
return response;
|
||||
|
||||
bool hasAAAA = false;
|
||||
|
||||
foreach (DnsResourceRecord record in response.Answer)
|
||||
|
||||
@@ -5,5 +5,7 @@
|
||||
],
|
||||
"bypassDomains": [
|
||||
"example.com"
|
||||
],
|
||||
"filterDomains": [
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user