Fixed:Rule-Set Supported RuleExtra

This commit is contained in:
gVisor bot 2021-12-02 23:32:30 +08:00
parent 2befea6893
commit a5d14996a0
2 changed files with 4 additions and 2 deletions

View file

@ -46,7 +46,7 @@ func ParseRule(tp, payload, target string, params []string) (C.Rule, error) {
case "MATCH":
parsed = NewMatch(target, ruleExtra)
case "RULE-SET":
parsed, parseErr = NewRuleSet(payload, target)
parsed, parseErr = NewRuleSet(payload, target, ruleExtra)
default:
parseErr = fmt.Errorf("unsupported rule type %s", tp)
}

View file

@ -10,6 +10,7 @@ type RuleSet struct {
ruleProviderName string
adapter string
ruleProvider *P.RuleProvider
ruleExtra *C.RuleExtra
}
func (rs *RuleSet) RuleType() C.RuleType {
@ -44,7 +45,7 @@ func (rs *RuleSet) RuleExtra() *C.RuleExtra {
return nil
}
func NewRuleSet(ruleProviderName string, adapter string) (*RuleSet, error) {
func NewRuleSet(ruleProviderName string, adapter string, ruleExtra *C.RuleExtra) (*RuleSet, error) {
rp, ok := RuleProviders()[ruleProviderName]
if !ok {
return nil, fmt.Errorf("rule set %s not found", ruleProviderName)
@ -53,5 +54,6 @@ func NewRuleSet(ruleProviderName string, adapter string) (*RuleSet, error) {
ruleProviderName: ruleProviderName,
adapter: adapter,
ruleProvider: rp,
ruleExtra: ruleExtra,
}, nil
}