AdvancedBlocking: fixed null ref exception issue and added correct SOA request handling.

This commit is contained in:
Shreyas Zare
2022-04-17 16:29:11 +05:30
parent 14e7c56d11
commit 2d0a0c2c6a

View File

@@ -1023,6 +1023,9 @@ namespace AdvancedBlocking
{
rcode = DnsResponseCode.NxDomain;
if (blockedDomain is null)
blockedDomain = question.Name;
string parentDomain = GetParentZone(blockedDomain);
if (parentDomain is null)
parentDomain = string.Empty;
@@ -1058,6 +1061,9 @@ namespace AdvancedBlocking
break;
case DnsResourceRecordType.NS:
if (blockedDomain is null)
blockedDomain = question.Name;
if (question.Name.Equals(blockedDomain, StringComparison.OrdinalIgnoreCase))
answer = new DnsResourceRecord[] { new DnsResourceRecord(blockedDomain, DnsResourceRecordType.NS, question.Class, 60, _nsRecord) };
else
@@ -1065,7 +1071,17 @@ namespace AdvancedBlocking
break;
case DnsResourceRecordType.SOA:
if (blockedDomain is null)
blockedDomain = question.Name;
answer = new DnsResourceRecord[] { new DnsResourceRecord(blockedDomain, DnsResourceRecordType.SOA, question.Class, 60, _soaRecord) };
break;
default:
if (blockedDomain is null)
blockedDomain = question.Name;
authority = new DnsResourceRecord[] { new DnsResourceRecord(blockedDomain, DnsResourceRecordType.SOA, question.Class, 60, _soaRecord) };
break;
}