Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b3b2e15

Browse files
committed
fix: fix netstack to forward TCP sessions to local addresses
1 parent ddd4a72 commit b3b2e15

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

wgengine/netstack/netstack.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -878,17 +878,17 @@ func (ns *Impl) acceptTCP(r *tcp.ForwarderRequest) {
878878
clientRemoteAddrPort := netip.AddrPortFrom(clientRemoteIP, clientRemotePort)
879879

880880
dialIP := netaddrIPFromNetstackIP(reqDetails.LocalAddress)
881-
isTailscaleIP := tsaddr.IsTailscaleIP(dialIP)
881+
isLocal := ns.isLocalIP(dialIP)
882882

883883
dstAddrPort := netip.AddrPortFrom(dialIP, reqDetails.LocalPort)
884884

885885
if viaRange.Contains(dialIP) {
886-
isTailscaleIP = false
886+
isLocal = false
887887
dialIP = tsaddr.UnmapVia(dialIP)
888888
}
889889

890890
defer func() {
891-
if !isTailscaleIP {
891+
if !isLocal {
892892
// if this is a subnet IP, we added this in before the TCP handshake
893893
// so netstack is happy TCP-handshaking as a subnet IP
894894
ns.removeSubnetAddress(dialIP)
@@ -975,7 +975,7 @@ func (ns *Impl) acceptTCP(r *tcp.ForwarderRequest) {
975975
return
976976
}
977977
}
978-
if isTailscaleIP {
978+
if isLocal {
979979
dialIP = netaddr.IPv4(127, 0, 0, 1)
980980
}
981981
dialAddr := netip.AddrPortFrom(dialIP, uint16(reqDetails.LocalPort))

0 commit comments

Comments
 (0)