mirror of
https://github.com/yusing/godoxy.git
synced 2025-07-22 04:14:04 +02:00
fix display url of file server rouie, refactor
This commit is contained in:
parent
3cd9e47fd0
commit
d1524c1013
1 changed files with 13 additions and 23 deletions
|
@ -4,9 +4,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types/container"
|
|
||||||
"github.com/yusing/go-proxy/agent/pkg/agent"
|
"github.com/yusing/go-proxy/agent/pkg/agent"
|
||||||
"github.com/yusing/go-proxy/internal"
|
|
||||||
"github.com/yusing/go-proxy/internal/docker"
|
"github.com/yusing/go-proxy/internal/docker"
|
||||||
"github.com/yusing/go-proxy/internal/gperr"
|
"github.com/yusing/go-proxy/internal/gperr"
|
||||||
"github.com/yusing/go-proxy/internal/homepage"
|
"github.com/yusing/go-proxy/internal/homepage"
|
||||||
|
@ -53,8 +52,9 @@ type (
|
||||||
Provider string `json:"provider,omitempty"`
|
Provider string `json:"provider,omitempty"`
|
||||||
|
|
||||||
// private fields
|
// private fields
|
||||||
LisURL *net.URL `json:"lurl,omitempty"`
|
LisURL *net.URL `json:"lurl,omitempty"`
|
||||||
ProxyURL *net.URL `json:"purl,omitempty"`
|
ProxyURL *net.URL `json:"purl,omitempty"`
|
||||||
|
|
||||||
Idlewatcher *idlewatcher.Config `json:"idlewatcher,omitempty"`
|
Idlewatcher *idlewatcher.Config `json:"idlewatcher,omitempty"`
|
||||||
|
|
||||||
impl route.Route
|
impl route.Route
|
||||||
|
@ -83,26 +83,24 @@ func (r *Route) Validate() (err gperr.Error) {
|
||||||
|
|
||||||
errs := gperr.NewBuilder("entry validation failed")
|
errs := gperr.NewBuilder("entry validation failed")
|
||||||
|
|
||||||
switch r.Scheme {
|
if r.Scheme == route.SchemeFileServer {
|
||||||
case route.SchemeFileServer:
|
|
||||||
r.impl, err = NewFileServer(r)
|
r.impl, err = NewFileServer(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs.Add(err)
|
errs.Add(err)
|
||||||
}
|
}
|
||||||
|
r.ProxyURL = gperr.Collect(errs, net.ParseURL, "file://"+r.Root)
|
||||||
|
r.Host = ""
|
||||||
|
r.Port.Proxy = 0
|
||||||
|
} else {
|
||||||
|
switch r.Scheme {
|
||||||
case route.SchemeHTTP, route.SchemeHTTPS:
|
case route.SchemeHTTP, route.SchemeHTTPS:
|
||||||
if r.Port.Listening != 0 {
|
if r.Port.Listening != 0 {
|
||||||
errs.Addf("unexpected listening port for %s scheme", r.Scheme)
|
errs.Addf("unexpected listening port for %s scheme", r.Scheme)
|
||||||
}
|
}
|
||||||
fallthrough
|
|
||||||
case route.SchemeTCP, route.SchemeUDP:
|
case route.SchemeTCP, route.SchemeUDP:
|
||||||
r.LisURL = gperr.Collect(errs, net.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening))
|
r.LisURL = gperr.Collect(errs, net.ParseURL, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening))
|
||||||
fallthrough
|
|
||||||
default:
|
|
||||||
if r.LoadBalance != nil && r.LoadBalance.Link == "" {
|
|
||||||
r.LoadBalance = nil
|
|
||||||
}
|
}
|
||||||
r.ProxyURL = gperr.Collect(errs, net.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
|
r.ProxyURL = gperr.Collect(errs, net.ParseURL, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy))
|
||||||
r.Idlewatcher = gperr.Collect(errs, idlewatcher.ValidateConfig, r.Container)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !r.UseHealthCheck() && (r.UseLoadBalance() || r.UseIdleWatcher()) {
|
if !r.UseHealthCheck() && (r.UseLoadBalance() || r.UseIdleWatcher()) {
|
||||||
|
@ -371,16 +369,8 @@ func (r *Route) Finalize() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if isDocker && cont.IdleTimeout != "" {
|
if r.LoadBalance != nil && r.LoadBalance.Link == "" {
|
||||||
if cont.WakeTimeout == "" {
|
r.LoadBalance = nil
|
||||||
cont.WakeTimeout = common.WakeTimeoutDefault
|
|
||||||
}
|
|
||||||
if cont.StopTimeout == "" {
|
|
||||||
cont.StopTimeout = common.StopTimeoutDefault
|
|
||||||
}
|
|
||||||
if cont.StopMethod == "" {
|
|
||||||
cont.StopMethod = common.StopMethodDefault
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -433,7 +423,7 @@ func (r *Route) FinalizeHomepageConfig() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func lowestPort(ports map[int]container.Port) (res int) {
|
func lowestPort(ports docker.PortMapping) (res int) {
|
||||||
cmp := (uint16)(65535)
|
cmp := (uint16)(65535)
|
||||||
for port, v := range ports {
|
for port, v := range ports {
|
||||||
if v.PrivatePort < cmp {
|
if v.PrivatePort < cmp {
|
||||||
|
|
Loading…
Add table
Reference in a new issue