From 3e40016545bf7b983c2b1106b1a0a1dd4e122398 Mon Sep 17 00:00:00 2001 From: ste87 Date: Sat, 14 Mar 2026 14:08:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Speed/Convoy.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Speed/Convoy.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Speed/Convoy.php b/Speed/Convoy.php index 81bfbc0..ebb7ad9 100644 --- a/Speed/Convoy.php +++ b/Speed/Convoy.php @@ -89,6 +89,13 @@ class Convoy extends Server 'label' => 'Bandwidth (MiB)', 'required' => false, ], + [ + 'name' => 'rate_limit', + 'type' => 'text', + 'label' => 'Rate Limit (MiB/s)', + 'required' => false, + 'description' => 'Network speed limit in MiB/s. Set to 0 or leave empty for unlimited.', + ], [ 'name' => 'snapshot', 'type' => 'text', @@ -238,6 +245,7 @@ class Convoy extends Server $ram = $properties['ram'] ?? $settings['ram']; $disk = $properties['disk'] ?? $settings['disk']; $bandwidth = $properties['bandwidth'] ?? $settings['bandwidth']; + $rateLimit = $properties['rate_limit'] ?? $settings['rate_limit']; $snapshot = $properties['snapshot'] ?? $settings['snapshot']; $backups = $properties['backups'] ?? $settings['backups']; $ipv4 = $properties['ipv4'] ?? $settings['ipv4']; @@ -276,6 +284,11 @@ class Convoy extends Server 'start_on_completion' => isset($properties['start_on_create']) ? (bool) $properties['start_on_create'] : (bool) $settings['start_on_create'], ]; + // Add rate limit if set + if (isset($rateLimit) && $rateLimit > 0) { + $data['limits']['rate_limit'] = (float) $rateLimit; + } + $server = $this->request('servers', 'post', $data); if (!isset($server['data'])) { @@ -303,6 +316,7 @@ class Convoy extends Server } $currentData = $this->request('servers/' . $properties['server_uuid']); + $rateLimit = $properties['rate_limit'] ?? $settings['rate_limit']; $data = [ 'address_ids' => [], @@ -314,6 +328,11 @@ class Convoy extends Server 'disk' => (int) ($properties['disk'] ?? $settings['disk']) * 1024 * 1024, ]; + // Add rate limit if set + if (isset($rateLimit) && $rateLimit > 0) { + $data['rate_limit'] = (float) $rateLimit; + } + $limitIpv4 = (int) ($properties['ipv4'] ?? $settings['ipv4']); $limitIpv6 = (int) ($properties['ipv6'] ?? $settings['ipv6']); // Check if IPv4 has increased