diff --git a/device/constants.go b/device/constants.go index 2252917..53a2526 100644 --- a/device/constants.go +++ b/device/constants.go @@ -35,7 +35,6 @@ const ( /* Implementation constants */ const ( - UnderLoadQueueSize = QueueHandshakeSize / 8 UnderLoadAfterTime = time.Second // how long does the device remain under load after detected MaxPeers = 1 << 16 // maximum number of configured peers ) diff --git a/device/device.go b/device/device.go index 86f519a..5644c8a 100644 --- a/device/device.go +++ b/device/device.go @@ -210,7 +210,7 @@ func (device *Device) Down() error { func (device *Device) IsUnderLoad() bool { // check if currently under load now := time.Now() - underLoad := len(device.queue.handshake.c) >= UnderLoadQueueSize + underLoad := len(device.queue.handshake.c) >= QueueHandshakeSize/8 if underLoad { atomic.StoreInt64(&device.rate.underLoadUntil, now.Add(UnderLoadAfterTime).UnixNano()) return true diff --git a/device/queueconstants_ios.go b/device/queueconstants_ios.go index be30e19..36c8704 100644 --- a/device/queueconstants_ios.go +++ b/device/queueconstants_ios.go @@ -7,13 +7,15 @@ package device -/* Fit within memory limits for iOS's Network Extension API, which has stricter requirements */ - -const ( - QueueStagedSize = 128 - QueueOutboundSize = 1024 - QueueInboundSize = 1024 - QueueHandshakeSize = 1024 - MaxSegmentSize = 1700 - PreallocatedBuffersPerPool = 1024 +// Fit within memory limits for iOS's Network Extension API, which has stricter requirements. +// These are vars instead of consts, because heavier network extensions might want to reduce +// them further. +var ( + QueueStagedSize = 128 + QueueOutboundSize = 1024 + QueueInboundSize = 1024 + QueueHandshakeSize = 1024 + PreallocatedBuffersPerPool uint32 = 1024 ) + +const MaxSegmentSize = 1700