fix duplicated routes not being shown

This commit is contained in:
yusing 2025-02-14 05:48:28 +08:00
parent 816166a30a
commit a319957f3e
4 changed files with 8 additions and 2 deletions

View file

@ -163,7 +163,7 @@ func (cfg *AgentConfig) Name() string {
} }
func (cfg *AgentConfig) String() string { func (cfg *AgentConfig) String() string {
return "agent@" + cfg.Addr return cfg.name + "@" + cfg.Addr
} }
func (cfg *AgentConfig) MarshalJSON() ([]byte, error) { func (cfg *AgentConfig) MarshalJSON() ([]byte, error) {

View file

@ -170,7 +170,7 @@ func (cfg *Config) StartAutoCert() {
} }
func (cfg *Config) StartProxyProviders() { func (cfg *Config) StartProxyProviders() {
errs := cfg.providers.CollectErrorsParallel( errs := cfg.providers.CollectErrors(
func(_ string, p *proxy.Provider) error { func(_ string, p *proxy.Provider) error {
return p.Start(cfg.task) return p.Start(cfg.task)
}) })

View file

@ -97,6 +97,9 @@ func (r *ReveseProxyRoute) String() string {
// Start implements task.TaskStarter. // Start implements task.TaskStarter.
func (r *ReveseProxyRoute) Start(parent task.Parent) E.Error { func (r *ReveseProxyRoute) Start(parent task.Parent) E.Error {
if existing, ok := routes.GetHTTPRoute(r.TargetName()); ok {
return E.Errorf("route already exists: from provider %s and %s", existing.ProviderName(), r.ProviderName())
}
r.task = parent.Subtask("http."+r.TargetName(), false) r.task = parent.Subtask("http."+r.TargetName(), false)
switch { switch {

View file

@ -47,6 +47,9 @@ func (r *StreamRoute) String() string {
// Start implements task.TaskStarter. // Start implements task.TaskStarter.
func (r *StreamRoute) Start(parent task.Parent) E.Error { func (r *StreamRoute) Start(parent task.Parent) E.Error {
if existing, ok := routes.GetStreamRoute(r.TargetName()); ok {
return E.Errorf("route already exists: from provider %s and %s", existing.ProviderName(), r.ProviderName())
}
r.task = parent.Subtask("stream." + r.TargetName()) r.task = parent.Subtask("stream." + r.TargetName())
r.Stream = NewStream(r) r.Stream = NewStream(r)
parent.OnCancel("finish", func() { parent.OnCancel("finish", func() {