diff --git a/adapter/provider/parser.go b/adapter/provider/parser.go index 88b36b7c45..2e4366691e 100644 --- a/adapter/provider/parser.go +++ b/adapter/provider/parser.go @@ -28,14 +28,16 @@ type healthCheckSchema struct { } type OverrideSchema struct { - UDP *bool `provider:"udp,omitempty"` - Up *string `provider:"up,omitempty"` - Down *string `provider:"down,omitempty"` - DialerProxy *string `provider:"dialer-proxy,omitempty"` - SkipCertVerify *bool `provider:"skip-cert-verify,omitempty"` - Interface *string `provider:"interface-name,omitempty"` - RoutingMark *int `provider:"routing-mark,omitempty"` - IPVersion *string `provider:"ip-version,omitempty"` + UDP *bool `provider:"udp,omitempty"` + Up *string `provider:"up,omitempty"` + Down *string `provider:"down,omitempty"` + DialerProxy *string `provider:"dialer-proxy,omitempty"` + SkipCertVerify *bool `provider:"skip-cert-verify,omitempty"` + Interface *string `provider:"interface-name,omitempty"` + RoutingMark *int `provider:"routing-mark,omitempty"` + IPVersion *string `provider:"ip-version,omitempty"` + AdditionalPrefix *string `provider:"additional-prefix,omitempty"` + AdditionalSuffix *string `provider:"additional-suffix,omitempty"` } type proxyProviderSchema struct { diff --git a/adapter/provider/provider.go b/adapter/provider/provider.go index d710d3a433..b591538be4 100644 --- a/adapter/provider/provider.go +++ b/adapter/provider/provider.go @@ -399,6 +399,14 @@ func proxiesParseAndFilter(filter string, excludeFilter string, excludeTypeArray if override.IPVersion != nil { mapping["ip-version"] = *override.IPVersion } + if override.AdditionalPrefix != nil { + name := mapping["name"].(string) + mapping["name"] = *override.AdditionalPrefix + name + } + if override.AdditionalSuffix != nil { + name := mapping["name"].(string) + mapping["name"] = name + *override.AdditionalSuffix + } proxy, err := adapter.ParseProxy(mapping) if err != nil { diff --git a/docs/config.yaml b/docs/config.yaml index eee6122be4..dc257ee27d 100644 --- a/docs/config.yaml +++ b/docs/config.yaml @@ -862,6 +862,8 @@ proxy-providers: # interface-name: tailscale0 # routing-mark: 233 # ip-version: ipv4-prefer + # additional-prefix: "[provider1]" + # additional-suffix: "test" test: type: file path: /test.yaml