From 5e735c2632fb440c4ffce26c8584452a0936266a Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Mon, 24 Jul 2017 21:46:00 -0400 Subject: [PATCH] improve experimental quic setup --- cmd/drone-server/server.go | 27 +++++++++++++++------------ server/ui.go | 1 + 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index 45375d630..a48fd6b97 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -545,27 +545,30 @@ func server(c *cli.Context) error { Cache: autocert.DirCache(dir), } httpServer := &http.Server{ - Addr: ":https", - TLSConfig: &tls.Config{GetCertificate: manager.GetCertificate}, - Handler: handler, + Addr: ":443", + Handler: handler, + TLSConfig: &tls.Config{ + GetCertificate: manager.GetCertificate, + NextProtos: []string{"h2", "http/1.1"}, + }, + } + quicServer := &h2quic.Server{ + Server: httpServer, } - quicServer := &h2quic.Server{Server: httpServer} - quicServer.TLSConfig = httpServer.TLSConfig - httpServer.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + quicServer.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { quicServer.SetQuicHeaders(w.Header()) handler.ServeHTTP(w, r) }) - addr, err := net.ResolveUDPAddr("udp", ":443") + conn, err := net.ListenPacket("udp", ":443") if err != nil { return err } - conn, err := net.ListenUDP("udp", addr) - if err != nil { - return err - } - return quicServer.Serve(conn) + g.Go(func() error { + return quicServer.Serve(conn) + }) + return http.Serve(manager.Listener(), quicServer.Handler) } return http.Serve(autocert.NewListener(address.Host), handler) }) diff --git a/server/ui.go b/server/ui.go index fcac849f6..c5a5704e2 100644 --- a/server/ui.go +++ b/server/ui.go @@ -59,6 +59,7 @@ func (w *website) Page(rw http.ResponseWriter, r *http.Request, u *model.User) { "csrf": csrf, } + rw.Header().Set("Content-Type", "text/html; charset=UTF-8") template.T.ExecuteTemplate(rw, "index_polymer.html", params) } }