fixed stats websocket endpoint when no match_domains configured

This commit is contained in:
yusing 2024-11-03 06:04:35 +08:00
parent a531896bd6
commit 3bf520541b
3 changed files with 13 additions and 9 deletions

View file

@ -19,18 +19,21 @@ func Stats(w http.ResponseWriter, r *http.Request) {
} }
func StatsWS(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.*.*"} var originPats []string
originPats := make([]string, len(config.Value().MatchDomains)+len(localAddresses))
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") U.LogWarn(r).Msg("no match domains configured, accepting websocket API request from all origins")
originPats = []string{"*"} originPats = []string{"*"}
} else { } else {
originPats = make([]string, len(config.Value().MatchDomains))
for i, domain := range config.Value().MatchDomains { for i, domain := range config.Value().MatchDomains {
originPats[i] = "*." + domain originPats[i] = "*" + domain
} }
originPats = append(originPats, localAddresses...) originPats = append(originPats, localAddresses...)
} }
U.LogInfo(r).Msgf("websocket API request from origins: %s", originPats)
if common.IsDebug { if common.IsDebug {
originPats = []string{"*"} originPats = []string{"*"}
} }

View file

@ -3,6 +3,7 @@ package config
import ( import (
"os" "os"
"strconv" "strconv"
"strings"
"sync" "sync"
"time" "time"
@ -177,6 +178,11 @@ func (cfg *Config) load() E.Error {
errs.Add(cfg.loadRouteProviders(&model.Providers)) errs.Add(cfg.loadRouteProviders(&model.Providers))
cfg.value = model cfg.value = model
for i, domain := range model.MatchDomains {
if !strings.HasPrefix(domain, ".") {
model.MatchDomains[i] = "." + domain
}
}
route.SetFindMuxDomains(model.MatchDomains) route.SetFindMuxDomains(model.MatchDomains)
return errs.Error() return errs.Error()
} }

View file

@ -64,11 +64,6 @@ func SetFindMuxDomains(domains []string) {
if len(domains) == 0 { if len(domains) == 0 {
findMuxFunc = findMuxAnyDomain findMuxFunc = findMuxAnyDomain
} else { } else {
for i, domain := range domains {
if !strings.HasPrefix(domain, ".") {
domains[i] = "." + domain
}
}
findMuxFunc = findMuxByDomains(domains) findMuxFunc = findMuxByDomains(domains)
} }
} }