From 380260af2103d78247b5c1cd1f02003bef359e1b Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Wed, 6 Nov 2019 22:15:38 +0800 Subject: [PATCH] Fix bugs Fix a critical bug preventing Shadowsocks obfs-host to be read in Surge 2 subscription. Optimize codes. --- rapidjson_extra.cpp | 4 ++-- rapidjson_extra.h | 2 +- speedtestutil.cpp | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rapidjson_extra.cpp b/rapidjson_extra.cpp index e737067..9a89e48 100644 --- a/rapidjson_extra.cpp +++ b/rapidjson_extra.cpp @@ -40,11 +40,11 @@ std::string GetMember(const rapidjson::Value& value, std::string member) return retStr; } -void GetMember(const rapidjson::Value& value, std::string member, std::string* target) +void GetMember(const rapidjson::Value& value, std::string member, std::string& target) { std::string retStr = GetMember(value, member); if(retStr.size()) - target->assign(retStr); + target.assign(retStr); } std::string SerializeObject(const rapidjson::Value& value) diff --git a/rapidjson_extra.h b/rapidjson_extra.h index 6791251..73f5502 100644 --- a/rapidjson_extra.h +++ b/rapidjson_extra.h @@ -7,7 +7,7 @@ void operator >> (const rapidjson::Value& value, std::string& i); void operator >> (const rapidjson::Value& value, int& i); std::string GetMember(const rapidjson::Value& value, std::string member); -void GetMember(const rapidjson::Value& value, std::string member, std::string* target); +void GetMember(const rapidjson::Value& value, std::string member, std::string& target); std::string SerializeObject(const rapidjson::Value& value); #endif // RAPIDJSON_EXTRA_H_INCLUDED diff --git a/speedtestutil.cpp b/speedtestutil.cpp index ba65cc5..0e2cc4a 100644 --- a/speedtestutil.cpp +++ b/speedtestutil.cpp @@ -163,7 +163,7 @@ void explodeVmess(std::string vmess, std::string custom_port, int local_port, no jsondata.Parse(vmess.data()); version = "1"; //link without version will treat as version 1 - GetMember(jsondata, "v", &version); //try to get version + GetMember(jsondata, "v", version); //try to get version jsondata["ps"] >> ps; jsondata["add"] >> add; @@ -391,11 +391,11 @@ void explodeSSD(std::string link, bool libev, std::string custom_port, int local jsondata["encryption"] >> method; jsondata["password"] >> password; jsondata["servers"][i]["server"] >> server; - GetMember(jsondata["servers"][i], "plugin", &plugin); - GetMember(jsondata["servers"][i], "plugin_options", &pluginopts); - GetMember(jsondata["servers"][i], "encryption", &method); - GetMember(jsondata["servers"][i], "port", &port); - GetMember(jsondata["servers"][i], "password", &password); + GetMember(jsondata["servers"][i], "plugin", plugin); + GetMember(jsondata["servers"][i], "plugin_options", pluginopts); + GetMember(jsondata["servers"][i], "encryption", method); + GetMember(jsondata["servers"][i], "port", port); + GetMember(jsondata["servers"][i], "password", password); if(custom_port != "") port = custom_port; @@ -1105,7 +1105,7 @@ bool explodeSurge(std::string surge, std::string custom_port, int local_port, st plugin = "simple-obfs"; pluginopts_mode = itemVal; } - else if(itemVal == "obfs-host") + else if(itemName == "obfs-host") pluginopts_host = itemVal; } if(plugin != "")