Revert "[fix]code"

This reverts commit 0431969a73.
This commit is contained in:
maze.y2b@gmail.com
2021-12-02 20:08:34 +08:00
parent b15a7c8b6f
commit 53eb3f15bb
13 changed files with 9 additions and 784 deletions

View File

@@ -122,7 +122,7 @@ type Config struct {
Hosts *trie.DomainTrie
Profile *Profile
Rules []C.Rule
RuleProviders map[string]providerTypes.RuleProvider
RuleProviders map[string]C.Rule
Users []auth.AuthUser
Proxies map[string]C.Proxy
Providers map[string]providerTypes.ProxyProvider
@@ -482,40 +482,9 @@ time = ClashTime()
return nil
}
func parseRules(cfg *RawConfig, proxies map[string]C.Proxy) ([]C.Rule, map[string]providerTypes.RuleProvider, error) {
func parseRules(cfg *RawConfig, proxies map[string]C.Proxy) ([]C.Rule, map[string]C.Rule, error) {
rules := []C.Rule{}
ruleProviders := map[string]providerTypes.RuleProvider{}
ruleProviderNameSet := make(map[string]interface{}, len(ruleProviders))
// set parse callback for parse rule type
provider.SetClassicalRuleParser(func(ruleType, rule string, params []string) (C.Rule, error) {
if params == nil {
params = make([]string, 0)
}
return R.ParseRule(ruleType, rule, "", params)
})
for name, mapping := range cfg.RuleProvider {
rp, err := provider.ParseRuleProvider(name, mapping)
if err != nil {
return nil, nil, err
}
ruleProviders[name] = rp
provider.SetRuleProvider(rp)
}
for _, provider := range ruleProviders {
log.Infoln("Start initial provider %s", (provider).Name())
if err := (provider).Initial(); err != nil {
return nil, nil, fmt.Errorf("initial rule provider %s error: %w", (provider).Name(), err)
}
}
// get all name of rule provider
for k := range ruleProviders {
ruleProviderNameSet[k] = nil
}
ruleProviders := map[string]C.Rule{}
rulesConfig := cfg.Rule
mode := cfg.Mode
@@ -557,7 +526,6 @@ func parseRules(cfg *RawConfig, proxies map[string]C.Proxy) ([]C.Rule, map[strin
return nil, nil, fmt.Errorf("rules[%d] [%s] error: proxy [%s] not found", idx, line, target)
}
rule = trimArr(rule)
params = trimArr(params)
parsed, parseErr := R.ParseRule(ruleName, payload, target, params)