aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-04-04 01:44:47 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-04-04 01:44:47 +0200
commit7f73b75d3ff5b3af9a9719adfaa777358b191c03 (patch)
treeb2b703aaa87a625ce215bfbb0204a84c947ec476 /server.go
parent1c32da0018346b076eaa3fcfc45dcd07f4b9b227 (diff)
Remove parsed parts from Route entry
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