mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-01 09:32:35 +02:00
treat fileserver as http route
This commit is contained in:
parent
1baf10fa88
commit
ec148f036d
4 changed files with 17 additions and 23 deletions
|
@ -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,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
||||||
})
|
})
|
||||||
|
|
|
@ -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"
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue