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

View file

@ -140,13 +140,12 @@ func (r *Route) TargetURL() *net.URL {
func (r *Route) Type() types.RouteType { func (r *Route) Type() types.RouteType {
switch r.Scheme { switch r.Scheme {
case types.SchemeHTTP, types.SchemeHTTPS: case types.SchemeHTTP, types.SchemeHTTPS, types.SchemeFileServer:
return types.RouteTypeReverseProxy return types.RouteTypeHTTP
case types.SchemeTCP, types.SchemeUDP: case types.SchemeTCP, types.SchemeUDP:
return types.RouteTypeStream 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 { 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 { func RoutesByAlias(typeFilter ...route.RouteType) map[string]route.Route {
rts := make(map[string]route.Route) rts := make(map[string]route.Route)
if len(typeFilter) == 0 || typeFilter[0] == "" { if len(typeFilter) == 0 || typeFilter[0] == "" {
typeFilter = []route.RouteType{route.RouteTypeReverseProxy, route.RouteTypeStream} typeFilter = []route.RouteType{route.RouteTypeHTTP, route.RouteTypeStream}
} }
for _, t := range typeFilter { for _, t := range typeFilter {
switch t { switch t {
case route.RouteTypeReverseProxy: case route.RouteTypeHTTP:
routes.GetHTTPRoutes().RangeAll(func(alias string, r route.HTTPRoute) { routes.GetHTTPRoutes().RangeAll(func(alias string, r route.HTTPRoute) {
rts[alias] = r rts[alias] = r
}) })

View file

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