MCPcopy
hub / github.com/windtf/wireproxy / tcpServerForward

Function tcpServerForward

routine.go:293–311  ·  view source on GitHub ↗

tcpServerForward starts a new connection locally and forward traffic from `conn`

(vt *VirtualTun, raddr *addressPort, conn net.Conn)

Source from the content-addressed store, hash-verified

291
292// tcpServerForward starts a new connection locally and forward traffic from `conn`
293func tcpServerForward(vt *VirtualTun, raddr *addressPort, conn net.Conn) {
294 target, err := vt.resolveToAddrPort(raddr)
295 if err != nil {
296 errorLogger.Printf("TCP Server Tunnel to %s: %s\n", target, err.Error())
297 return
298 }
299
300 tcpAddr := net.TCPAddrFromAddrPort(*target)
301
302 sconn, err := net.DialTCP("tcp", nil, tcpAddr)
303 if err != nil {
304 errorLogger.Printf("TCP Server Tunnel to %s: %s\n", target, err.Error())
305 return
306 }
307
308 go connForward(sconn, conn)
309 go connForward(conn, sconn)
310
311}
312
313// SpawnRoutine spawns a TCP server on wireguard which acts as a proxy to the specified target
314func (conf *TCPServerTunnelConfig) SpawnRoutine(vt *VirtualTun) {

Callers 1

SpawnRoutineMethod · 0.85

Calls 2

connForwardFunction · 0.85
resolveToAddrPortMethod · 0.80

Tested by

no test coverage detected