aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server.go')
-rw-r--r--server.go34
1 files changed, 15 insertions, 19 deletions
diff --git a/server.go b/server.go
index 88f712d..694751c 100644
--- a/server.go
+++ b/server.go
@@ -50,22 +50,17 @@ func (s *Server) UpdateMux() error {
wwwMux := http.NewServeMux()
tlsMux := http.NewServeMux()
for host, r := range s.Routes {
- var err error
- if r.serverName == nil {
- r.serverName, err = url.Parse(r.Host)
- if err != nil {
- return err
- }
- s.Routes[host] = r
+ serverName, err := url.Parse(r.Host)
+ if err != nil {
+ return err
}
- if r.upstream == nil {
- r.upstream, err = url.Parse(r.Upstream)
- if err != nil {
- return err
- }
- s.Routes[host] = r
+
+ upstream, err := url.Parse(r.Upstream)
+ if err != nil {
+ return err
}
- if r.certificate == nil && r.serverName.Scheme == "https" {
+
+ if r.certificate == nil && serverName.Scheme == "https" {
cert, err := tls.X509KeyPair(r.Cert, r.Key)
if err != nil {
return err
@@ -73,17 +68,18 @@ func (s *Server) UpdateMux() error {
r.certificate = &cert
s.Routes[host] = r
}
- switch r.serverName.Scheme {
+
+ switch serverName.Scheme {
case "http", "":
- wwwMux.Handle(host, NewReverseProxy(r.upstream))
+ wwwMux.Handle(host, NewReverseProxy(upstream))
case "https":
wwwMux.Handle(host, NewRedirect("https://"+host))
- tlsMux.Handle(host, NewReverseProxy(r.upstream))
+ tlsMux.Handle(host, NewReverseProxy(upstream))
case "ws":
- wwwMux.Handle(host, NewWebSocketProxy(r.upstream))
+ wwwMux.Handle(host, NewWebSocketProxy(upstream))
case "wss":
wwwMux.Handle(host, NewRedirect("wss://"+host))
- tlsMux.Handle(host, NewWebSocketProxy(r.upstream))
+ tlsMux.Handle(host, NewWebSocketProxy(upstream))
}
}
s.wwwServer.Handler = wwwMux