|
@@ -57,23 +57,23 @@ BOOL CLashConfig::MakeClash()
|
|
|
|
|
|
//CList_node::getSingletonPtr()->listnode;
|
|
//CList_node::getSingletonPtr()->listnode;
|
|
YAML::Node proxies;
|
|
YAML::Node proxies;
|
|
- //for each (auto node in CApp::getSingletonPtr()->GetServerList()->vectlistmode)
|
|
|
|
- //{
|
|
|
|
- // if (node.type == "shadowsocks") {
|
|
|
|
- // proxies.push_back(buildShadowsocks(&node));
|
|
|
|
- // }
|
|
|
|
- // else if (node.type == "trojan") {
|
|
|
|
- // proxies.push_back(buildtrojan(&node));
|
|
|
|
- // }
|
|
|
|
- // else if (node.type == "v2ray") {
|
|
|
|
- // proxies.push_back(buildv2ray(&node));
|
|
|
|
- // }
|
|
|
|
- //}
|
|
|
|
|
|
+ for each (auto node in CApp::getSingletonPtr()->GetServerList()->vectlistmode)
|
|
|
|
+ {
|
|
|
|
+ if (node.type == "shadowsocks") {
|
|
|
|
+ proxies.push_back(buildShadowsocks(&node));
|
|
|
|
+ }
|
|
|
|
+ else if (node.type == "trojan") {
|
|
|
|
+ proxies.push_back(buildtrojan(&node));
|
|
|
|
+ }
|
|
|
|
+ else if (node.type == "v2ray") {
|
|
|
|
+ proxies.push_back(buildv2ray(&node));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
root["proxies"] = proxies;
|
|
root["proxies"] = proxies;
|
|
|
|
|
|
- root["proxy-providers"] = buildProxyproviders();
|
|
|
|
|
|
+ //root["proxy-providers"] = buildProxyproviders();
|
|
|
|
|
|
root["proxy-groups"] = buildProxyGroups();
|
|
root["proxy-groups"] = buildProxyGroups();
|
|
|
|
|
|
@@ -270,7 +270,7 @@ YAML::Node CLashConfig::buildShadowsocks(CServerListMode* node)
|
|
t_map["server"] = node->host;
|
|
t_map["server"] = node->host;
|
|
t_map["port"] = std::to_string(node->port);
|
|
t_map["port"] = std::to_string(node->port);
|
|
t_map["cipher"] = node->method;
|
|
t_map["cipher"] = node->method;
|
|
- t_map["password"] = node->passwd;
|
|
|
|
|
|
+ t_map["password"] = CApp::getSingletonPtr()->GetUserinfo()->uuid;
|
|
t_map["udp"] = true;
|
|
t_map["udp"] = true;
|
|
|
|
|
|
return t_map;
|
|
return t_map;
|
|
@@ -291,7 +291,7 @@ YAML::Node CLashConfig::buildtrojan(CServerListMode* node)
|
|
t_map["type"] = std::string("trojan");
|
|
t_map["type"] = std::string("trojan");
|
|
t_map["server"] = node->host;
|
|
t_map["server"] = node->host;
|
|
t_map["port"] = std::to_string(node->port);
|
|
t_map["port"] = std::to_string(node->port);
|
|
- t_map["password"] = node->passwd;
|
|
|
|
|
|
+ t_map["password"] = CApp::getSingletonPtr()->GetUserinfo()->uuid;
|
|
if (!node->serverName.empty()) {
|
|
if (!node->serverName.empty()) {
|
|
t_map["serverName"] = node->serverName;
|
|
t_map["serverName"] = node->serverName;
|
|
}
|
|
}
|
|
@@ -314,23 +314,22 @@ YAML::Node CLashConfig::buildv2ray(CServerListMode* node)
|
|
t_map["type"] = std::string("vmess");
|
|
t_map["type"] = std::string("vmess");
|
|
t_map["server"] = node->host;
|
|
t_map["server"] = node->host;
|
|
t_map["port"] = std::to_string(node->port);
|
|
t_map["port"] = std::to_string(node->port);
|
|
- //t_map["uuid"] = node->uuid;
|
|
|
|
- t_map["cipher"] = node->method;
|
|
|
|
- //t_map["alterId"] = node->v2_alter_id;
|
|
|
|
- t_map["udp"] = node->udp;
|
|
|
|
|
|
+ t_map["uuid"] = CApp::getSingletonPtr()->GetUserinfo()->uuid;
|
|
|
|
+ t_map["cipher"] = "auto";
|
|
|
|
+ t_map["alterId"] = 0;
|
|
|
|
+ t_map["udp"] = true;
|
|
|
|
|
|
- //if (node->v2_tls == "tls") {
|
|
|
|
- // t_map["tls"] = true;
|
|
|
|
- //}
|
|
|
|
|
|
+ if (node->tls == 1) {
|
|
|
|
+ t_map["tls"] = true;
|
|
|
|
+ }
|
|
|
|
|
|
- //if (node->v2_net == "tcp") {
|
|
|
|
- // t_map["skip-cert-verify"] = false;
|
|
|
|
- // t_map["network"] = node->v2_net;
|
|
|
|
- // if (!node->v2_sni.empty()) {
|
|
|
|
- // t_map["servername"] = node->v2_sni;
|
|
|
|
- // }
|
|
|
|
- //
|
|
|
|
- //}
|
|
|
|
|
|
+ if (node->network == "tcp") {
|
|
|
|
+ t_map["skip-cert-verify"] = false;
|
|
|
|
+ t_map["network"] = node->network;
|
|
|
|
+ if (!node->serverName.empty()) {
|
|
|
|
+ t_map["servername"] = node->serverName;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
//else if (node->v2_net == "ws") {
|
|
//else if (node->v2_net == "ws") {
|
|
// YAML::Node t_host;
|
|
// YAML::Node t_host;
|
|
// t_map["skip-cert-verify"] = false;
|
|
// t_map["skip-cert-verify"] = false;
|
|
@@ -381,20 +380,25 @@ YAML::Node CLashConfig::buildDnsConfig()
|
|
YAML::Node dns;
|
|
YAML::Node dns;
|
|
|
|
|
|
std::vector<std::string> dns_arr;
|
|
std::vector<std::string> dns_arr;
|
|
- dns_arr.push_back("114.114.114.114");
|
|
|
|
- dns_arr.push_back("8.8.8.8");
|
|
|
|
- dns_arr.push_back("tls://dns.rubyfish.cn:853");
|
|
|
|
- dns_arr.push_back("https://1.1.1.1/dns-query");
|
|
|
|
- dns["enable"] = true;
|
|
|
|
if (CApp::getSingletonPtr()->GetSysMode() == PROXY_MODE::tun_mode)
|
|
if (CApp::getSingletonPtr()->GetSysMode() == PROXY_MODE::tun_mode)
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
dns["enhanced-mode"] = "redir-host";
|
|
dns["enhanced-mode"] = "redir-host";
|
|
|
|
+
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+
|
|
|
|
+ dns_arr.push_back("114.114.114.114");
|
|
|
|
+ dns_arr.push_back("8.8.8.8");
|
|
|
|
+ dns_arr.push_back("tls://dns.rubyfish.cn:853");
|
|
|
|
+ dns_arr.push_back("https://1.1.1.1/dns-query");
|
|
|
|
+ /*if (CApp::getSingletonPtr()->GetRouteMode() == ROUT_MODE::qg_mode)
|
|
{
|
|
{
|
|
- //dns["enable"] = false;
|
|
|
|
|
|
+ dns["enable"] = false;
|
|
}
|
|
}
|
|
|
|
+ else {
|
|
|
|
+ dns["enable"] = true;
|
|
|
|
+ }*/
|
|
|
|
+ dns["enable"] = true;
|
|
dns["nameserver"] = dns_arr;
|
|
dns["nameserver"] = dns_arr;
|
|
//dns["use-hosts"] = true;
|
|
//dns["use-hosts"] = true;
|
|
|
|
|
|
@@ -406,18 +410,25 @@ std::vector<YAML::Node> CLashConfig::buildProxyGroups()
|
|
{
|
|
{
|
|
std::vector<YAML::Node> dns_arr;
|
|
std::vector<YAML::Node> dns_arr;
|
|
std::vector<std::string> proxy;
|
|
std::vector<std::string> proxy;
|
|
- //YAML::Node proxies;
|
|
|
|
- //for each (auto node in CApp::getSingletonPtr()->GetServerList()->vectlistmode)
|
|
|
|
- //{
|
|
|
|
- // proxy.push_back(node.name.c_str());
|
|
|
|
- //}
|
|
|
|
- proxy.push_back("foo");
|
|
|
|
|
|
+ YAML::Node proxies;
|
|
|
|
+ for each (auto node in CApp::getSingletonPtr()->GetServerList()->vectlistmode)
|
|
|
|
+ {
|
|
|
|
+ proxy.push_back(node.name.c_str());
|
|
|
|
+ }
|
|
|
|
+
|
|
YAML::Node li;
|
|
YAML::Node li;
|
|
li["name"] = "Proxy";
|
|
li["name"] = "Proxy";
|
|
li["type"] = "select";
|
|
li["type"] = "select";
|
|
- li["use"] = proxy;
|
|
|
|
|
|
+ li["proxies"] = proxy;
|
|
dns_arr.push_back(li);
|
|
dns_arr.push_back(li);
|
|
|
|
|
|
|
|
+ /*proxy.push_back("foo");
|
|
|
|
+ YAML::Node li;
|
|
|
|
+ li["name"] = "Proxy";
|
|
|
|
+ li["type"] = "select";
|
|
|
|
+ li["use"] = proxy;
|
|
|
|
+ dns_arr.push_back(li);*/
|
|
|
|
+
|
|
return dns_arr;
|
|
return dns_arr;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -466,7 +477,7 @@ std::vector<YAML::Node> CLashConfig::buildRules()
|
|
// m_rules.push_back("RULE-SET,google,Proxy");
|
|
// m_rules.push_back("RULE-SET,google,Proxy");
|
|
// m_rules.push_back("RULE-SET,gfw,Proxy");
|
|
// m_rules.push_back("RULE-SET,gfw,Proxy");
|
|
// m_rules.push_back("RULE-SET,cncidr,Proxy");
|
|
// m_rules.push_back("RULE-SET,cncidr,Proxy");
|
|
- m_rules.push_back("GEOIP,CN,Proxy");
|
|
|
|
|
|
+ //m_rules.push_back("GEOIP,CN,Proxy");
|
|
m_rules.push_back("IP-CIDR,127.0.0.0/8,DIRECT");
|
|
m_rules.push_back("IP-CIDR,127.0.0.0/8,DIRECT");
|
|
m_rules.push_back("IP-CIDR,172.16.0.0/12,DIRECT");
|
|
m_rules.push_back("IP-CIDR,172.16.0.0/12,DIRECT");
|
|
m_rules.push_back("IP-CIDR,192.168.0.0/16,DIRECT");
|
|
m_rules.push_back("IP-CIDR,192.168.0.0/16,DIRECT");
|
|
@@ -607,6 +618,8 @@ BOOL CLashConfig::SetProxy()
|
|
return isok;
|
|
return isok;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
//winrt::fire_and_forget CLashConfig::_StartClash()
|
|
//winrt::fire_and_forget CLashConfig::_StartClash()
|
|
//{
|
|
//{
|
|
// if (CProcessManager::getSingletonPtr()->Start())
|
|
// if (CProcessManager::getSingletonPtr()->Start())
|