Archived
Cleanups and tweaks
This commit is contained in:
1 parent
3662decb8b
commit
6384d1e5a3
5 files changed
+39
-41
No files matched your search
+2
-2
@@ -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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 truncated
|
||||
bs, _ = base64.StdEncoding.DecodeString("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 truncated
|
||||
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("H4sIAAAJbogA/+x9+3MbN9Lg7/krYH5JLFWJpOQ4/m4dSVuy5CRK/CpJ3lwuldsCZ0AS0XBmDGAkM4r2b7/uxrzfpGhZe/ulKhZJYBrdjUajH0DP/qOTt8cXv757yeZm4R1+sf9oOPxiPGbHQbhUcjY3bOt4mz3Z3XvKfuKXwYS9CNSMcd+FHr5RchKZQGm2pYVgZi7Y8ds3F2enL95fvD07Z1Ppie0RgjvyPEbgNFNCC3Ul3BF7rwULpvCY1EwHkXIEcwJXMPg6C66E8oXLJksYjL0+vRhqs/QEwvKkI3yNw3HDHGidCDYNIkBJ+oTDq9Pjl2/OX9Lwoy+GQ6AKiWMe92cHA+EPmD8b8jA8GOil78Dw/ox+cpCiwPOEOhicJy3HRnkD5nhc64MBdvICfjlAkIK7h18wtr8QhjNnzpUW5mAQmenwfw2yhrkx4VB8iOTVweB/D98fDY+DRciNnHgCwMKIwoenTl8eCHcmcs/5fCEOBldSXIeBMrmu19I18wNXXAEbhvRlBwiXRnJvqB3uiYO90W4FkCu0o2RoZODnYFW68cjMA1Xp4Un/EibOA45Bs3Eiw6SDkOZKTA8GcjEbT/kV/jQKgZmHX+BDRhpPHKaMZH+xmxuc6zcwx29gtK3t29v9se2VDmIBToLAaKN4OHa0HqffRgvpj+CXQYwLSoSeC2EGZQBTwH+sgBnXfNnvCRQ4JYFNTd33x3bGv9ifBO6SHnflVVluXl4B20hmDvfH0G5ZAYuKXQQhm3DFUB7xN59fpWLFr7DF/hka6Bh/dMWURx7MPoAX1E/OOM0hjh9jEANBLLj0hYrboFWHsDoKYwwnCtYu4AZTlrR4wSwYMK0cO5H4dWjERzN89pRmk80FrtyDwTdPBsxK32Bv778HY6AQR0iHC0tjIRA2l64r/OFHPTism/4wfTryco8nDMh9JPWR0kaTh8yXMHdROFPcFaf+NBj54jrHAuoIOsoEoBqWIfDQfklX9MT4yQD4Ef4fhkouuFrSZ71IZNxqCNA9l+l4W9uFcUoMn3nLcI5LgqWfhs5cXCn4G4WDhHlfi4UOv6sBAwLva48bkX0aXnEvgn+F0iADB4Obmzzl2EOb29vB4Xv7K4gcu/kq7v3VbXG2aKCx5UaOqWNPFlkcU+OqIHSDa7/IWR4z578G5X4gxbMZqjiXGx5/yUPpZlUwS3m0P+aFYTNRSYdbCD8qzwaQkmKYnz7hSnMujAGlpHEOV8LFzldpig4TcDmEi6xsRUi6uCh6ofJB4RbZhc08uGanJ13IpEyUV6D41GAVlPU8Msj4XkgH02knxhbcevwDk8JwZXrhAg9D93kHPmcW4qfkIJ8EUT+UYd9RZigWoVl2oH2EMFuQ3h9HXv1iz1ribQs/gGK0e1XDNmP74+b2vVTawC51vcMC31syMBOufSanzBeO0BrU6Xcs5im75spHeyDeCLN9FFX5I4A/lbNTH+2GVKsA4GxXKyDjDRfucO9Jfl/ItQMfhMfo32E8bFGBlfsir13qtT//JqeCC33IZBkkMsLeCOEKF8yDbw5T3jUPgMZDWVGFuSm8mKMVjDyIFG31bM41mLjCZ5pfoUUMxpcfGMYdI6/gCTCkMxtrEeE0xIiZIO1EdjFsjUXQo9z+W5j6ZvSnYIuV9tceO6zdSulPbNKwMPK8eE+/15Vc3vEqIuXBapvKj4OaySz+UPia+5LZfcXFIWaRB1YeyHJJ9AtCnsDDB89EGGgJDtYSnB4AsYWmoSemZjuDULsgnrWth+FMBWCAMOkiv+MRpNDtKyNeRTc3+MgxNmzhp9HpCdhxNIXwVXBjYaIrhn9fAdpVM6lx1RWtBSDG46FOjIiQK3JJ/quAdGKB4I+A3ZfSd8VHxIiMdwASKR2o5ywMpF+VXEAG1nnd6i5162HczV23JIuWWcCi29t2cNliyNnLyFN9LY0ztzw9N9xEGddrUKyajimI4fVcgMUY+Zc+2V/v7YeqTdgXkgZZDAVQfG4/3AES+PBWM5/Hn7pgVSCA/iur9sbxySNtHYSxrZsbhPlOKAdEjs9ETta/2q7Da0WMpVsrY3XonkLXe8G1/nfa14rLt6wX4xWd6JPCKiwsrWRBs2xlk+qnLjfSf87sg+zg4IDt3lbXap/dlDoaPvHSXdt+oX/RV3cxeuTG37VRksS4jlEm8fTr2lR9AzbNuzcvmKjOjStV/jlTHmA3DuumBKP3HvvLOR0ET7sN1IybyLkrndPAA8N4GITC76D3e+p5Z0JPpBIOcm1tehNTdAGOlvdbzL3fR9IH71vWS0pvdsRG6FDLWRc/XioV3Ikd9fh/HjGYecGky2v9AfpwL2f0bJD4GcH+XnpCs78Y9675Ur+JFhOhbm8rGlcawC8efIf9qwHYi6UhYBPpc5S2F5+Dr/Ng0cXWV4HzqbjqIegNMZVgPQieOl4QuUOMRngBL5t0ZbLegjf2dkoe2PqMbehNAbZ6ZeSDz2kZf8h2i3GZ4Bod0sxMTEIP1enLgNx59hBUzeTxFtISu6iVOrQDBoe7HfjsshdtFhIJy72LEQj0ZYfwvOYaXBJam59CeKp2N/KauHwGDtdb3wPb6Veh23nXCOhRCdKb4OFNQuQ7c+Fciq5lfDrzAyUYGNELqTFcru95QiwCOL6++5wUgD3EaekdusH07in67WC73Nk0tPAScOeg5vTnIF7PuRJD7pnOmDj0c9kv0szvQjoNp1HH0J6wvY4BCL/Xu0LQgG5U1WmsuIi9g4nUNQ4oNoQQuT+Dx2oVGvv6a9Z3r0xSvjV7ZbdiCfsYB/EA7HiOKOvWICTRXR8UqvdO23mUZI5ziQe0DWpDSbjNPsaQxONSLBaWSyo4Nua00aXdyY91qMwl+TKh74E4eKiO9LqcMoDaPYtNAZZ+YeaGBbRSOLon4xqi8Nx1iXW92OZFuisr5bp1/kcl99yHPftzlfS5klpSCGcxGJfC8PkgOqZWc+FzIrYYP6fTGXgIyceud4isxzHyVCpzQXEEfTydYVz8t+QUxNb27z2zUU1x8Tj2jcCHCLVn1LtnzHsd7/Pmxk/Od8Qkb5eC3+WAYn3SCYOJObLaw4jA1c4UQ22kcBNxwuYoYaOhsHk39CTuxs7gW6e10GgrwLi+cDA1qH97bALDvccYOJqE6NctBPDAub3Fb1sNfU998gIv8GveFdxusjkaLY4N8K7XHv0+/FR8CyLTn3FvI/MgOGc6d+6j1+y9kZ78k1LI6/NML8H5XYzgT5+Az6eh1uV6Pgm46hKS43fvN0q0E0ZxvqYUeoGvPphminvP925vv1qDG4lVHI8Eox/5fgB+sHj7M3t0wCLQa1PpN6Q8evJtAmbDPFBdIew4onsitYO29pKd48nf7qD2ao51AVvcKBk9pCMHj54M2hiS2Dc5k933gDkphq2Oc/24Je/kUc9xp9OeA9+zPujMU/3Dni9cf03EBxSb/dJ6yhp80lqPtKftnH23py8WAUZWwArReauwzrrIHamg/j3PUpCJRGcpMmOpyWwMzFwoNBv1xg9UWJQL1uRnPUmhhLmmQ9crmpYV4LXnKlqz9Lhk8xt0PNIIGX968juGF5xgEXoCm8uto3/Sdo7u9N7ubs/8/vsQD2qdZPYH24KH1z1lsBH891dAv3iawto3XfBhk6Pd7vnumscpqnHPFpoHh7QBUXvzOZVNnH6orJyO0w8P+3xDD3G6WzL8E3o4PW31snz2cHXKj6zs8XSElu+J6xv3jdbkeB8nqfzM6r7SJ83zSb8rz3fkugpM0bvwEHmAYHJb34MVsGCxALuiK7sB+8ZcBX5fl6pVvro3nLKTle0/n+WIAWCMEtGZl8Qrksdx5/5cqmyPCVtyoAZ1vKTEYxM7GmA/6gscE5EPU2I35+SsqQWPPQkr5h9djlBPPrUbQ3dhlFiKPkf5XnFtmBZibXnVhpsqlxDsOUAdkX31drr1eO9v/737eJsdsuFevcgJCje0S/R6Y+5jLrE+xtMKCJQPOF/i+WAJ/w1fvx66Lvvxx+eLxeDfIjHblKDc5+ul6CgPkuxpnyRLxxujKf9O+bjeFwR75uMQ3l0ycZX7LjZmMi7ebsGf6Byrrr/tJbDN3hEZecKfmbnN0X/ea191QYwyD98ERjoZB+9y9ysX7gF+YKgnxxYcecE9D/QK/Dq6kAuRahDUGs+1BsXxHBChXuzmZqpgL3G9pQ0V4UM0A8Xb1vUCvIHbXrmIS5MiyOSaZMvKR797pF2G9tufP8s9r8IKSC9Ipjf98ecXAaCz6FcAIFEG8VdAUrggOwSgHMbqqADQdKm+eI8+p73jLuTUxCobK1g8HwOJ2gkipcUorZox8oUZV9fGeRRizQo2Zt8HKlo03kftNbKGoWfSzKPJCKzmcTp27pMSMJcag65VQwSvxLMz2+FuiLSwwIFhZoFajt3AidD3iWs0VGMYueZPzhapdVTHlBdRyz31DQ1eIxS2wMtxft8pDt5+BZmOcghzHahLqx/xmBe4dslqst8oCmd7kV7B4DUedcIEjU3LoCIBRfsRKFzQPNi7GIz0PJZUeHycWs9273oMCjel4za5lVS4tBtTkN3DBeN3oTGuOxEMA1w7DBDGAD5Vt+EsVAFYZwt2DVxkS2CNPeUIqLPMeB+B4Bq1BHhfz4XnybhMRKzG98dEcsad+KYrXQNuYI1KuySMSI5r5ejP4JQpT5kp/WmQ8qE61SkbpGbZkKMkRlzu/45WJ7vmqdU2Go2aqLS1LdqIjJIeLTSmUDZBYjrgZihMaiE0EpjUXkjow/IKKd5p2jMmNoV2bKMkok5+M3Kyy+bwHIluI56nJ40YSvcDLDWPqxlgsBS6xFZQL4FOWiwNcV2L3BTRua1T2OyMnEqHlmppstjXC0zgf8dymaHsbNV2tlRze+Q1LCSG/6BZQn7bIvADmBLQTfQVk/K4g97cLJb20ly24WPRnOTGAjSmRo99ZLine truncated
|
||||
bs, _ = base64.StdEncoding.DecodeString("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 truncated
|
||||
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
assets["index.html"] = bs
|
||||
|
||||
+14
-11
@@ -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)
|
||||
}
|
||||
|
||||
+11
-19
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+12
-8
@@ -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;
|
||||
}
|
||||
|
||||
@@ -716,7 +716,6 @@
|
||||
<li><a href="https://github.com/golang/groupcache">groupcache/lru</a>, Copyright © 2013 Google Inc.</li>
|
||||
<li><a href="https://github.com/juju/ratelimit">juju/ratelimit</a>, Copyright © 2014 Canonical Ltd.</li>
|
||||
<li><a href="https://github.com/syndtr/goleveldb">syndtr/goleveldb</a>, Copyright © 2012, Suryandaru Triandana</li>
|
||||
<li><a href="https://github.com/BenLubar/Rnoadm/tree/master/maybetls">BenLubar/Rnoadm/maybetls</a>, Copyright © 2013 The Rnoadm Authors.</li>
|
||||
<li><a href="https://github.com/vitrun/qart">vitrun/qart</a>, Copyright © The Go Authors.</li>
|
||||
<li><a href="https://angularjs.org/">AngularJS</a>, Copyright © 2010-2014 Google, Inc.</li>
|
||||
<li><a href="http://getbootstrap.com/">Bootstrap</a>, Copyright © 2011-2014 Twitter, Inc.</li>
|
||||
|
||||
Reference in new issue
Block a user