DnsWebService: removed obsolete code usage. Using simple dns cache for recursive resolve queries.

This commit is contained in:
Shreyas Zare
2018-08-11 12:04:46 +05:30
parent 68fd83655f
commit 3d329b9f27

View File

@@ -550,15 +550,6 @@ namespace DnsServerCore
bW.WriteShortString(downloadLink);
}
public static void CreateUpdateInfov1(Stream s, string version, string displayText, string downloadLink)
{
BincodingEncoder encoder = new BincodingEncoder(s, "DU", 1);
encoder.EncodeKeyValue("version", version);
encoder.EncodeKeyValue("displayText", displayText);
encoder.EncodeKeyValue("downloadLink", downloadLink);
}
private void CheckForUpdate(HttpListenerRequest request, JsonTextWriter jsonWriter)
{
string updateVersion = null;
@@ -586,49 +577,6 @@ namespace DnsServerCore
switch (bR.ReadByte()) //version
{
case 1:
#region old version
mS.Position = 0;
BincodingDecoder decoder = new BincodingDecoder(mS, "DU");
switch (decoder.Version)
{
case 1:
while (true)
{
Bincoding entry = decoder.DecodeNext();
if (entry == null)
break;
KeyValuePair<string, Bincoding> value = entry.GetKeyValuePair();
switch (value.Key)
{
case "version":
updateVersion = value.Value.GetStringValue();
updateAvailable = IsUpdateAvailable(_currentVersion, updateVersion);
break;
case "displayText":
displayText = value.Value.GetStringValue();
break;
case "downloadLink":
downloadLink = value.Value.GetStringValue();
break;
}
}
break;
default:
throw new IOException("File version not supported: " + decoder.Version);
}
#endregion
break;
case 2:
updateVersion = bR.ReadShortString();
displayText = bR.ReadShortString();
@@ -1536,7 +1484,7 @@ namespace DnsServerCore
if (server == "root-servers")
{
dnsResponse = DnsClient.ResolveViaRootNameServers(domain, type, null, proxy, preferIPv6, protocol, RETRIES);
dnsResponse = DnsClient.ResolveViaRootNameServers(domain, type, new SimpleDnsCache(), proxy, preferIPv6, protocol, RETRIES);
}
else
{
@@ -1566,9 +1514,9 @@ namespace DnsServerCore
try
{
if (_dnsServer.AllowRecursion)
nameServer.ResolveDomainName(new NameServerAddress[] { new NameServerAddress(IPAddress.Loopback) }, _dnsServer.Proxy, DnsClientProtocol.Udp, RETRIES);
nameServer.ResolveDomainName(new NameServerAddress[] { new NameServerAddress(IPAddress.Loopback) }, _dnsServer.Proxy, _dnsServer.PreferIPv6, DnsClientProtocol.Udp, RETRIES);
else
nameServer.RecursiveResolveDomainName(_dnsServer.Cache, _dnsServer.Proxy, DnsClient.RecursiveResolveDefaultProtocol, RETRIES);
nameServer.RecursiveResolveDomainName(_dnsServer.Cache, _dnsServer.Proxy, _dnsServer.PreferIPv6, DnsClient.RecursiveResolveDefaultProtocol, RETRIES);
}
catch
{ }
@@ -1743,11 +1691,6 @@ namespace DnsServerCore
switch (bR.ReadByte())
{
case 1:
fS.Position = 0;
LoadZoneFileV1(fS);
break;
case 2:
int count = bR.ReadInt32();
DnsResourceRecord[] records = new DnsResourceRecord[count];
@@ -1766,28 +1709,6 @@ namespace DnsServerCore
_log.Write("Loaded zone file: " + zoneFile);
}
private void LoadZoneFileV1(Stream s)
{
BincodingDecoder decoder = new BincodingDecoder(s, "DZ");
switch (decoder.Version)
{
case 1:
ICollection<Bincoding> entries = decoder.DecodeNext().GetList();
DnsResourceRecord[] records = new DnsResourceRecord[entries.Count];
int i = 0;
foreach (Bincoding entry in entries)
records[i++] = new DnsResourceRecord(entry.GetValueStream());
_dnsServer.AuthoritativeZoneRoot.SetRecords(records);
break;
default:
throw new IOException("Dns Zone file version not supported: " + decoder.Version);
}
}
private void SaveZoneFile(string domain)
{
domain = domain.ToLower();
@@ -1836,11 +1757,6 @@ namespace DnsServerCore
byte version = bR.ReadByte();
switch (version)
{
case 1:
fS.Position = 0;
LoadConfigFileV1(fS);
break;
case 2:
case 3:
case 4:
@@ -1938,79 +1854,6 @@ namespace DnsServerCore
}
}
private void LoadConfigFileV1(Stream s)
{
BincodingDecoder decoder = new BincodingDecoder(s, "DS");
switch (decoder.Version)
{
case 1:
while (true)
{
Bincoding item = decoder.DecodeNext();
if (item.Type == BincodingType.NULL)
break;
if (item.Type == BincodingType.KEY_VALUE_PAIR)
{
KeyValuePair<string, Bincoding> pair = item.GetKeyValuePair();
switch (pair.Key)
{
case "serverDomain":
_serverDomain = pair.Value.GetStringValue();
break;
case "webServicePort":
_webServicePort = pair.Value.GetIntegerValue();
break;
case "dnsPreferIPv6":
_dnsServer.PreferIPv6 = pair.Value.GetBooleanValue();
break;
case "logQueries":
if (pair.Value.GetBooleanValue())
_dnsServer.QueryLogManager = _log;
break;
case "dnsAllowRecursion":
_dnsServer.AllowRecursion = pair.Value.GetBooleanValue();
break;
case "dnsForwarders":
ICollection<Bincoding> entries = pair.Value.GetList();
NameServerAddress[] forwarders = new NameServerAddress[entries.Count];
int i = 0;
foreach (Bincoding entry in entries)
forwarders[i++] = new NameServerAddress(IPAddress.Parse(entry.GetStringValue()));
_dnsServer.Forwarders = forwarders;
break;
case "credentials":
foreach (KeyValuePair<string, Bincoding> credential in pair.Value.GetDictionary())
SetCredentials(credential.Key, credential.Value.GetStringValue());
break;
case "disabledZones":
foreach (Bincoding disabledZone in pair.Value.GetList())
_dnsServer.AuthoritativeZoneRoot.DisableZone(disabledZone.GetStringValue());
break;
}
}
}
break;
default:
throw new IOException("Dns Config file version not supported: " + decoder.Version);
}
}
private void SaveConfigFile()
{
string configFile = Path.Combine(_configFolder, "dns.config");