Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 13, 10:30 UTC
core: Fix ListenQUIC listener key conflict
Reported on commit e3e8aabbcf65d37516bb97f9dc0f77df52f8cf55 Abused this change in some bash for loops to rapidly reload config while making requests and didn't observe any memory or resource leaks.
Matthew Holt committed
Sep 29, 2022 at 10:32 UTC
ab720fb768a2602f940cb7296c34021b5bb6c7e6
1 file changed
+1
-2
listeners.go
+1
-2
@@ -436,7 +436,7 @@ func ListenPacket(network, addr string) (net.PacketConn, error) {
436
//
437
// TODO: See if we can find a more elegant solution closer to the new NetworkAddress.Listen API.
438
func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) (quic.EarlyListener, error) {
439
- lnKey := listenerKey(ln.LocalAddr().Network(), ln.LocalAddr().String())
439
+ lnKey := listenerKey("quic+"+ln.LocalAddr().Network(), ln.LocalAddr().String())
440
441
sharedEarlyListener, _, err := listenerPool.LoadOrNew(lnKey, func() (Destructor, error) {
442
earlyLn, err := quic.ListenEarly(ln, http3.ConfigureTLSConfig(tlsConf), &quic.Config{
@@ -451,7 +451,6 @@ func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) (
451
if err != nil {
452
return nil, err
453
}
454
-
454
return &sharedQuicListener{EarlyListener: earlyLn, key: lnKey}, nil
455
})
456
if err != nil {