treat fileserver as http route

This commit is contained in:
yusing 2025-02-04 03:26:54 +08:00
parent 1baf10fa88
commit ec148f036d
4 changed files with 17 additions and 23 deletions

View file

@ -17,11 +17,10 @@ type (
NumUnknown uint16 `json:"unknown"`
}
ProviderStats struct {
Total uint16 `json:"total"`
RPs RouteStats `json:"reverse_proxies"`
FileServers RouteStats `json:"file_servers"`
Streams RouteStats `json:"streams"`
Type types.ProviderType `json:"type"`
Total uint16 `json:"total"`
RPs RouteStats `json:"reverse_proxies"`
Streams RouteStats `json:"streams"`
Type types.ProviderType `json:"type"`
}
)
@ -56,22 +55,19 @@ func (stats *RouteStats) AddOther(other RouteStats) {
}
func (p *Provider) Statistics() ProviderStats {
var rps, fileServers, streams RouteStats
var rps, streams RouteStats
for _, r := range p.routes {
switch r.Type() {
case route.RouteTypeReverseProxy:
case route.RouteTypeHTTP:
rps.Add(r)
case route.RouteTypeStream:
streams.Add(r)
default:
fileServers.Add(r)
}
}
return ProviderStats{
Total: rps.Total + streams.Total,
RPs: rps,
FileServers: fileServers,
Streams: streams,
Type: p.t,
Total: rps.Total + streams.Total,
RPs: rps,
Streams: streams,
Type: p.t,
}
}

View file

@ -140,13 +140,12 @@ func (r *Route) TargetURL() *net.URL {
func (r *Route) Type() types.RouteType {
switch r.Scheme {
case types.SchemeHTTP, types.SchemeHTTPS:
return types.RouteTypeReverseProxy
case types.SchemeHTTP, types.SchemeHTTPS, types.SchemeFileServer:
return types.RouteTypeHTTP
case types.SchemeTCP, types.SchemeUDP:
return types.RouteTypeStream
default:
return types.RouteTypeFileServer
}
panic(fmt.Errorf("unexpected scheme %s for alias %s", r.Scheme, r.Alias))
}
func (r *Route) HealthMonitor() health.HealthMonitor {

View file

@ -147,11 +147,11 @@ func HomepageConfig(useDefaultCategories bool, categoryFilter, providerFilter st
func RoutesByAlias(typeFilter ...route.RouteType) map[string]route.Route {
rts := make(map[string]route.Route)
if len(typeFilter) == 0 || typeFilter[0] == "" {
typeFilter = []route.RouteType{route.RouteTypeReverseProxy, route.RouteTypeStream}
typeFilter = []route.RouteType{route.RouteTypeHTTP, route.RouteTypeStream}
}
for _, t := range typeFilter {
switch t {
case route.RouteTypeReverseProxy:
case route.RouteTypeHTTP:
routes.GetHTTPRoutes().RangeAll(func(alias string, r route.HTTPRoute) {
rts[alias] = r
})

View file

@ -3,7 +3,6 @@ package types
type RouteType string
const (
RouteTypeStream RouteType = "stream"
RouteTypeReverseProxy RouteType = "reverse_proxy"
RouteTypeFileServer RouteType = "file_server"
RouteTypeStream RouteType = "stream"
RouteTypeHTTP RouteType = "http"
)