diff --git a/src/generator/config/ruleconvert.cpp b/src/generator/config/ruleconvert.cpp index f98e346541..4d8d0e9a4c 100644 --- a/src/generator/config/ruleconvert.cpp +++ b/src/generator/config/ruleconvert.cpp @@ -10,7 +10,7 @@ /// rule type lists #define basic_types "DOMAIN", "DOMAIN-SUFFIX", "DOMAIN-KEYWORD", "IP-CIDR", "SRC-IP-CIDR", "GEOIP", "MATCH", "FINAL" -string_array ClashRuleTypes = {basic_types, "IP-CIDR6", "SRC-PORT", "DST-PORT", "PROCESS-NAME"}; +string_array ClashRuleTypes = {basic_types, "IP-CIDR6", "SRC-PORT", "DST-PORT", "PROCESS-NAME", "AND", "OR", "NOT"}; string_array Surge2RuleTypes = {basic_types, "IP-CIDR6", "USER-AGENT", "URL-REGEX", "PROCESS-NAME", "IN-PORT", "DEST-PORT", "SRC-IP"}; string_array SurgeRuleTypes = {basic_types, "IP-CIDR6", "USER-AGENT", "URL-REGEX", "AND", "OR", "NOT", "PROCESS-NAME", "IN-PORT", "DEST-PORT", "SRC-IP"}; string_array QuanXRuleTypes = {basic_types, "USER-AGENT", "HOST", "HOST-SUFFIX", "HOST-KEYWORD"}; @@ -106,7 +106,7 @@ static std::string transformRuleToCommon(string_view_array &temp, const std::str strLine += ","; strLine += group; } - else + else if (temp.size() < 4) { strLine = temp[0]; strLine += ","; @@ -118,7 +118,7 @@ static std::string transformRuleToCommon(string_view_array &temp, const std::str strLine += ","; strLine += temp[2]; } - } + } else strLine = input + "," + group; return strLine; }