aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorWeidiDeng <[email protected]>2023-10-16 23:28:15 +0800
committerGitHub <[email protected]>2023-10-16 09:28:15 -0600
commit7c82e265da8f90c1a1fee52c57af94587276ac56 (patch)
tree948b6067d7b909367048629f7a8bfa2ba9a7e2ed /modules
parent0900844c813b8d02023c514085d84e5a52df49d7 (diff)
downloadcaddy-7c82e265da8f90c1a1fee52c57af94587276ac56.tar.gz
caddy-7c82e265da8f90c1a1fee52c57af94587276ac56.zip
core: quic listener will manage the underlying socket by itself (#5749)
* core: quic listener will manage the underlying socket by itself. * format code * rename sharedQUICTLSConfig to sharedQUICState, and it will now manage the number of active requests * add comment * strict unwrap type * fix unwrap * remove comment
Diffstat (limited to 'modules')
-rw-r--r--modules/caddyhttp/app.go11
-rw-r--r--modules/caddyhttp/server.go11
2 files changed, 1 insertions, 21 deletions
diff --git a/modules/caddyhttp/app.go b/modules/caddyhttp/app.go
index 457a5f4d3..69cd73b96 100644
--- a/modules/caddyhttp/app.go
+++ b/modules/caddyhttp/app.go
@@ -617,17 +617,6 @@ func (app *App) Stop() error {
zap.Error(err),
zap.Strings("addresses", server.Listen))
}
-
- // TODO: we have to manually close our listeners because quic-go won't
- // close listeners it didn't create along with the server itself...
- // see https://github.com/quic-go/quic-go/issues/3560
- for _, el := range server.h3listeners {
- if err := el.Close(); err != nil {
- app.logger.Error("HTTP/3 listener close",
- zap.Error(err),
- zap.String("address", el.LocalAddr().String()))
- }
- }
}
stopH2Listener := func(server *Server) {
defer finishedShutdown.Done()
diff --git a/modules/caddyhttp/server.go b/modules/caddyhttp/server.go
index cf1760947..d060738f1 100644
--- a/modules/caddyhttp/server.go
+++ b/modules/caddyhttp/server.go
@@ -228,7 +228,6 @@ type Server struct {
server *http.Server
h3server *http3.Server
- h3listeners []net.PacketConn // TODO: we have to hold these because quic-go won't close listeners it didn't create
h2listeners []*http2Listener
addresses []caddy.NetworkAddress
@@ -555,13 +554,7 @@ func (s *Server) findLastRouteWithHostMatcher() int {
// the listener, with Server s as the handler.
func (s *Server) serveHTTP3(addr caddy.NetworkAddress, tlsCfg *tls.Config) error {
addr.Network = getHTTP3Network(addr.Network)
- lnAny, err := addr.Listen(s.ctx, 0, net.ListenConfig{})
- if err != nil {
- return err
- }
- ln := lnAny.(net.PacketConn)
-
- h3ln, err := caddy.ListenQUIC(ln, tlsCfg, &s.activeRequests)
+ h3ln, err := addr.ListenQUIC(s.ctx, 0, net.ListenConfig{}, tlsCfg, &s.activeRequests)
if err != nil {
return fmt.Errorf("starting HTTP/3 QUIC listener: %v", err)
}
@@ -579,8 +572,6 @@ func (s *Server) serveHTTP3(addr caddy.NetworkAddress, tlsCfg *tls.Config) error
}
}
- s.h3listeners = append(s.h3listeners, ln)
-
//nolint:errcheck
go s.h3server.ServeListener(h3ln)