From 9308933db2e5d67e4e4f2378a546328e9b32a0f8 Mon Sep 17 00:00:00 2001 From: Shreyas Zare Date: Sun, 24 Mar 2019 15:10:40 +0530 Subject: [PATCH] code refactoring done --- DnsServerCore/DnsServer.cs | 42 ++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/DnsServerCore/DnsServer.cs b/DnsServerCore/DnsServer.cs index 7080d4ec..43d18525 100644 --- a/DnsServerCore/DnsServer.cs +++ b/DnsServerCore/DnsServer.cs @@ -1119,16 +1119,9 @@ namespace DnsServerCore { //query cache zone to see if answer available { - DnsDatagram cacheResponse = _cacheZoneRoot.Query(request); - - if (cacheResponse.Header.RCODE != DnsResponseCode.Refused) - { - if ((cacheResponse.Answer.Length > 0) || ((cacheResponse.Authority.Length == 0) || (cacheResponse.Authority[0].Type == DnsResourceRecordType.SOA))) - { - cacheResponse.Tag = "cacheHit"; - return cacheResponse; - } - } + DnsDatagram cacheResponse = QueryCache(request); + if (cacheResponse != null) + return cacheResponse; } //recursion with locking @@ -1146,16 +1139,9 @@ namespace DnsServerCore //query cache zone again to see if answer available { - DnsDatagram cacheResponse = _cacheZoneRoot.Query(request); - - if (cacheResponse.Header.RCODE != DnsResponseCode.Refused) - { - if ((cacheResponse.Answer.Length > 0) || ((cacheResponse.Authority.Length == 0) || (cacheResponse.Authority[0].Type == DnsResourceRecordType.SOA))) - { - cacheResponse.Tag = "cacheHit"; - return cacheResponse; - } - } + DnsDatagram cacheResponse = QueryCache(request); + if (cacheResponse != null) + return cacheResponse; } //no response available in cache so respond with server failure @@ -1194,6 +1180,22 @@ namespace DnsServerCore } } + private DnsDatagram QueryCache(DnsDatagram request) + { + DnsDatagram cacheResponse = _cacheZoneRoot.Query(request); + + if (cacheResponse.Header.RCODE != DnsResponseCode.Refused) + { + if ((cacheResponse.Answer.Length > 0) || (cacheResponse.Authority.Length == 0) || (cacheResponse.Authority[0].Type == DnsResourceRecordType.SOA)) + { + cacheResponse.Tag = "cacheHit"; + return cacheResponse; + } + } + + return null; + } + #endregion #region public