summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--device/constants.go1
-rw-r--r--device/device.go2
-rw-r--r--device/queueconstants_ios.go20
3 files changed, 12 insertions, 11 deletions
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