From 5ea39dfe8a682f67e4d32aa20677da52ca88786b Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Mon, 6 Jan 2025 23:53:12 +0100 Subject: [PATCH] Adjust limits for iOS --- client/firewall/uspfilter/forwarder/forwarder.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/client/firewall/uspfilter/forwarder/forwarder.go b/client/firewall/uspfilter/forwarder/forwarder.go index cb9bd0f2a..d4984d495 100644 --- a/client/firewall/uspfilter/forwarder/forwarder.go +++ b/client/firewall/uspfilter/forwarder/forwarder.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "net" + "runtime" log "github.com/sirupsen/logrus" "gvisor.dev/gvisor/pkg/buffer" @@ -20,8 +21,10 @@ import ( ) const ( - receiveWindow = 32768 - maxInFlight = 1024 + defaultReceiveWindow = 32768 + defaultMaxInFlight = 1024 + iosReceiveWindow = 16384 + iosMaxInFlight = 256 ) type Forwarder struct { @@ -108,6 +111,13 @@ func New(iface common.IFaceMapper, logger *nblog.Logger, netstack bool) (*Forwar ip: iface.Address().IP, } + receiveWindow := defaultReceiveWindow + maxInFlight := defaultMaxInFlight + if runtime.GOOS == "ios" { + receiveWindow = iosReceiveWindow + maxInFlight = iosMaxInFlight + } + tcpForwarder := tcp.NewForwarder(s, receiveWindow, maxInFlight, f.handleTCP) s.SetTransportProtocolHandler(tcp.ProtocolNumber, tcpForwarder.HandlePacket)