mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2025-07-07 08:14:58 +03:00
Rewrite DNS API from scratch into dedicated file(s)
From a functional point of view, the main improvement is that GetIP() now always prioritizes IPv6 over IPv4. The previous implementation always returned an IPv4 address, unless not available: in such case it failed. This means that now connections to hostnames should be established via IPv6 if available. From a programmer point of view, getting rid of the insane wrappers is enough to justify a complete rewrite. As an extra, several unrelated unused global variables are removed.
This commit is contained in:
@ -21,6 +21,7 @@
|
||||
#include "UdpAccel.h"
|
||||
#include "Virtual.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/Kernel.h"
|
||||
#include "Mayaqua/Mayaqua.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "Server.h"
|
||||
|
||||
#include "Mayaqua/Cfg.h"
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/FileIO.h"
|
||||
#include "Mayaqua/Internat.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "SecureNAT.h"
|
||||
#include "Server.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/Internat.h"
|
||||
#include "Mayaqua/FileIO.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "Wpc.h"
|
||||
|
||||
#include "Mayaqua/Cfg.h"
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/FileIO.h"
|
||||
#include "Mayaqua/Internat.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "IPC.h"
|
||||
#include "Server.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/Internat.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
#include "Mayaqua/Object.h"
|
||||
@ -1717,7 +1718,7 @@ bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT sec
|
||||
{
|
||||
Add(ip_list, tmp_ip);
|
||||
}
|
||||
else if (GetIPEx(tmp_ip, token->Token[i], true))
|
||||
else if (GetIP(tmp_ip, token->Token[i]))
|
||||
{
|
||||
Add(ip_list, tmp_ip);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "WinUi.h"
|
||||
|
||||
#include "Mayaqua/Cfg.h"
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/FileIO.h"
|
||||
#include "Mayaqua/Internat.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
@ -312,8 +313,8 @@ UINT SiDebugProcGetCurrentGetIPThreadCount(SERVER *s, char *in_str, char *ret_st
|
||||
return ERR_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
ToStr3(tmp1, 0, GetCurrentGetIpThreadNum());
|
||||
ToStr3(tmp2, 0, GetGetIpThreadMaxNum());
|
||||
ToStr3(tmp1, 0, DnsThreadNum());
|
||||
ToStr3(tmp2, 0, DnsThreadNumMax());
|
||||
|
||||
Format(ret_str, 0,
|
||||
"Current threads = %s\n"
|
||||
@ -5629,11 +5630,11 @@ void SiLoadServerCfg(SERVER *s, FOLDER *f)
|
||||
i = CfgGetInt(f, "MaxConcurrentDnsClientThreads");
|
||||
if (i != 0)
|
||||
{
|
||||
SetGetIpThreadMaxNum(i);
|
||||
DnsThreadNumMaxSet(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetGetIpThreadMaxNum(DEFAULT_GETIP_THREAD_MAX_NUM);
|
||||
DnsThreadNumMaxSet(DNS_THREAD_DEFAULT_NUM_MAX);
|
||||
}
|
||||
|
||||
s->DontBackupConfig = CfgGetBool(f, "DontBackupConfig");
|
||||
@ -6103,7 +6104,7 @@ void SiWriteServerCfg(FOLDER *f, SERVER *s)
|
||||
return;
|
||||
}
|
||||
|
||||
CfgAddInt(f, "MaxConcurrentDnsClientThreads", GetGetIpThreadMaxNum());
|
||||
CfgAddInt(f, "MaxConcurrentDnsClientThreads", DnsThreadNumMax());
|
||||
|
||||
CfgAddInt(f, "CurrentBuild", s->Cedar->Build);
|
||||
|
||||
@ -10766,7 +10767,7 @@ SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server, bool relay_serve
|
||||
LISTENER *azure;
|
||||
LISTENER *rudp;
|
||||
|
||||
SetGetIpThreadMaxNum(DEFAULT_GETIP_THREAD_MAX_NUM);
|
||||
DnsThreadNumMaxSet(DNS_THREAD_DEFAULT_NUM_MAX);
|
||||
|
||||
s = ZeroMalloc(sizeof(SERVER));
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include "Connection.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/Kernel.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
#include "Mayaqua/Object.h"
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "NativeStack.h"
|
||||
#include "Server.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/FileIO.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
#include "Mayaqua/Object.h"
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "Command.h"
|
||||
#include "Protocol.h"
|
||||
|
||||
#include "Mayaqua/DNS.h"
|
||||
#include "Mayaqua/Memory.h"
|
||||
#include "Mayaqua/Microsoft.h"
|
||||
#include "Mayaqua/Pack.h"
|
||||
|
Reference in New Issue
Block a user