From fe389fcbd7c3b8c64167d317b31adf7b98147fa8 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Wed, 11 Sep 2019 18:49:21 -0600 Subject: http: Set Alt-Svc header if experimental HTTP3 server is enabled --- modules/caddyhttp/server.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'modules/caddyhttp/server.go') diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go index e16a600..b4952e1 100644 --- a/modules/caddyhttp/server.go +++ b/modules/caddyhttp/server.go @@ -26,6 +26,7 @@ import ( "github.com/caddyserver/caddy/v2" "github.com/caddyserver/caddy/v2/modules/caddytls" + "github.com/lucas-clemente/quic-go/http3" ) // Server is an HTTP server. @@ -47,12 +48,21 @@ type Server struct { ExperimentalHTTP3 bool `json:"experimental_http3,omitempty"` tlsApp *caddytls.TLS + + h3server *http3.Server } // ServeHTTP is the entry point for all HTTP requests. func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Header().Set("Server", "Caddy") + if s.h3server != nil { + err := s.h3server.SetQuicHeaders(w.Header()) + if err != nil { + log.Printf("[ERROR] Setting HTTP/3 Alt-Svc header: %v", err) + } + } + if s.tlsApp.HandleHTTPChallenge(w, r) { return } -- cgit v1.2.3