diff --git a/db/ConfigBuilder.cpp b/db/ConfigBuilder.cpp index 02b7ffa..7dfa632 100644 --- a/db/ConfigBuilder.cpp +++ b/db/ConfigBuilder.cpp @@ -873,7 +873,7 @@ namespace NekoRay { // built-in rules status->routingRules += QJsonObject{ {"network", "udp"}, - {"port", QJsonArray{135, 137, 138, 5353}}, + {"port", QJsonArray{135, 137, 138, 139, 5353}}, {"outbound", "block"}, }; status->routingRules += QJsonObject{ diff --git a/fmt/Bean2CoreObj_box.cpp b/fmt/Bean2CoreObj_box.cpp index 10864d9..ec053be 100644 --- a/fmt/Bean2CoreObj_box.cpp +++ b/fmt/Bean2CoreObj_box.cpp @@ -21,6 +21,15 @@ namespace NekoRay::fmt { if (!path.isEmpty()) transport["service_name"] = path; } outbound->insert("transport", transport); + } else if (header_type == "http") { + // TCP + headerType + QJsonObject transport{ + {"type", "http"}, + {"method", "GET"}, + {"path", path}, + {"headers", QJsonObject{{"Host", QList2QJsonArray(host.split(","))}}}, + }; + outbound->insert("transport", transport); } // 对应字段 tls diff --git a/sys/ExternalProcess.cpp b/sys/ExternalProcess.cpp index e88929d..f33eed4 100644 --- a/sys/ExternalProcess.cpp +++ b/sys/ExternalProcess.cpp @@ -50,7 +50,7 @@ namespace NekoRay::sys { QProcess::setEnvironment(env); - if (NekoRay::dataStore->flag_linux_run_core_as_admin && dynamic_cast(this)) { + if (NekoRay::dataStore->flag_linux_run_core_as_admin && dynamic_cast(this) && program != "pkexec") { arguments.prepend(program); arguments.prepend("--keep-cwd"); program = "pkexec"; diff --git a/ui/dialog_manage_routes.cpp b/ui/dialog_manage_routes.cpp index 5964944..dd1d495 100644 --- a/ui/dialog_manage_routes.cpp +++ b/ui/dialog_manage_routes.cpp @@ -79,6 +79,8 @@ DialogManageRoutes::DialogManageRoutes(QWidget *parent) : QDialog(parent), ui(ne ui->blockIPLayout->addWidget(blockIPTxt, 0, 0); // REFRESH_ACTIVE_ROUTING(NekoRay::dataStore->active_routing, NekoRay::dataStore->routing) + + ADD_ASTERISK(this) } DialogManageRoutes::~DialogManageRoutes() { diff --git a/ui/edit/dialog_edit_profile.cpp b/ui/edit/dialog_edit_profile.cpp index a46b1e3..7a343a9 100644 --- a/ui/edit/dialog_edit_profile.cpp +++ b/ui/edit/dialog_edit_profile.cpp @@ -75,8 +75,6 @@ DialogEditProfile::DialogEditProfile(const QString &_type, int profileOrGroupId, } // 传输设置 for NekoBox if (IS_NEKO_BOX) { - ui->header_type->setVisible(false); - ui->header_type_l->setVisible(false); if (!ui->utlsFingerprint->count()) ui->utlsFingerprint->addItems(Preset::SingBox::UtlsFingerPrint); } else { if (!ui->utlsFingerprint->count()) ui->utlsFingerprint->addItems(Preset::V2Ray::UtlsFingerPrint); diff --git a/ui/mainwindow.cpp b/ui/mainwindow.cpp index 5895441..80966dd 100644 --- a/ui/mainwindow.cpp +++ b/ui/mainwindow.cpp @@ -691,7 +691,7 @@ void MainWindow::neko_set_spmode_system_proxy(bool enable, bool save) { if (save) { NekoRay::dataStore->remember_spmode.removeAll("system_proxy"); - if (enable) { + if (enable && NekoRay::dataStore->remember_enable) { NekoRay::dataStore->remember_spmode.append("system_proxy"); } NekoRay::dataStore->Save(); @@ -743,7 +743,7 @@ void MainWindow::neko_set_spmode_vpn(bool enable, bool save) { if (save) { NekoRay::dataStore->remember_spmode.removeAll("vpn"); - if (enable) { + if (enable && NekoRay::dataStore->remember_enable) { NekoRay::dataStore->remember_spmode.append("vpn"); } NekoRay::dataStore->Save();