mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-09-30 07:22:00 +00:00
force downgrade to http/1.1 because safari
This commit is contained in:
parent
4532110141
commit
ae51e9d1b9
1 changed files with 23 additions and 37 deletions
|
@ -15,7 +15,6 @@ import (
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/metadata"
|
"google.golang.org/grpc/metadata"
|
||||||
|
|
||||||
"github.com/lucas-clemente/quic-go/h2quic"
|
|
||||||
"golang.org/x/crypto/acme/autocert"
|
"golang.org/x/crypto/acme/autocert"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
|
|
||||||
|
@ -540,11 +539,16 @@ func server(c *cli.Context) error {
|
||||||
return http.ListenAndServe(":http", handler)
|
return http.ListenAndServe(":http", handler)
|
||||||
})
|
})
|
||||||
g.Go(func() error {
|
g.Go(func() error {
|
||||||
return http.ListenAndServeTLS(
|
serve := &http.Server{
|
||||||
":https",
|
Addr: ":https",
|
||||||
|
Handler: handler,
|
||||||
|
TLSConfig: &tls.Config{
|
||||||
|
NextProtos: []string{"http/1.1"}, // disable h2 because Safari :(
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return serve.ListenAndServeTLS(
|
||||||
c.String("server-cert"),
|
c.String("server-cert"),
|
||||||
c.String("server-key"),
|
c.String("server-key"),
|
||||||
handler,
|
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
return g.Wait()
|
return g.Wait()
|
||||||
|
@ -569,7 +573,7 @@ func server(c *cli.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if c.Bool("quic") {
|
|
||||||
dir := cacheDir()
|
dir := cacheDir()
|
||||||
os.MkdirAll(dir, 0700)
|
os.MkdirAll(dir, 0700)
|
||||||
|
|
||||||
|
@ -578,33 +582,15 @@ func server(c *cli.Context) error {
|
||||||
HostPolicy: autocert.HostWhitelist(address.Host),
|
HostPolicy: autocert.HostWhitelist(address.Host),
|
||||||
Cache: autocert.DirCache(dir),
|
Cache: autocert.DirCache(dir),
|
||||||
}
|
}
|
||||||
httpServer := &http.Server{
|
serve := &http.Server{
|
||||||
Addr: ":443",
|
Addr: ":https",
|
||||||
Handler: handler,
|
Handler: handler,
|
||||||
TLSConfig: &tls.Config{
|
TLSConfig: &tls.Config{
|
||||||
GetCertificate: manager.GetCertificate,
|
GetCertificate: manager.GetCertificate,
|
||||||
NextProtos: []string{"h2", "http/1.1"},
|
NextProtos: []string{"http/1.1"}, // disable h2 because Safari :(
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
quicServer := &h2quic.Server{
|
return serve.ListenAndServeTLS("", "")
|
||||||
Server: httpServer,
|
|
||||||
}
|
|
||||||
|
|
||||||
quicServer.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
quicServer.SetQuicHeaders(w.Header())
|
|
||||||
handler.ServeHTTP(w, r)
|
|
||||||
})
|
|
||||||
|
|
||||||
conn, err := net.ListenPacket("udp", ":443")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
g.Go(func() error {
|
|
||||||
return quicServer.Serve(conn)
|
|
||||||
})
|
|
||||||
return http.Serve(manager.Listener(), quicServer.Handler)
|
|
||||||
}
|
|
||||||
return http.Serve(autocert.NewListener(address.Host), handler)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return g.Wait()
|
return g.Wait()
|
||||||
|
|
Loading…
Reference in a new issue