mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2026-04-22 23:17:23 +08:00
24 lines
349 B
Go
24 lines
349 B
Go
package localproxy
|
|
|
|
import (
|
|
"io"
|
|
"net"
|
|
"sync"
|
|
)
|
|
|
|
func relayConns(left, right net.Conn) {
|
|
var wg sync.WaitGroup
|
|
copyHalf := func(dst, src net.Conn) {
|
|
defer wg.Done()
|
|
_, _ = io.Copy(dst, src)
|
|
if tcp, ok := dst.(*net.TCPConn); ok {
|
|
_ = tcp.CloseWrite()
|
|
}
|
|
}
|
|
|
|
wg.Add(2)
|
|
go copyHalf(left, right)
|
|
go copyHalf(right, left)
|
|
wg.Wait()
|
|
}
|