mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-26 00:02:45 -04:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									e2991eb019
								
							
						
					
					
						commit
						ab720fb768
					
				| @ -436,7 +436,7 @@ func ListenPacket(network, addr string) (net.PacketConn, error) { | |||||||
| // | // | ||||||
| // TODO: See if we can find a more elegant solution closer to the new NetworkAddress.Listen API. | // TODO: See if we can find a more elegant solution closer to the new NetworkAddress.Listen API. | ||||||
| func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) (quic.EarlyListener, error) { | func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) (quic.EarlyListener, error) { | ||||||
| 	lnKey := listenerKey(ln.LocalAddr().Network(), ln.LocalAddr().String()) | 	lnKey := listenerKey("quic+"+ln.LocalAddr().Network(), ln.LocalAddr().String()) | ||||||
| 
 | 
 | ||||||
| 	sharedEarlyListener, _, err := listenerPool.LoadOrNew(lnKey, func() (Destructor, error) { | 	sharedEarlyListener, _, err := listenerPool.LoadOrNew(lnKey, func() (Destructor, error) { | ||||||
| 		earlyLn, err := quic.ListenEarly(ln, http3.ConfigureTLSConfig(tlsConf), &quic.Config{ | 		earlyLn, err := quic.ListenEarly(ln, http3.ConfigureTLSConfig(tlsConf), &quic.Config{ | ||||||
| @ -451,7 +451,6 @@ func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) ( | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 |  | ||||||
| 		return &sharedQuicListener{EarlyListener: earlyLn, key: lnKey}, nil | 		return &sharedQuicListener{EarlyListener: earlyLn, key: lnKey}, nil | ||||||
| 	}) | 	}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user