mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-17 12:34:37 +03:00
urltest: use dns
This commit is contained in:
@@ -523,13 +523,11 @@ namespace NekoGui {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Direct
|
// Direct
|
||||||
auto directDNSAddress = dataStore->routing->direct_dns;
|
|
||||||
if (!status->forTest) {
|
|
||||||
QJsonObject directObj{
|
QJsonObject directObj{
|
||||||
{"tag", "dns-direct"},
|
{"tag", "dns-direct"},
|
||||||
{"address_resolver", "dns-local"},
|
{"address_resolver", "dns-local"},
|
||||||
{"strategy", dataStore->routing->direct_dns_strategy},
|
{"strategy", dataStore->routing->direct_dns_strategy},
|
||||||
{"address", directDNSAddress.replace("+local://", "://")},
|
{"address", dataStore->routing->direct_dns},
|
||||||
{"detour", "direct"},
|
{"detour", "direct"},
|
||||||
};
|
};
|
||||||
if (dataStore->routing->dns_final_out == "bypass") {
|
if (dataStore->routing->dns_final_out == "bypass") {
|
||||||
@@ -537,7 +535,10 @@ namespace NekoGui {
|
|||||||
} else {
|
} else {
|
||||||
dnsServers.append(directObj);
|
dnsServers.append(directObj);
|
||||||
}
|
}
|
||||||
}
|
dnsRules.append(QJsonObject{
|
||||||
|
{"outbound", "any"},
|
||||||
|
{"server", "direct"},
|
||||||
|
});
|
||||||
|
|
||||||
// block
|
// block
|
||||||
if (!status->forTest)
|
if (!status->forTest)
|
||||||
@@ -687,7 +688,7 @@ namespace NekoGui {
|
|||||||
QJSONARRAY_ADD(routingRules, status->routingRules)
|
QJSONARRAY_ADD(routingRules, status->routingRules)
|
||||||
auto routeObj = QJsonObject{
|
auto routeObj = QJsonObject{
|
||||||
{"rules", routingRules},
|
{"rules", routingRules},
|
||||||
{"auto_detect_interface", dataStore->spmode_vpn},
|
{"auto_detect_interface", dataStore->spmode_vpn}, // TODO force enable?
|
||||||
{
|
{
|
||||||
"geoip",
|
"geoip",
|
||||||
QJsonObject{
|
QJsonObject{
|
||||||
|
|||||||
@@ -1214,18 +1214,18 @@ void MainWindow::on_menu_export_config_triggered() {
|
|||||||
|
|
||||||
QMessageBox msg(QMessageBox::Information, tr("Config copied"), config_core);
|
QMessageBox msg(QMessageBox::Information, tr("Config copied"), config_core);
|
||||||
msg.addButton("Copy core config", QMessageBox::YesRole);
|
msg.addButton("Copy core config", QMessageBox::YesRole);
|
||||||
msg.addButton("Copy test config", QMessageBox::YesRole);
|
msg.addButton("Copy test config", QMessageBox::NoRole);
|
||||||
msg.addButton(QMessageBox::Ok);
|
msg.addButton(QMessageBox::Ok);
|
||||||
msg.setEscapeButton(QMessageBox::Ok);
|
msg.setEscapeButton(QMessageBox::Ok);
|
||||||
msg.setDefaultButton(QMessageBox::Ok);
|
msg.setDefaultButton(QMessageBox::Ok);
|
||||||
auto ret = msg.exec();
|
auto ret = msg.exec();
|
||||||
if (ret == 0) {
|
if (ret == 2) {
|
||||||
result = BuildConfig(ent, false, false);
|
result = BuildConfig(ent, false, false);
|
||||||
config_core = QJsonObject2QString(result->coreConfig, true);
|
config_core = QJsonObject2QString(result->coreConfig, false);
|
||||||
QApplication::clipboard()->setText(config_core);
|
QApplication::clipboard()->setText(config_core);
|
||||||
} else if (ret == 1) {
|
} else if (ret == 3) {
|
||||||
result = BuildConfig(ent, true, false);
|
result = BuildConfig(ent, true, false);
|
||||||
config_core = QJsonObject2QString(result->coreConfig, true);
|
config_core = QJsonObject2QString(result->coreConfig, false);
|
||||||
QApplication::clipboard()->setText(config_core);
|
QApplication::clipboard()->setText(config_core);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ void MainWindow::speedtest_current_group(int mode) {
|
|||||||
//
|
//
|
||||||
libcore::TestReq req;
|
libcore::TestReq req;
|
||||||
req.set_mode((libcore::TestMode) mode);
|
req.set_mode((libcore::TestMode) mode);
|
||||||
req.set_timeout(5000);
|
req.set_timeout(10 * 1000);
|
||||||
req.set_url(NekoGui::dataStore->test_latency_url.toStdString());
|
req.set_url(NekoGui::dataStore->test_latency_url.toStdString());
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -181,7 +181,7 @@ void MainWindow::speedtest_current_group(int mode) {
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
auto config = new libcore::LoadConfigReq;
|
auto config = new libcore::LoadConfigReq;
|
||||||
config->set_core_config(QJsonObject2QString(c->coreConfig, true).toStdString());
|
config->set_core_config(QJsonObject2QString(c->coreConfig, false).toStdString());
|
||||||
req.set_allocated_config(config);
|
req.set_allocated_config(config);
|
||||||
req.set_in_address(profile->bean->serverAddress.toStdString());
|
req.set_in_address(profile->bean->serverAddress.toStdString());
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ void MainWindow::speedtest_current() {
|
|||||||
runOnNewThread([=] {
|
runOnNewThread([=] {
|
||||||
libcore::TestReq req;
|
libcore::TestReq req;
|
||||||
req.set_mode(libcore::UrlTest);
|
req.set_mode(libcore::UrlTest);
|
||||||
req.set_timeout(5000);
|
req.set_timeout(10 * 1000);
|
||||||
req.set_url(NekoGui::dataStore->test_latency_url.toStdString());
|
req.set_url(NekoGui::dataStore->test_latency_url.toStdString());
|
||||||
|
|
||||||
bool rpcOK;
|
bool rpcOK;
|
||||||
@@ -306,7 +306,7 @@ void MainWindow::neko_start(int _id) {
|
|||||||
auto neko_start_stage2 = [=] {
|
auto neko_start_stage2 = [=] {
|
||||||
#ifndef NKR_NO_GRPC
|
#ifndef NKR_NO_GRPC
|
||||||
libcore::LoadConfigReq req;
|
libcore::LoadConfigReq req;
|
||||||
req.set_core_config(QJsonObject2QString(result->coreConfig, true).toStdString());
|
req.set_core_config(QJsonObject2QString(result->coreConfig, false).toStdString());
|
||||||
req.set_enable_nekoray_connections(NekoGui::dataStore->connection_statistics);
|
req.set_enable_nekoray_connections(NekoGui::dataStore->connection_statistics);
|
||||||
if (NekoGui::dataStore->traffic_loop_interval > 0) {
|
if (NekoGui::dataStore->traffic_loop_interval > 0) {
|
||||||
req.add_stats_outbounds("proxy");
|
req.add_stats_outbounds("proxy");
|
||||||
|
|||||||
Reference in New Issue
Block a user