Bläddra i källkod

Fix deadlock on failed dial in UDP userland proxy

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
Alexandr Morozov 11 år sedan
förälder
incheckning
6cbb8e070d
1 ändrade filer med 1 tillägg och 0 borttagningar
  1. 1 0
      pkg/proxy/udp_proxy.go

+ 1 - 0
pkg/proxy/udp_proxy.go

@@ -116,6 +116,7 @@ func (proxy *UDPProxy) Run() {
 			proxyConn, err = net.DialUDP("udp", nil, proxy.backendAddr)
 			proxyConn, err = net.DialUDP("udp", nil, proxy.backendAddr)
 			if err != nil {
 			if err != nil {
 				log.Printf("Can't proxy a datagram to udp/%s: %s\n", proxy.backendAddr, err)
 				log.Printf("Can't proxy a datagram to udp/%s: %s\n", proxy.backendAddr, err)
+				proxy.connTrackLock.Unlock()
 				continue
 				continue
 			}
 			}
 			proxy.connTrackTable[*fromKey] = proxyConn
 			proxy.connTrackTable[*fromKey] = proxyConn