diff --git a/auto/gui.files.go b/auto/gui.files.go index 53c3f1d76..22d5261bd 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -27,7 +27,7 @@ func Assets() map[string][]byte { bs, _ = ioutil.ReadAll(gr) assets["angular/angular.min.js"] = bs - bs, _ = base64.StdEncoding.DecodeString("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") + bs, _ = base64.StdEncoding.DecodeString("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") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) assets["app.js"] = bs @@ -92,7 +92,7 @@ func Assets() map[string][]byte { bs, _ = ioutil.ReadAll(gr) assets["img/logo-text-64.png"] = bs - bs, _ = base64.StdEncoding.DecodeString("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") + bs, _ = base64.StdEncoding.DecodeString("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") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) assets["index.html"] = bs diff --git a/cmd/syncthing/gui.go b/cmd/syncthing/gui.go index cbda54dbf..15f3b77d9 100644 --- a/cmd/syncthing/gui.go +++ b/cmd/syncthing/gui.go @@ -56,7 +56,6 @@ func init() { } func startGUI(cfg config.GUIConfiguration, assetDir string, m *model.Model) error { - var listener net.Listener var err error cert, err := loadCert(confDir, "https-") @@ -74,10 +73,11 @@ func startGUI(cfg config.GUIConfiguration, assetDir string, m *model.Model) erro ServerName: "syncthing", } - listener, err = NewDowngradingListener(cfg.Address, tlsCfg) + rawListener, err := net.Listen("tcp", cfg.Address) if err != nil { return err } + listener := &DowngradingListener{rawListener, tlsCfg} // The GET handlers getRestMux := http.NewServeMux() @@ -139,8 +139,10 @@ func startGUI(cfg config.GUIConfiguration, assetDir string, m *model.Model) erro handler = basicAuthAndSessionMiddleware(cfg, handler) } - // Add our redirection middleware - handler = redirectionMiddleware(handler, cfg.Address, cfg.UseTLS) + // Redirect to HTTPS if we are supposed to + if cfg.UseTLS { + handler = redirectToHTTPSMiddleware(handler) + } go http.Serve(listener, handler) return nil @@ -159,16 +161,17 @@ func getPostHandler(get, post http.Handler) http.Handler { }) } -func redirectionMiddleware(h http.Handler, host string, usingTLS bool) http.Handler { +func redirectToHTTPSMiddleware(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.TLS == nil && usingTLS { - r.URL.Host = host + // Add a generous access-control-allow-origin header since we may be + // redirecting REST requests over protocols + w.Header().Add("Access-Control-Allow-Origin", "*") + + if r.TLS == nil { + // Redirect HTTP requests to HTTPS + r.URL.Host = r.Host r.URL.Scheme = "https" http.Redirect(w, r, r.URL.String(), http.StatusFound) - } else if r.TLS != nil && !usingTLS { - r.URL.Host = host - r.URL.Scheme = "http" - http.Redirect(w, r, r.URL.String(), http.StatusFound) } else { h.ServeHTTP(w, r) } diff --git a/cmd/syncthing/tls.go b/cmd/syncthing/tls.go index fdf1204f4..7a4150669 100644 --- a/cmd/syncthing/tls.go +++ b/cmd/syncthing/tls.go @@ -5,7 +5,7 @@ package main import ( - "bytes" + "bufio" "crypto/rand" "crypto/rsa" "crypto/sha256" @@ -87,34 +87,26 @@ type WrappedConnection struct { net.Conn } -func NewDowngradingListener(address string, config *tls.Config) (net.Listener, error) { - listener, err := net.Listen("tcp", address) - if err != nil { - return nil, err - } - return &DowngradingListener{listener, config}, nil -} - -func (listener *DowngradingListener) Accept() (net.Conn, error) { - connection, err := listener.Listener.Accept() - +func (l *DowngradingListener) Accept() (net.Conn, error) { + conn, err := l.Listener.Accept() if err != nil { return nil, err } - var peek [1]byte - _, err = io.ReadFull(connection, peek[:]) + br := bufio.NewReader(conn) + bs, err := br.Peek(1) if err != nil { + conn.Close() return nil, err } - jointReader := io.MultiReader(bytes.NewReader(peek[:]), connection) - wrapper := &WrappedConnection{jointReader, connection} + wrapper := &WrappedConnection{br, conn} - // TLS handshake starts with ASCII SYN - if peek[0] == 22 { - return tls.Server(wrapper, listener.TLSConfig), nil + // 0x16 is the first byte of a TLS handshake + if bs[0] == 0x16 { + return tls.Server(wrapper, l.TLSConfig), nil } + return wrapper, nil } diff --git a/gui/app.js b/gui/app.js index f49d38396..70e79668f 100644 --- a/gui/app.js +++ b/gui/app.js @@ -153,13 +153,17 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca return; } - console.log('UIOnline'); - $scope.init(); - online = true; - restarting = false; - $('#networkError').modal('hide'); - $('#restarting').modal('hide'); - $('#shutdown').modal('hide'); + if (restarting){ + document.location.reload(true); + } else { + console.log('UIOnline'); + $scope.init(); + online = true; + restarting = false; + $('#networkError').modal('hide'); + $('#restarting').modal('hide'); + $('#shutdown').modal('hide'); + } }); $scope.$on('UIOffline', function (event, arg) { @@ -581,7 +585,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca setTimeout(function(){ window.location.protocol = protocol; - }, 1000); + }, 2500); $scope.protocolChanged = false; } diff --git a/gui/index.html b/gui/index.html index a063818b1..ac4009126 100644 --- a/gui/index.html +++ b/gui/index.html @@ -716,7 +716,6 @@