Compare commits

...

1 Commits

Author SHA1 Message Date
Brad Fitzpatrick
5d4a361b4c wgengine/netstack: close forwarded TCP connections when incoming TCP dies
Updates #4522

Change-Id: I31a430da422b1e5fab834a2a670cddf448889ee6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-04-26 09:00:02 -07:00

View File

@@ -734,11 +734,15 @@ func (ns *Impl) forwardTCP(client *gonet.TCPConn, clientRemoteIP netaddr.IP, wq
_, err := io.Copy(client, server)
connClosed <- err
}()
err = <-connClosed
if err != nil {
ns.logf("proxy connection closed with error: %v", err)
select {
case err := <-connClosed:
if err != nil {
ns.logf("proxy connection closed with error: %v", err)
}
ns.logf("[v2] netstack: forwarder connection to %s closed", dialAddrStr)
case <-ctx.Done():
ns.logf("[v2] netstack: context done, closing TCP forward conn to %s", dialAddrStr)
}
ns.logf("[v2] netstack: forwarder connection to %s closed", dialAddrStr)
}
func (ns *Impl) acceptUDP(r *udp.ForwarderRequest) {