summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@tailscale.com>2022-04-26 09:00:02 -0700
committerBrad Fitzpatrick <bradfitz@tailscale.com>2022-04-26 09:00:02 -0700
commit5d4a361b4cdf70e724bed93028fcaa0448e95b2e (patch)
tree25543d895aab63ab80d0c8c1b8109050ee87be99
parentc6c752cf6400f2fc0561ddc44be0a22787f3e410 (diff)
downloadtailscale-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.go12
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) {