diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2022-04-26 09:00:02 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2022-04-26 09:00:02 -0700 |
| commit | 5d4a361b4cdf70e724bed93028fcaa0448e95b2e (patch) | |
| tree | 25543d895aab63ab80d0c8c1b8109050ee87be99 | |
| parent | c6c752cf6400f2fc0561ddc44be0a22787f3e410 (diff) | |
| download | tailscale-5d4a361b4cdf70e724bed93028fcaa0448e95b2e.tar.xz tailscale-5d4a361b4cdf70e724bed93028fcaa0448e95b2e.zip | |
wgengine/netstack: close forwarded TCP connections when incoming TCP diesbradfitz/netstack_fwd_close
Updates #4522
Change-Id: I31a430da422b1e5fab834a2a670cddf448889ee6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
| -rw-r--r-- | wgengine/netstack/netstack.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/wgengine/netstack/netstack.go b/wgengine/netstack/netstack.go index 852c2a720..8d48e6933 100644 --- a/wgengine/netstack/netstack.go +++ b/wgengine/netstack/netstack.go @@ -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) { |
