|
@ -36,8 +36,13 @@ func (h *tcpHandler) relay(localConn, remoteConn net.Conn) { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Close
|
|
|
// Cleanup
|
|
|
defer closeOnce() |
|
|
defer func() { |
|
|
|
|
|
// Close
|
|
|
|
|
|
closeOnce() |
|
|
|
|
|
// Remove session
|
|
|
|
|
|
removeSession(localConn) |
|
|
|
|
|
}() |
|
|
|
|
|
|
|
|
// WaitGroup
|
|
|
// WaitGroup
|
|
|
var wg sync.WaitGroup |
|
|
var wg sync.WaitGroup |
|
@ -69,9 +74,6 @@ func (h *tcpHandler) relay(localConn, remoteConn net.Conn) { |
|
|
pool.BufPool.Put(buf[:cap(buf)]) |
|
|
pool.BufPool.Put(buf[:cap(buf)]) |
|
|
|
|
|
|
|
|
wg.Wait() // Wait for Up Link done
|
|
|
wg.Wait() // Wait for Up Link done
|
|
|
|
|
|
|
|
|
// Remove session
|
|
|
|
|
|
removeSession(localConn) |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func (h *tcpHandler) Handle(conn net.Conn, target *net.TCPAddr) error { |
|
|
func (h *tcpHandler) Handle(conn net.Conn, target *net.TCPAddr) error { |
|
|