[fix] Fix import config bug and improve tolerance

Former-commit-id: 8a8c1a349a
This commit is contained in:
Riko Sakurauchi 2019-10-22 20:18:53 +08:00
parent bfe0dc9089
commit 929f086956
6 changed files with 15 additions and 21 deletions

View File

@ -25,14 +25,15 @@ namespace Qv2ray
auto vmessConf = JsonFromString(Base64Decode(vmessJsonB64.toString())); auto vmessConf = JsonFromString(Base64Decode(vmessJsonB64.toString()));
string ps, add, id, net, type, host, path, tls; string ps, add, id, net, type, host, path, tls;
int port, aid; 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(); add = vmessConf["add"].toVariant().toString().toStdString();
id = vmessConf["id"].toVariant().toString().toStdString(); id = vmessConf["id"].toVariant().toString().toStdString();
net = vmessConf["net"].toVariant().toString().toStdString(); net = vmessConf.contains("net") ? vmessConf["net"].toVariant().toString().toStdString() : "tcp";
type = vmessConf["type"].toVariant().toString().toStdString(); type = vmessConf.contains("type") ? vmessConf["type"].toVariant().toString().toStdString() : "none";
host = vmessConf["host"].toVariant().toString().toStdString(); host = vmessConf["host"].toVariant().toString().toStdString();
path = vmessConf["path"].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(); port = vmessConf["port"].toVariant().toInt();
aid = vmessConf["aid"].toVariant().toInt(); aid = vmessConf["aid"].toVariant().toInt();

View File

@ -25,21 +25,14 @@ namespace Qv2ray
flag = flag && C("port"); flag = flag && C("port");
flag = flag && C("add"); flag = flag && C("add");
// Stream Settings // Stream Settings
auto net = vmessConf["net"].toString(); auto net = C("net") ? vmessConf["net"].toString() : "tcp";
if (net == "tcp") if (net == "http" || net == "ws")
flag = flag && C("type");
else if (net == "http" || net == "ws")
flag = flag && C("host") && C("path"); flag = flag && C("host") && C("path");
else if (net == "kcp")
flag = flag && C("type");
else if (net == "domainsocket") else if (net == "domainsocket")
flag = flag && C("path"); flag = flag && C("path");
else if (net == "quic") else if (net == "quic")
flag = flag && C("host") && C("type") && C("path"); flag = flag && C("host") && C("type") && C("path");
flag = flag && C("tls");
flag = flag && C("net");
#undef C #undef C
return flag ? 0 : 1; return flag ? 0 : 1;
} catch (exception *e) { } catch (exception *e) {

View File

@ -90,7 +90,7 @@ void ImportConfigWindow::on_buttonBox_accepted()
return; return;
default: 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; return;
} }
} }

View File

@ -113,7 +113,7 @@
</message> </message>
<message> <message>
<location filename="../src/ui/w_ImportConfig.cpp" line="93"/> <location filename="../src/ui/w_ImportConfig.cpp" line="93"/>
<source>Some internal error occured.</source> <source>VMess config is not valid.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>

View File

@ -326,13 +326,13 @@
</message> </message>
<message> <message>
<location filename="../src/ui/w_ImportConfig.cpp" line="69"/> <location filename="../src/ui/w_ImportConfig.cpp" line="69"/>
<source>VMess string is not valid</source> <source>VMess string is not valid.</source>
<translation>Ошибка строки VMess</translation> <translation>Ошибка строки VMess</translation>
</message> </message>
<message> <message>
<location filename="../src/ui/w_ImportConfig.cpp" line="74"/> <location filename="../src/ui/w_ImportConfig.cpp" line="74"/>
<source>Some internal error occured</source> <source>VMess config is not valid.</source>
<translation>Произошла внутренняя ошибка</translation> <translation>Конфигурация VMess недействительна.</translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -325,13 +325,13 @@
</message> </message>
<message> <message>
<location filename="../src/ui/w_ImportConfig.cpp" line="69"/> <location filename="../src/ui/w_ImportConfig.cpp" line="69"/>
<source>VMess string is not valid</source> <source>VMess string is not valid.</source>
<translation>VMess </translation> <translation>VMess </translation>
</message> </message>
<message> <message>
<location filename="../src/ui/w_ImportConfig.cpp" line="74"/> <location filename="../src/ui/w_ImportConfig.cpp" line="74"/>
<source>Some internal error occured</source> <source>VMess config is not valid.</source>
<translation></translation> <translation>VMess </translation>
</message> </message>
</context> </context>
<context> <context>