tcpServerForward starts a new connection locally and forward traffic from `conn`
(vt *VirtualTun, raddr *addressPort, conn net.Conn)
| 291 | |
| 292 | // tcpServerForward starts a new connection locally and forward traffic from `conn` |
| 293 | func 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 |
| 314 | func (conf *TCPServerTunnelConfig) SpawnRoutine(vt *VirtualTun) { |
no test coverage detected