From 929f086956d196b998082ac3ba36deaacd0da054 Mon Sep 17 00:00:00 2001 From: Riko Sakurauchi Date: Tue, 22 Oct 2019 20:18:53 +0800 Subject: [PATCH] [fix] Fix import config bug and improve tolerance Former-commit-id: 8a8c1a349ab75521ca0ac7df749c30d56dd3f7bf --- src/QvCoreConfigOperations_Convertion.cpp | 9 +++++---- src/QvCoreConfigOperations_Verification.cpp | 11 ++--------- src/ui/w_ImportConfig.cpp | 2 +- translations/en-US.ts | 2 +- translations/ru-RU.ts | 6 +++--- translations/zh-CN.ts | 6 +++--- 6 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/QvCoreConfigOperations_Convertion.cpp b/src/QvCoreConfigOperations_Convertion.cpp index 96b355cf..d08ebdcd 100644 --- a/src/QvCoreConfigOperations_Convertion.cpp +++ b/src/QvCoreConfigOperations_Convertion.cpp @@ -25,14 +25,15 @@ namespace Qv2ray auto vmessConf = JsonFromString(Base64Decode(vmessJsonB64.toString())); string ps, add, id, net, type, host, path, tls; int port, aid; - ps = vmessConf["ps"].toVariant().toString().toStdString(); + ps = vmessConf.contains("ps") ? vmessConf["ps"].toVariant().toString().toStdString() + : (vmessConf["add"].toVariant().toString().toStdString() + ":" + vmessConf["port"].toVariant().toString().toStdString()); add = vmessConf["add"].toVariant().toString().toStdString(); id = vmessConf["id"].toVariant().toString().toStdString(); - net = vmessConf["net"].toVariant().toString().toStdString(); - type = vmessConf["type"].toVariant().toString().toStdString(); + net = vmessConf.contains("net") ? vmessConf["net"].toVariant().toString().toStdString() : "tcp"; + type = vmessConf.contains("type") ? vmessConf["type"].toVariant().toString().toStdString() : "none"; host = vmessConf["host"].toVariant().toString().toStdString(); path = vmessConf["path"].toVariant().toString().toStdString(); - tls = vmessConf["tls"].toVariant().toString().toStdString(); + tls = vmessConf.contains("tls") ? vmessConf["tls"].toVariant().toString().toStdString() : ""; // port = vmessConf["port"].toVariant().toInt(); aid = vmessConf["aid"].toVariant().toInt(); diff --git a/src/QvCoreConfigOperations_Verification.cpp b/src/QvCoreConfigOperations_Verification.cpp index 2051305e..ef56e1e9 100644 --- a/src/QvCoreConfigOperations_Verification.cpp +++ b/src/QvCoreConfigOperations_Verification.cpp @@ -25,21 +25,14 @@ namespace Qv2ray flag = flag && C("port"); flag = flag && C("add"); // Stream Settings - auto net = vmessConf["net"].toString(); + auto net = C("net") ? vmessConf["net"].toString() : "tcp"; - if (net == "tcp") - flag = flag && C("type"); - else if (net == "http" || net == "ws") + if (net == "http" || net == "ws") flag = flag && C("host") && C("path"); - else if (net == "kcp") - flag = flag && C("type"); else if (net == "domainsocket") flag = flag && C("path"); else if (net == "quic") flag = flag && C("host") && C("type") && C("path"); - - flag = flag && C("tls"); - flag = flag && C("net"); #undef C return flag ? 0 : 1; } catch (exception *e) { diff --git a/src/ui/w_ImportConfig.cpp b/src/ui/w_ImportConfig.cpp index 46b6c183..08e096fd 100644 --- a/src/ui/w_ImportConfig.cpp +++ b/src/ui/w_ImportConfig.cpp @@ -90,7 +90,7 @@ void ImportConfigWindow::on_buttonBox_accepted() return; default: - QvMessageBox(this, tr("VMess String Check"), tr("Some internal error occured.")); + QvMessageBox(this, tr("VMess String Check"), tr("VMess config is not valid.")); return; } } diff --git a/translations/en-US.ts b/translations/en-US.ts index 9d689e39..6433c68b 100644 --- a/translations/en-US.ts +++ b/translations/en-US.ts @@ -113,7 +113,7 @@ - Some internal error occured. + VMess config is not valid. diff --git a/translations/ru-RU.ts b/translations/ru-RU.ts index d7f93c2c..6fac4cfa 100644 --- a/translations/ru-RU.ts +++ b/translations/ru-RU.ts @@ -326,13 +326,13 @@ - VMess string is not valid + VMess string is not valid. Ошибка строки VMess - Some internal error occured - Произошла внутренняя ошибка + VMess config is not valid. + Конфигурация VMess недействительна. diff --git a/translations/zh-CN.ts b/translations/zh-CN.ts index 83835781..f1d0fd54 100644 --- a/translations/zh-CN.ts +++ b/translations/zh-CN.ts @@ -325,13 +325,13 @@ - VMess string is not valid + VMess string is not valid. VMess 字符串无效 - Some internal error occured - 发生了某些内部错误 + VMess config is not valid. + VMess 配置无效