@@ -14,6 +14,7 @@ import (
1414 "os"
1515 "os/exec"
1616 "path/filepath"
17+ "reflect"
1718 "slices"
1819 "strconv"
1920 "strings"
@@ -497,8 +498,8 @@ func (m *Manager) refreshThrottlingFromPlatform() error {
497498 }
498499
499500 if downloadSpeed .IsOnlineSpeedLimit {
500- // 如果启用了在线限速,禁用本地限速
501- if err := m .disableLocalSpeedLimitConfig (); err != nil {
501+ // 如果启用了在线限速,禁用本地限速,并将本地限速速度同步为平台下发的限速值
502+ if err := m .disableLocalSpeedLimitConfig (downloadSpeed . LimitSpeed ); err != nil {
502503 logger .Warningf ("Failed to disable local speed limit %v" , err )
503504 }
504505 } else {
@@ -534,7 +535,7 @@ func (m *Manager) disableOnlineSpeedLimitConfig() error {
534535 return nil
535536}
536537
537- func (m * Manager ) disableLocalSpeedLimitConfig () error {
538+ func (m * Manager ) disableLocalSpeedLimitConfig (limitSpeed string ) error {
538539 var downloadSpeed downloadSpeedLimitConfig
539540 if err := json .Unmarshal ([]byte (m .config .LocalDownloadSpeedLimitConfig ), & downloadSpeed ); err != nil {
540541 downloadSpeed = downloadSpeedLimitConfig {
@@ -543,10 +544,15 @@ func (m *Manager) disableLocalSpeedLimitConfig() error {
543544 IsOnlineSpeedLimit : false ,
544545 }
545546 }
546- if ! downloadSpeed .DownloadSpeedLimitEnabled {
547- return nil
547+ oldDownloadSpeed := downloadSpeed
548+ if limitSpeed != "" {
549+ downloadSpeed .LimitSpeed = limitSpeed
548550 }
549551 downloadSpeed .DownloadSpeedLimitEnabled = false
552+ downloadSpeed .IsOnlineSpeedLimit = false
553+ if reflect .DeepEqual (downloadSpeed , oldDownloadSpeed ) {
554+ return nil
555+ }
550556 jsonStr , err := json .Marshal (downloadSpeed )
551557 if err != nil {
552558 return fmt .Errorf ("failed to marshal local download speed limit config: %w" , err )
0 commit comments