diff options
Diffstat (limited to 'modules/caddyhttp/server.go')
-rw-r--r-- | modules/caddyhttp/server.go | 10 |
1 files changed, 10 insertions, 0 deletions
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 } |