From 8e4cfacbb0aa8a212af06b476e8e3965a6bd47f8 Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 11 Apr 2021 17:41:05 +0530 Subject: [PATCH] BlockListZoneManager: implemented `UseNxDomainForBlocking` option. --- .../Dns/ZoneManagers/BlockListZoneManager.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/DnsServerCore/Dns/ZoneManagers/BlockListZoneManager.cs b/DnsServerCore/Dns/ZoneManagers/BlockListZoneManager.cs index 51fa291f..212ff26e 100644 --- a/DnsServerCore/Dns/ZoneManagers/BlockListZoneManager.cs +++ b/DnsServerCore/Dns/ZoneManagers/BlockListZoneManager.cs @@ -392,14 +392,13 @@ namespace DnsServerCore.Dns.ZoneManagers public DnsDatagram Query(DnsDatagram request) { List blockLists = IsZoneBlocked(request.Question[0].Name.ToLower()); - if (blockLists == null) - { - //zone not blocked - return null; - } + return null; //zone not blocked //zone is blocked + if (_dnsServer.UseNxDomainForBlocking && (request.Question[0].Type != DnsResourceRecordType.TXT)) + return new DnsDatagram(request.Identifier, true, DnsOpcode.StandardQuery, false, false, request.RecursionDesired, true, false, false, DnsResponseCode.NxDomain, request.Question); + DnsResourceRecord[] answers = null; DnsResourceRecord[] authority = null; @@ -430,7 +429,7 @@ namespace DnsServerCore.Dns.ZoneManagers break; } - return new DnsDatagram(request.Identifier, true, DnsOpcode.StandardQuery, true, false, request.RecursionDesired, true, false, false, DnsResponseCode.NoError, request.Question, answers, authority); + return new DnsDatagram(request.Identifier, true, DnsOpcode.StandardQuery, false, false, request.RecursionDesired, true, false, false, DnsResponseCode.NoError, request.Question, answers, authority); } #endregion