This commit is contained in:
5kind 2025-12-18 12:21:03 +08:00 committed by GitHub
commit 446b1fa1f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -430,7 +430,7 @@ type RawConfig struct {
KeepAliveInterval int `yaml:"keep-alive-interval" json:"keep-alive-interval"`
DisableKeepAlive bool `yaml:"disable-keep-alive" json:"disable-keep-alive"`
ProxyProvider map[string]map[string]any `yaml:"proxy-providers" json:"proxy-providers"`
ProxyProvider *orderedmap.OrderedMap[string, map[string]any] `yaml:"proxy-providers" json:"proxy-providers"`
RuleProvider map[string]map[string]any `yaml:"rule-providers" json:"rule-providers"`
Proxy []map[string]any `yaml:"proxies" json:"proxies"`
ProxyGroup []map[string]any `yaml:"proxy-groups" json:"proxy-groups"`
@ -480,6 +480,7 @@ func DefaultRawConfig() *RawConfig {
Rule: []string{},
Proxy: []map[string]any{},
ProxyGroup: []map[string]any{},
ProxyProvider: orderedmap.New[string, map[string]any](),
TCPConcurrent: false,
FindProcessMode: process.FindProcessStrict,
GlobalUA: "clash.meta/" + C.Version,
@ -902,7 +903,8 @@ func parseProxies(cfg *RawConfig) (proxies map[string]C.Proxy, providersMap map[
var AllProviders []string
// parse and initial providers
for name, mapping := range providersConfig {
for pair := providersConfig.Oldest(); pair != nil; pair = pair.Next() {
name, mapping := pair.Key, pair.Value
if name == provider.ReservedName {
return nil, nil, fmt.Errorf("can not defined a provider called `%s`", provider.ReservedName)
}
@ -917,7 +919,6 @@ func parseProxies(cfg *RawConfig) (proxies map[string]C.Proxy, providersMap map[
}
slices.Sort(AllProxies)
slices.Sort(AllProviders)
// parse proxy group
for idx, mapping := range groupsConfig {