Use direct dns in bypass mode

This commit is contained in:
arm64v8a
2023-08-17 20:37:33 +09:00
parent 164a234480
commit dc3e5310b9

View File

@@ -323,11 +323,16 @@ namespace NekoGui {
{"outboundTag", "direct"},
});
}
dnsServers += QJsonObject{
QJsonObject directObj{
{"address", directDnsAddress.replace("https://", "https+local://")},
{"queryStrategy", dataStore->routing->direct_dns_strategy},
{"domains", QList2QJsonArray<QString>(status->domainListDNSDirect)},
};
if (dataStore->routing->def_outbound == "bypass") {
dnsServers.prepend(directObj);
} else {
dnsServers.append(directObj);
}
dns["disableFallback"] = true;
dns["servers"] = dnsServers;
@@ -854,14 +859,20 @@ namespace NekoGui {
// Direct
auto directDNSAddress = dataStore->routing->direct_dns;
if (directDNSAddress == "localhost") directDNSAddress = BOX_UNDERLYING_DNS_EXPORT;
if (!status->forTest)
dnsServers += QJsonObject{
if (!status->forTest) {
QJsonObject directObj{
{"tag", "dns-direct"},
{"address_resolver", "dns-local"},
{"strategy", dataStore->routing->direct_dns_strategy},
{"address", directDNSAddress.replace("+local://", "://")},
{"detour", "direct"},
};
if (dataStore->routing->def_outbound == "bypass") {
dnsServers.prepend(directObj);
} else {
dnsServers.append(directObj);
}
}
// block
if (!status->forTest)