mirror of
https://github.com/Mahdi-zarei/nekoray.git
synced 2025-12-26 03:11:21 +08:00
feat: add bypass russia chain
This commit is contained in:
parent
320b599559
commit
24d3bf6176
@ -25,6 +25,7 @@ namespace Configs {
|
|||||||
enum inputType {trufalse, select, text};
|
enum inputType {trufalse, select, text};
|
||||||
const int IranBypassChainID = 111111111;
|
const int IranBypassChainID = 111111111;
|
||||||
const int ChinaBypassChainID = 222222222;
|
const int ChinaBypassChainID = 222222222;
|
||||||
|
const int RussiaBypassChainID = 333333333;
|
||||||
enum ruleType {custom, simpleAddress, simpleProcessName, simpleProcessPath};
|
enum ruleType {custom, simpleAddress, simpleProcessName, simpleProcessPath};
|
||||||
enum simpleAction{direct, block, proxy};
|
enum simpleAction{direct, block, proxy};
|
||||||
inline QString simpleActionToString(simpleAction action)
|
inline QString simpleActionToString(simpleAction action)
|
||||||
@ -133,6 +134,8 @@ namespace Configs {
|
|||||||
|
|
||||||
static std::shared_ptr<RoutingChain> GetChinaDefaultChain();
|
static std::shared_ptr<RoutingChain> GetChinaDefaultChain();
|
||||||
|
|
||||||
|
static std::shared_ptr<RoutingChain> GetRussiaDefaultChain();
|
||||||
|
|
||||||
std::shared_ptr<QList<int>> get_used_outbounds();
|
std::shared_ptr<QList<int>> get_used_outbounds();
|
||||||
|
|
||||||
std::shared_ptr<QStringList> get_used_rule_sets();
|
std::shared_ptr<QStringList> get_used_rule_sets();
|
||||||
|
|||||||
@ -113,6 +113,7 @@ namespace Configs {
|
|||||||
|
|
||||||
routes[IranBypassChainID] = RoutingChain::GetIranDefaultChain();
|
routes[IranBypassChainID] = RoutingChain::GetIranDefaultChain();
|
||||||
routes[ChinaBypassChainID] = RoutingChain::GetChinaDefaultChain();
|
routes[ChinaBypassChainID] = RoutingChain::GetChinaDefaultChain();
|
||||||
|
routes[RussiaBypassChainID] = RoutingChain::GetRussiaDefaultChain();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileManager::SaveManager() {
|
void ProfileManager::SaveManager() {
|
||||||
|
|||||||
@ -578,7 +578,8 @@ namespace Configs {
|
|||||||
|
|
||||||
bool RoutingChain::isViewOnly() const {
|
bool RoutingChain::isViewOnly() const {
|
||||||
return id == IranBypassChainID ||
|
return id == IranBypassChainID ||
|
||||||
id == ChinaBypassChainID;
|
id == ChinaBypassChainID ||
|
||||||
|
id == RussiaBypassChainID;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<RoutingChain> RoutingChain::GetDefaultChain() {
|
std::shared_ptr<RoutingChain> RoutingChain::GetDefaultChain() {
|
||||||
@ -646,6 +647,33 @@ namespace Configs {
|
|||||||
return chain;
|
return chain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<RoutingChain> RoutingChain::GetRussiaDefaultChain() {
|
||||||
|
auto chain = std::make_shared<RoutingChain>();
|
||||||
|
chain->name = "Bypass Russia";
|
||||||
|
chain->id = RussiaBypassChainID;
|
||||||
|
chain->save_control_no_save = true;
|
||||||
|
|
||||||
|
auto rule0 = std::make_shared<RouteRule>();
|
||||||
|
rule0->name = "Route DNS";
|
||||||
|
rule0->action = "hijack-dns";
|
||||||
|
rule0->protocol = "dns";
|
||||||
|
chain->Rules << rule0;
|
||||||
|
|
||||||
|
auto rule1 = std::make_shared<RouteRule>();
|
||||||
|
rule1->rule_set << QString("ru_IP") << QString("category-ru_SITE");
|
||||||
|
rule1->name = "Bypass Russia IPs and Domains";
|
||||||
|
rule1->outboundID = -2;
|
||||||
|
chain->Rules << rule1;
|
||||||
|
|
||||||
|
auto rule2 = std::make_shared<RouteRule>();
|
||||||
|
rule2->name = "Bypass Private IPs";
|
||||||
|
rule2->ip_is_private = true;
|
||||||
|
rule1->outboundID = -2;
|
||||||
|
chain->Rules << rule2;
|
||||||
|
|
||||||
|
return chain;
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<QList<int>> RoutingChain::get_used_outbounds() {
|
std::shared_ptr<QList<int>> RoutingChain::get_used_outbounds() {
|
||||||
auto res = std::make_shared<QList<int>>();
|
auto res = std::make_shared<QList<int>>();
|
||||||
for (const auto& item: Rules) {
|
for (const auto& item: Rules) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user