From 92fb2f99e5e2cf474c0dfafc1797d193706a002c Mon Sep 17 00:00:00 2001 From: Qv2ray-dev <59914293+Qv2ray-dev@users.noreply.github.com> Date: Fri, 19 Jun 2020 21:31:20 +0800 Subject: [PATCH] update: updated ss:// SIP002 --- makespec/BUILDVERSION | 2 +- src/core/connection/serialization/ss.cpp | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/makespec/BUILDVERSION b/makespec/BUILDVERSION index ff2a7e26..3d0d37b0 100644 --- a/makespec/BUILDVERSION +++ b/makespec/BUILDVERSION @@ -1 +1 @@ -5625 +5626 diff --git a/src/core/connection/serialization/ss.cpp b/src/core/connection/serialization/ss.cpp index a1683ab6..062259c2 100644 --- a/src/core/connection/serialization/ss.cpp +++ b/src/core/connection/serialization/ss.cpp @@ -81,17 +81,18 @@ namespace Qv2ray::core::connection auto x = QUrl::fromUserInput(uri); server.address = x.host(); server.port = x.port(); - QString userInfo = SafeBase64Decode(x.userName()); - auto userInfoSp = userInfo.indexOf(':'); + const auto userInfo = SafeBase64Decode(x.userName()); + const auto userInfoSp = userInfo.indexOf(':'); // DEBUG(MODULE_CONNECTION, "Userinfo splitter position: " + QSTRN(userInfoSp)) if (userInfoSp < 0) { *errMessage = QObject::tr("Can't find the colon separator between method and password"); + return CONFIGROOT{}; } - QString method = userInfo.mid(0, userInfoSp); + const auto method = userInfo.mid(0, userInfoSp); server.method = method; server.password = userInfo.mid(userInfoSp + 1); } @@ -99,8 +100,7 @@ namespace Qv2ray::core::connection d_name = QUrl::fromPercentEncoding(d_name.toUtf8()); CONFIGROOT root; OUTBOUNDS outbounds; - outbounds.append( - GenerateOutboundEntry("shadowsocks", GenerateShadowSocksOUT(QList{ server }), QJsonObject())); + outbounds.append(GenerateOutboundEntry("shadowsocks", GenerateShadowSocksOUT({ server }), {})); JADD(outbounds) *alias = alias->isEmpty() ? d_name : *alias + "_" + d_name; LOG(MODULE_CONNECTION, "Deduced alias: " + *alias) @@ -114,16 +114,16 @@ namespace Qv2ray::core::connection if (isSip002) { LOG(MODULE_CONNECTION, "Converting an ss-server config to Sip002 ss:// format") - QString plainUserInfo = server.method + ":" + server.password; - QString userinfo(plainUserInfo.toUtf8().toBase64(QByteArray::Base64Option::Base64UrlEncoding).data()); - return "ss://" + userinfo + "@" + server.address + ":" + QSTRN(server.port) + "#" + myAlias; + const auto plainUserInfo = server.method + ":" + server.password; + const auto userinfo = plainUserInfo.toUtf8().toBase64(QByteArray::Base64Option::Base64UrlEncoding); + return "ss://" + userinfo + "@" + server.address + ":" + QSTRN(server.port) + "/#" + myAlias; } else { LOG(MODULE_CONNECTION, "Converting an ss-server config to old ss:// string format") QString ssUri = server.method + ":" + server.password + "@" + server.address + ":" + QSTRN(server.port); - return "ss://" + ssUri.toUtf8().toBase64(QByteArray::Base64Option::OmitTrailingEquals) + "#" + myAlias; + return "ss://" + ssUri.toUtf8().toBase64(QByteArray::Base64Option::OmitTrailingEquals) + "/#" + myAlias; } } - } // namespace Serialization::ss + } // namespace serialization::ss } // namespace Qv2ray::core::connection