aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules/caddyhttp/server.go
diff options
context:
space:
mode:
authorMatt Holt <[email protected]>2024-12-20 10:55:02 -0700
committerGitHub <[email protected]>2024-12-20 10:55:02 -0700
commit86da4e8f56f3518bc053dd4f68a78c538a4aab5f (patch)
treebaaf259e90a81d56bf8a2999809d396a02fe1ea9 /modules/caddyhttp/server.go
parent130c868e95dfd1a8b1d39fd217bc6378f6b72ec0 (diff)
parented1c594cdbddf89829eaf1174f414028577b432d (diff)
downloadcaddy-transfer-encoding-match.tar.gz
caddy-transfer-encoding-match.zip
Merge branch 'master' into transfer-encoding-matchtransfer-encoding-match
Diffstat (limited to 'modules/caddyhttp/server.go')
-rw-r--r--modules/caddyhttp/server.go26
1 files changed, 3 insertions, 23 deletions
diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go
index 5aa7e0f63..12c032dee 100644
--- a/modules/caddyhttp/server.go
+++ b/modules/caddyhttp/server.go
@@ -61,6 +61,7 @@ type Server struct {
ReadTimeout caddy.Duration `json:"read_timeout,omitempty"`
// ReadHeaderTimeout is like ReadTimeout but for request headers.
+ // Default is 1 minute.
ReadHeaderTimeout caddy.Duration `json:"read_header_timeout,omitempty"`
// WriteTimeout is how long to allow a write to a client. Note
@@ -226,6 +227,7 @@ type Server struct {
// If set, metrics observations will be enabled.
// This setting is EXPERIMENTAL and subject to change.
+ // DEPRECATED: Use the app-level `metrics` field.
Metrics *Metrics `json:"metrics,omitempty"`
name string
@@ -614,22 +616,7 @@ func (s *Server) serveHTTP3(addr caddy.NetworkAddress, tlsCfg *tls.Config) error
// create HTTP/3 server if not done already
if s.h3server == nil {
s.h3server = &http3.Server{
- // Currently when closing a http3.Server, only listeners are closed. But caddy reuses these listeners
- // if possible, requests are still read and handled by the old handler. Close these connections manually.
- // see issue: https://github.com/caddyserver/caddy/issues/6195
- // Will interrupt ongoing requests.
- // TODO: remove the handler wrap after http3.Server.CloseGracefully is implemented, see App.Stop
- Handler: http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- select {
- case <-s.ctx.Done():
- if quicConn, ok := request.Context().Value(quicConnCtxKey).(quic.Connection); ok {
- //nolint:errcheck
- quicConn.CloseWithError(quic.ApplicationErrorCode(http3.ErrCodeRequestRejected), "")
- }
- default:
- s.ServeHTTP(writer, request)
- }
- }),
+ Handler: s,
TLSConfig: tlsCfg,
MaxHeaderBytes: s.MaxHeaderBytes,
QUICConfig: &quic.Config{
@@ -637,9 +624,6 @@ func (s *Server) serveHTTP3(addr caddy.NetworkAddress, tlsCfg *tls.Config) error
Tracer: qlog.DefaultConnectionTracer,
},
IdleTimeout: time.Duration(s.IdleTimeout),
- ConnContext: func(ctx context.Context, c quic.Connection) context.Context {
- return context.WithValue(ctx, quicConnCtxKey, c)
- },
}
}
@@ -1099,10 +1083,6 @@ const (
// For referencing underlying net.Conn
ConnCtxKey caddy.CtxKey = "conn"
- // For referencing underlying quic.Connection
- // TODO: export if needed later
- quicConnCtxKey caddy.CtxKey = "quic_conn"
-
// For tracking whether the client is a trusted proxy
TrustedProxyVarKey string = "trusted_proxy"