mirror of
https://github.com/fergalmoran/DnsServer.git
synced 2026-01-03 07:15:34 +00:00
DnsWebService: removed obsolete code usage. Using simple dns cache for recursive resolve queries.
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user