mirror of
https://github.com/fergalmoran/DnsServer.git
synced 2025-12-22 09:29:50 +00:00
Merge branch 'develop'
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
# Technitium DNS Server Change Log
|
||||
|
||||
## Version 13.0.1
|
||||
Release Date: 23 September 2024
|
||||
|
||||
- Fixed issue in using proxy with forwarders that caused failure to use DNS-over-TOR with Cloudflare's hidden service.
|
||||
|
||||
## Version 13.0
|
||||
Release Date: 22 September 2024
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ApplicationIcon>logo2.ico</ApplicationIcon>
|
||||
<Version>13.0</Version>
|
||||
<Version>13.0.1</Version>
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
<Company>Technitium</Company>
|
||||
<Product>Technitium DNS Server</Product>
|
||||
|
||||
@@ -3315,16 +3315,19 @@ namespace DnsServerCore.Dns
|
||||
//use forwarders
|
||||
if (_concurrentForwarding)
|
||||
{
|
||||
//recursive resolve forwarder
|
||||
foreach (NameServerAddress forwarder in _forwarders)
|
||||
if (_proxy is null)
|
||||
{
|
||||
if (forwarder.IsIPEndPointStale)
|
||||
//recursive resolve forwarders only when proxy is null else let proxy resolve it to allow using .onion or private domains
|
||||
foreach (NameServerAddress forwarder in _forwarders)
|
||||
{
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
await TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
if (forwarder.IsIPEndPointStale)
|
||||
{
|
||||
return forwarder.RecursiveResolveIPAddressAsync(dnsCache, _proxy, _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT, cancellationToken);
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
await TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
{
|
||||
return forwarder.RecursiveResolveIPAddressAsync(dnsCache, null, _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3352,14 +3355,17 @@ namespace DnsServerCore.Dns
|
||||
|
||||
foreach (NameServerAddress forwarder in _forwarders)
|
||||
{
|
||||
//recursive resolve forwarder
|
||||
if (forwarder.IsIPEndPointStale)
|
||||
if (_proxy is null)
|
||||
{
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
await TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
//recursive resolve forwarder only when proxy is null else let proxy resolve it to allow using .onion or private domains
|
||||
if (forwarder.IsIPEndPointStale)
|
||||
{
|
||||
return forwarder.RecursiveResolveIPAddressAsync(dnsCache, _proxy, _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT, cancellationToken);
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
await TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
{
|
||||
return forwarder.RecursiveResolveIPAddressAsync(dnsCache, null, _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
//query forwarder and update cache
|
||||
@@ -3441,14 +3447,18 @@ namespace DnsServerCore.Dns
|
||||
if (forwarder.Forwarder.Equals("this-server", StringComparison.OrdinalIgnoreCase))
|
||||
continue; //skip resolving
|
||||
|
||||
//recursive resolve name server
|
||||
if (forwarder.NameServer.IsIPEndPointStale)
|
||||
NetProxy proxy = forwarder.GetProxy(_proxy);
|
||||
if (proxy is null)
|
||||
{
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
resolveTasks.Add(TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
//recursive resolve forwarder only when proxy is null else let proxy resolve it to allow using .onion or private domains
|
||||
if (forwarder.NameServer.IsIPEndPointStale)
|
||||
{
|
||||
return forwarder.NameServer.RecursiveResolveIPAddressAsync(dnsCache, forwarder.GetProxy(_proxy), _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT));
|
||||
//refresh forwarder IPEndPoint if stale
|
||||
resolveTasks.Add(TechnitiumLibrary.TaskExtensions.TimeoutAsync(delegate (CancellationToken cancellationToken1)
|
||||
{
|
||||
return forwarder.NameServer.RecursiveResolveIPAddressAsync(dnsCache, null, _preferIPv6, _udpPayloadSize, _randomizeName, _resolverRetries, _resolverTimeout, _resolverConcurrency, _resolverMaxStackCount, cancellationToken1);
|
||||
}, RECURSIVE_RESOLUTION_TIMEOUT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4501,7 +4511,15 @@ namespace DnsServerCore.Dns
|
||||
{
|
||||
if (_dohWebService is not null)
|
||||
{
|
||||
await _dohWebService.DisposeAsync();
|
||||
try
|
||||
{
|
||||
await _dohWebService.DisposeAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
|
||||
_dohWebService = null;
|
||||
}
|
||||
}
|
||||
@@ -4948,22 +4966,76 @@ namespace DnsServerCore.Dns
|
||||
}
|
||||
|
||||
foreach (Socket udpListener in _udpListeners)
|
||||
udpListener.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
udpListener.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Socket udpProxyListener in _udpProxyListeners)
|
||||
udpProxyListener.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
udpProxyListener.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Socket tcpListener in _tcpListeners)
|
||||
tcpListener.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
tcpListener.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Socket tcpProxyListener in _tcpProxyListeners)
|
||||
tcpProxyListener.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
tcpProxyListener.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Socket tlsListener in _tlsListeners)
|
||||
tlsListener.Dispose();
|
||||
{
|
||||
try
|
||||
{
|
||||
tlsListener.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (QuicListener quicListener in _quicListeners)
|
||||
await quicListener.DisposeAsync();
|
||||
{
|
||||
try
|
||||
{
|
||||
await quicListener.DisposeAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log?.Write(ex);
|
||||
}
|
||||
}
|
||||
|
||||
_udpListeners.Clear();
|
||||
_udpProxyListeners.Clear();
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<RepositoryType></RepositoryType>
|
||||
<Description></Description>
|
||||
<PackageId>DnsServer</PackageId>
|
||||
<Version>13.0</Version>
|
||||
<Version>13.0.1</Version>
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<RootNamespace>DnsServerWindowsService</RootNamespace>
|
||||
<AssemblyName>DnsService</AssemblyName>
|
||||
<ApplicationIcon>logo2.ico</ApplicationIcon>
|
||||
<Version>13.0</Version>
|
||||
<Version>13.0.1</Version>
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
<Authors>Shreyas Zare</Authors>
|
||||
<Company>Technitium</Company>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "Technitium DNS Server"
|
||||
#define MyAppVersion "13.0"
|
||||
#define MyAppVersion "13.0.1"
|
||||
#define MyAppPublisher "Technitium"
|
||||
#define MyAppURL "https://technitium.com/dns/"
|
||||
#define MyAppExeName "DnsServerSystemTrayApp.exe"
|
||||
|
||||
Reference in New Issue
Block a user