From 2d0a0c2c6a6bb40bb9b9efd18dee32d4de18915d Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 17 Apr 2022 16:29:11 +0530 Subject: [PATCH] AdvancedBlocking: fixed null ref exception issue and added correct SOA request handling. --- Apps/AdvancedBlockingApp/App.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Apps/AdvancedBlockingApp/App.cs b/Apps/AdvancedBlockingApp/App.cs index c5f87910..6154caf7 100644 --- a/Apps/AdvancedBlockingApp/App.cs +++ b/Apps/AdvancedBlockingApp/App.cs @@ -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; }