From 3bf520541b859a740acc98fe909de7e89c58ed4c Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 3 Nov 2024 06:04:35 +0800 Subject: [PATCH] fixed stats websocket endpoint when no match_domains configured --- internal/api/v1/stats.go | 11 +++++++---- internal/config/config.go | 6 ++++++ internal/route/http.go | 5 ----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/api/v1/stats.go b/internal/api/v1/stats.go index e40c3645..d98ad7e8 100644 --- a/internal/api/v1/stats.go +++ b/internal/api/v1/stats.go @@ -19,18 +19,21 @@ func Stats(w http.ResponseWriter, r *http.Request) { } func StatsWS(w http.ResponseWriter, r *http.Request) { - localAddresses := []string{"127.0.0.1", "10.0.*.*", "172.16.*.*", "192.168.*.*"} - originPats := make([]string, len(config.Value().MatchDomains)+len(localAddresses)) + var originPats []string - if len(originPats) == 0 { + localAddresses := []string{"127.0.0.1", "10.0.*.*", "172.16.*.*", "192.168.*.*"} + + if len(config.Value().MatchDomains) == 0 { U.LogWarn(r).Msg("no match domains configured, accepting websocket API request from all origins") originPats = []string{"*"} } else { + originPats = make([]string, len(config.Value().MatchDomains)) for i, domain := range config.Value().MatchDomains { - originPats[i] = "*." + domain + originPats[i] = "*" + domain } originPats = append(originPats, localAddresses...) } + U.LogInfo(r).Msgf("websocket API request from origins: %s", originPats) if common.IsDebug { originPats = []string{"*"} } diff --git a/internal/config/config.go b/internal/config/config.go index 61e1f7e2..3ef0bd0c 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -3,6 +3,7 @@ package config import ( "os" "strconv" + "strings" "sync" "time" @@ -177,6 +178,11 @@ func (cfg *Config) load() E.Error { errs.Add(cfg.loadRouteProviders(&model.Providers)) cfg.value = model + for i, domain := range model.MatchDomains { + if !strings.HasPrefix(domain, ".") { + model.MatchDomains[i] = "." + domain + } + } route.SetFindMuxDomains(model.MatchDomains) return errs.Error() } diff --git a/internal/route/http.go b/internal/route/http.go index 29db4a6f..06dad14c 100755 --- a/internal/route/http.go +++ b/internal/route/http.go @@ -64,11 +64,6 @@ func SetFindMuxDomains(domains []string) { if len(domains) == 0 { findMuxFunc = findMuxAnyDomain } else { - for i, domain := range domains { - if !strings.HasPrefix(domain, ".") { - domains[i] = "." + domain - } - } findMuxFunc = findMuxByDomains(domains) } }