@@ -2033,6 +2033,39 @@ func (m *UpdatePlatformManager) UpdateRequestUrl(url string) {
20332033 m .requestUrl = url
20342034}
20352035
2036+ func updateNoLimitConfigIfChanged (currentValue string , setFunc func (string ) error ) error {
2037+ var existingRate ratelimit.RateInfo
2038+ if currentValue != "" {
2039+ if err := json .Unmarshal ([]byte (currentValue ), & existingRate ); err == nil {
2040+ if existingRate .LimitType == ratelimit .RateLimitTypeNo {
2041+ return nil
2042+ }
2043+ newRate := ratelimit.RateInfo {
2044+ LimitType : ratelimit .RateLimitTypeNo ,
2045+ LimitRate : existingRate .LimitRate ,
2046+ CurrentRate : existingRate .CurrentRate ,
2047+ StartTime : existingRate .StartTime ,
2048+ EndTime : existingRate .EndTime ,
2049+ }
2050+ data , err := json .Marshal (& newRate )
2051+ if err != nil {
2052+ return err
2053+ }
2054+ return setFunc (string (data ))
2055+ }
2056+ }
2057+ newRate := ratelimit.RateInfo {
2058+ LimitType : ratelimit .RateLimitTypeNo ,
2059+ LimitRate : ratelimit .DefaultRateLimit ,
2060+ CurrentRate : ratelimit .DefaultRateLimit ,
2061+ }
2062+ data , err := json .Marshal (& newRate )
2063+ if err != nil {
2064+ return err
2065+ }
2066+ return setFunc (string (data ))
2067+ }
2068+
20362069func (m * UpdatePlatformManager ) UpdateDeliverySpeedLimit () error {
20372070 if err := m .GenIpfsConfig (); err != nil {
20382071 return fmt .Errorf ("failed to gen ipfs config: %w" , err )
@@ -2056,15 +2089,15 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
20562089 if localDownloadRateLimit .Global == nil {
20572090 localDownloadRateLimit .Global = & ratelimit.RateInfo { // 本地不限速
20582091 LimitType : ratelimit .RateLimitTypeNo ,
2059- LimitRate : int64 (ratelimit .MaxRate ),
2060- CurrentRate : int64 (ratelimit .MaxRate ),
2092+ LimitRate : int64 (ratelimit .DefaultRateLimit ),
2093+ CurrentRate : int64 (ratelimit .DefaultRateLimit ),
20612094 }
20622095 }
20632096 if localUploadRateLimit .Global == nil {
20642097 localUploadRateLimit .Global = & ratelimit.RateInfo { // 本地不限速
20652098 LimitType : ratelimit .RateLimitTypeNo ,
2066- LimitRate : int64 (ratelimit .MaxRate ),
2067- CurrentRate : int64 (ratelimit .MaxRate ),
2099+ LimitRate : int64 (ratelimit .DefaultRateLimit ),
2100+ CurrentRate : int64 (ratelimit .DefaultRateLimit ),
20682101 }
20692102 }
20702103
@@ -2101,6 +2134,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21012134 logger .Warning (err )
21022135 }
21032136 }
2137+ } else {
2138+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteUploadGlobalLimit , m .config .SetDeliveryRemoteUploadGlobalLimit ); err != nil {
2139+ logger .Warning (err )
2140+ }
21042141 }
21052142 if uploadLimitRate .BusyLimitRemote != nil {
21062143 remoteUploadPeakData , err := json .Marshal (uploadLimitRate .BusyLimitRemote )
@@ -2109,6 +2146,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21092146 logger .Warning (err )
21102147 }
21112148 }
2149+ } else {
2150+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteUploadPeakLimit , m .config .SetDeliveryRemoteUploadPeakLimit ); err != nil {
2151+ logger .Warning (err )
2152+ }
21122153 }
21132154 if uploadLimitRate .FreeLimitRemote != nil {
21142155 remoteUploadOffPeakData , err := json .Marshal (uploadLimitRate .FreeLimitRemote )
@@ -2117,6 +2158,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21172158 logger .Warning (err )
21182159 }
21192160 }
2161+ } else {
2162+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteUploadOffPeakLimit , m .config .SetDeliveryRemoteUploadOffPeakLimit ); err != nil {
2163+ logger .Warning (err )
2164+ }
21202165 }
21212166
21222167 if downloadLimitRate .GlobalLimitRemote != nil {
@@ -2126,6 +2171,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21262171 logger .Warning (err )
21272172 }
21282173 }
2174+ } else {
2175+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteDownloadGlobalLimit , m .config .SetDeliveryRemoteDownloadGlobalLimit ); err != nil {
2176+ logger .Warning (err )
2177+ }
21292178 }
21302179 if downloadLimitRate .BusyLimitRemote != nil {
21312180 remoteDownloadPeakData , err := json .Marshal (downloadLimitRate .BusyLimitRemote )
@@ -2134,6 +2183,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21342183 logger .Warning (err )
21352184 }
21362185 }
2186+ } else {
2187+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteDownloadPeakLimit , m .config .SetDeliveryRemoteDownloadPeakLimit ); err != nil {
2188+ logger .Warning (err )
2189+ }
21372190 }
21382191 if downloadLimitRate .FreeLimitRemote != nil {
21392192 remoteDownloadOffPeakData , err := json .Marshal (downloadLimitRate .FreeLimitRemote )
@@ -2142,6 +2195,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21422195 logger .Warning (err )
21432196 }
21442197 }
2198+ } else {
2199+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryRemoteDownloadOffPeakLimit , m .config .SetDeliveryRemoteDownloadOffPeakLimit ); err != nil {
2200+ logger .Warning (err )
2201+ }
21452202 }
21462203
21472204 if uploadLimitRate .GlobalLimitLocal != nil {
@@ -2151,6 +2208,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21512208 logger .Warning (err )
21522209 }
21532210 }
2211+ } else {
2212+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalUploadGlobalLimit , m .config .SetDeliveryLocalUploadGlobalLimit ); err != nil {
2213+ logger .Warning (err )
2214+ }
21542215 }
21552216 if uploadLimitRate .BusyLimitLocal != nil {
21562217 localUploadPeakData , err := json .Marshal (uploadLimitRate .BusyLimitLocal )
@@ -2159,6 +2220,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21592220 logger .Warning (err )
21602221 }
21612222 }
2223+ } else {
2224+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalUploadPeakLimit , m .config .SetDeliveryLocalUploadPeakLimit ); err != nil {
2225+ logger .Warning (err )
2226+ }
21622227 }
21632228 if uploadLimitRate .FreeLimitLocal != nil {
21642229 localUploadOffPeakData , err := json .Marshal (uploadLimitRate .FreeLimitLocal )
@@ -2167,6 +2232,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21672232 logger .Warning (err )
21682233 }
21692234 }
2235+ } else {
2236+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalUploadOffPeakLimit , m .config .SetDeliveryLocalUploadOffPeakLimit ); err != nil {
2237+ logger .Warning (err )
2238+ }
21702239 }
21712240
21722241 if downloadLimitRate .GlobalLimitLocal != nil {
@@ -2176,6 +2245,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21762245 logger .Warning (err )
21772246 }
21782247 }
2248+ } else {
2249+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalDownloadGlobalLimit , m .config .SetDeliveryLocalDownloadGlobalLimit ); err != nil {
2250+ logger .Warning (err )
2251+ }
21792252 }
21802253 if downloadLimitRate .BusyLimitLocal != nil {
21812254 localDownloadPeakData , err := json .Marshal (downloadLimitRate .BusyLimitLocal )
@@ -2184,6 +2257,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21842257 logger .Warning (err )
21852258 }
21862259 }
2260+ } else {
2261+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalDownloadPeakLimit , m .config .SetDeliveryLocalDownloadPeakLimit ); err != nil {
2262+ logger .Warning (err )
2263+ }
21872264 }
21882265 if downloadLimitRate .FreeLimitLocal != nil {
21892266 localDownloadOffPeakData , err := json .Marshal (downloadLimitRate .FreeLimitLocal )
@@ -2192,6 +2269,10 @@ func (m *UpdatePlatformManager) UpdateDeliverySpeedLimit() error {
21922269 logger .Warning (err )
21932270 }
21942271 }
2272+ } else {
2273+ if err := updateNoLimitConfigIfChanged (m .config .DeliveryLocalDownloadOffPeakLimit , m .config .SetDeliveryLocalDownloadOffPeakLimit ); err != nil {
2274+ logger .Warning (err )
2275+ }
21952276 }
21962277
21972278 return nil
0 commit comments