Browse Source

Bugs fix

Fix some Shadowsocks nodes are missing in Loon configurations.
Fix Quantumult X nodes not handling duplicated remarks.
Force expand all local rules instead of generating /getruleset urls for generator mode.
Tindy X 5 years ago
parent
commit
782caaf082
2 changed files with 6 additions and 3 deletions
  1. 4 2
      src/interfaces.cpp
  2. 2 1
      src/subexport.cpp

+ 4 - 2
src/interfaces.cpp

@@ -1571,7 +1571,7 @@ std::string surgeConfToClash(RESPONSE_CALLBACK_ARGS)
 
 std::string getProfile(RESPONSE_CALLBACK_ARGS)
 {
-    std::string name = UrlDecode(getUrlArg(argument, "name")), token = UrlDecode(getUrlArg(argument, "token"));
+    std::string name = UrlDecode(getUrlArg(argument, "name")), token = UrlDecode(getUrlArg(argument, "token")), expand = getUrlArg(argument, "expand");
     if(token != access_token)
     {
         *status_code = 403;
@@ -1600,6 +1600,7 @@ std::string getProfile(RESPONSE_CALLBACK_ARGS)
         return "Broken profile!";
     }
     contents.emplace("token", token);
+    contents.emplace("expand", expand);
     std::string query;
     for(auto &x : contents)
     {
@@ -1732,11 +1733,12 @@ void simpleGenerator()
         if(ini.ItemExist("profile"))
         {
             profile = ini.Get("profile");
-            content = getProfile("name=" + UrlEncode(profile) + "&token=" + access_token, dummy_str, &ret_code, dummy_map);
+            content = getProfile("name=" + UrlEncode(profile) + "&token=" + access_token + "&expand=true", dummy_str, &ret_code, dummy_map);
         }
         else
         {
             ini.GetItems(allItems);
+            allItems.emplace("expand", "true");
             for(auto &y : allItems)
             {
                 if(y.first == "path")

+ 2 - 1
src/subexport.cpp

@@ -1702,6 +1702,7 @@ void netchToQuanX(std::vector<nodeInfo> &nodes, INIReader &ini, std::vector<rule
             proxyStr += ", udp-relay=true";
         proxyStr += ", tag=" + remark;
 
+        remarks_list.push_back(remark);
         ini.Set("{NONAME}", proxyStr);
         nodelist.emplace_back(x);
     }
@@ -2226,7 +2227,7 @@ std::string netchToLoon(std::vector<nodeInfo> &nodes, std::string &base_conf, st
                 if(pluginopts.size())
                     proxy += "," + replace_all_distinct(replace_all_distinct(pluginopts, ";obfs-host=", ","), "obfs=", "");
             }
-            else
+            else if(plugin.size())
                 continue;
             break;
         case SPEEDTEST_MESSAGE_FOUNDVMESS: