chore: replace ip with dip, port with dport

This commit is contained in:
mzz2017
2023-02-25 03:12:35 +08:00
parent c5fb8dc028
commit 80cffe8ca9
6 changed files with 29 additions and 21 deletions

View File

@ -144,7 +144,7 @@ routing {
return nil, err
}
if rules, err = routing.ApplyRulesOptimizers(r.Rules,
&routing.RefineFunctionParamKeyOptimizer{},
&routing.AliasOptimizer{},
&routing.DatReaderOptimizer{Logger: logrus.StandardLogger()},
&routing.MergeAndSortRulesOptimizer{},
&routing.DeduplicateParamsOptimizer{},

View File

@ -37,15 +37,21 @@ func ApplyRulesOptimizers(rules []*config_parser.RoutingRule, optimizers ...Rule
return rules, err
}
type RefineFunctionParamKeyOptimizer struct {
type AliasOptimizer struct {
}
func (o *RefineFunctionParamKeyOptimizer) Optimize(rules []*config_parser.RoutingRule) ([]*config_parser.RoutingRule, error) {
func (o *AliasOptimizer) Optimize(rules []*config_parser.RoutingRule) ([]*config_parser.RoutingRule, error) {
for _, rule := range rules {
for _, function := range rule.AndFunctions {
switch function.Name {
case "dport":
function.Name = consts.Function_Port
case "dip":
function.Name = consts.Function_Ip
}
for _, param := range function.Params {
switch function.Name {
case "domain":
case consts.Function_Domain:
// Rewrite to authoritative key name.
switch param.Key {
case "", "domain":
@ -92,7 +98,7 @@ func (o *MergeAndSortRulesOptimizer) Optimize(rules []*config_parser.RoutingRule
// Sort ParamList.
for i := range newRules {
for _, function := range newRules[i].AndFunctions {
if function.Name == "ip" {
if function.Name == consts.Function_Ip || function.Name == consts.Function_SourceIp {
// Sort by IPv4, IPv6, vals.
sort.SliceStable(function.Params, func(i, j int) bool {
vi, vj := 4, 4