public DnsDatagram QueryClosestDelegation(DnsDatagram request) { DnsDatagram authResponse = DnsApplicationQueryClosestDelegation(request); if (authResponse is null) { authResponse = _authZoneManager.QueryClosestDelegation(request); } DnsDatagram cacheResponse = _cacheZoneManager.QueryClosestDelegation(request); if ((authResponse is not null) && (authResponse.Authority.Count > 0)) { if ((cacheResponse is not null) && (cacheResponse.Authority.Count > 0)) { DnsResourceRecord authResponseFirstAuthority = authResponse.FindFirstAuthorityRecord(); DnsResourceRecord cacheResponseFirstAuthority = cacheResponse.FindFirstAuthorityRecord(); if (cacheResponseFirstAuthority.Name.Length > authResponseFirstAuthority.Name.Length) { return(cacheResponse); } } return(authResponse); }