Feature:Supported Rule-Set

This commit is contained in:
Skyxim
2021-12-02 22:56:17 +08:00
parent c7b257b188
commit c6f923041f
13 changed files with 1012 additions and 16 deletions

View File

@ -20,14 +20,14 @@ import (
)
var (
tcpQueue = make(chan C.ConnContext, 200)
udpQueue = make(chan *inbound.PacketAdapter, 200)
natTable = nat.New()
rules []C.Rule
proxies = make(map[string]C.Proxy)
providers map[string]provider.ProxyProvider
configMux sync.RWMutex
tcpQueue = make(chan C.ConnContext, 200)
udpQueue = make(chan *inbound.PacketAdapter, 200)
natTable = nat.New()
rules []C.Rule
proxies = make(map[string]C.Proxy)
providers map[string]provider.ProxyProvider
configMux sync.RWMutex
ruleProviders map[string]*provider.RuleProvider
// Outbound Rule
mode = Rule
@ -57,9 +57,10 @@ func Rules() []C.Rule {
}
// UpdateRules handle update rules
func UpdateRules(newRules []C.Rule) {
func UpdateRules(newRules []C.Rule, rp map[string]*provider.RuleProvider) {
configMux.Lock()
rules = newRules
ruleProviders = rp
configMux.Unlock()
}
@ -73,6 +74,11 @@ func Providers() map[string]provider.ProxyProvider {
return providers
}
// RuleProviders return all loaded rule providers
func RuleProviders() map[string]*provider.RuleProvider {
return ruleProviders
}
// UpdateProxies handle update proxies
func UpdateProxies(newProxies map[string]C.Proxy, newProviders map[string]provider.ProxyProvider) {
configMux.Lock()