mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-09 04:52:35 +02:00
removed unnecessary mutex and locking, small refactor
This commit is contained in:
parent
c07f2ed722
commit
ae69019265
2 changed files with 9 additions and 31 deletions
|
@ -5,7 +5,6 @@ import (
|
|||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/yusing/go-proxy/internal/common"
|
||||
|
@ -45,7 +44,6 @@ var (
|
|||
findMuxFunc = findMuxAnyDomain
|
||||
|
||||
httpRoutes = F.NewMapOf[string, *HTTPRoute]()
|
||||
httpRoutesMu sync.Mutex
|
||||
// globalMux = http.NewServeMux() // TODO: support regex subdomain matching.
|
||||
)
|
||||
|
||||
|
@ -63,11 +61,10 @@ func SetFindMuxDomains(domains []string) {
|
|||
|
||||
func NewHTTPRoute(entry *entry.ReverseProxyEntry) (impl, E.Error) {
|
||||
var trans *http.Transport
|
||||
|
||||
if entry.NoTLSVerify {
|
||||
trans = gphttp.DefaultTransportNoTLS.Clone()
|
||||
trans = gphttp.DefaultTransportNoTLS
|
||||
} else {
|
||||
trans = gphttp.DefaultTransport.Clone()
|
||||
trans = gphttp.DefaultTransport
|
||||
}
|
||||
|
||||
service := string(entry.Alias)
|
||||
|
@ -102,16 +99,7 @@ func (r *HTTPRoute) Start(providerSubtask task.Task) E.Error {
|
|||
return nil
|
||||
}
|
||||
|
||||
httpRoutesMu.Lock()
|
||||
defer httpRoutesMu.Unlock()
|
||||
|
||||
if !entry.UseHealthCheck(r) && (entry.UseLoadBalance(r) || entry.UseIdleWatcher(r)) {
|
||||
r.l.Error().Msg("healthCheck.disabled cannot be false when loadbalancer or idlewatcher is enabled")
|
||||
if r.HealthCheck == nil {
|
||||
r.HealthCheck = new(health.HealthCheckConfig)
|
||||
}
|
||||
r.HealthCheck.Disable = false
|
||||
}
|
||||
r.task = providerSubtask
|
||||
|
||||
switch {
|
||||
case entry.UseIdleWatcher(r):
|
||||
|
@ -123,12 +111,13 @@ func (r *HTTPRoute) Start(providerSubtask task.Task) E.Error {
|
|||
r.handler = waker
|
||||
r.HealthMon = waker
|
||||
case entry.UseHealthCheck(r):
|
||||
r.HealthMon = health.NewHTTPHealthMonitor(r.TargetURL(), r.HealthCheck, r.rp.Transport)
|
||||
r.HealthMon = health.NewHTTPHealthMonitor(r.rp.TargetURL, r.HealthCheck)
|
||||
}
|
||||
r.task = providerSubtask
|
||||
|
||||
if r.handler == nil {
|
||||
switch {
|
||||
case len(r.PathPatterns) == 0:
|
||||
r.handler = r.rp
|
||||
case len(r.PathPatterns) == 1 && r.PathPatterns[0] == "/":
|
||||
r.handler = r.rp
|
||||
default:
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/yusing/go-proxy/internal/docker/idlewatcher"
|
||||
|
@ -28,10 +27,7 @@ type StreamRoute struct {
|
|||
l zerolog.Logger
|
||||
}
|
||||
|
||||
var (
|
||||
streamRoutes = F.NewMapOf[string, *StreamRoute]()
|
||||
streamRoutesMu sync.Mutex
|
||||
)
|
||||
var streamRoutes = F.NewMapOf[string, *StreamRoute]()
|
||||
|
||||
func GetStreamProxies() F.Map[string, *StreamRoute] {
|
||||
return streamRoutes
|
||||
|
@ -62,14 +58,6 @@ func (r *StreamRoute) Start(providerSubtask task.Task) E.Error {
|
|||
return nil
|
||||
}
|
||||
|
||||
streamRoutesMu.Lock()
|
||||
defer streamRoutesMu.Unlock()
|
||||
|
||||
if r.HealthCheck.Disable && (entry.UseLoadBalance(r) || entry.UseIdleWatcher(r)) {
|
||||
r.l.Error().Msg("healthCheck.disabled cannot be false when loadbalancer or idlewatcher is enabled")
|
||||
r.HealthCheck.Disable = false
|
||||
}
|
||||
|
||||
r.task = providerSubtask
|
||||
r.stream = NewStream(r)
|
||||
|
||||
|
@ -111,6 +99,7 @@ func (r *StreamRoute) Start(providerSubtask task.Task) E.Error {
|
|||
}
|
||||
|
||||
go r.acceptConnections()
|
||||
|
||||
streamRoutes.Store(string(r.Alias), r)
|
||||
r.task.OnFinished("remove from route table", func() {
|
||||
streamRoutes.Delete(string(r.Alias))
|
||||
|
|
Loading…
Add table
Reference in a new issue