← Commit list

eb6d1e098e

Stefan Eissing
Stefan Eissing
2026-06-15
SUCCESS Duration: 193s

Subject

ratelimits: use minimal burst rate

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/ratelimit.c+5 -3
@@ -141,12 +141,14 @@ static void rlimit_tune_steps(struct Curl_rlimit *r,
r->step_us = CURL_US_PER_SEC + ((timediff_t)mstep_inc * 1000);
r->rate_per_step += rate_inc;
r->tokens = r->rate_per_step;
+ if(r->burst_per_step) {
+ curl_off_t burst_inc = ((r->burst_per_step * mstep_inc) / 1000);
+ if(burst_inc)
+ r->burst_per_step += burst_inc;
+ }
}
}
}
-
- if(r->burst_per_step)
- r->burst_per_step = r->rate_per_step;
}
void Curl_rlimit_init(struct Curl_rlimit *r,
lib/setopt.c+6 -2
@@ -2768,7 +2768,9 @@ static CURLcode setopt_offt(struct Curl_easy *data, CURLoption option,
if(offt < 0)
return CURLE_BAD_FUNCTION_ARGUMENT;
s->max_send_speed = offt;
- Curl_rlimit_init(&data->progress.ul.rlimit, offt, offt,
+ /* use minimal burst rate of 32k. some protocol batch IO */
+ Curl_rlimit_init(&data->progress.ul.rlimit, offt,
+ CURLMAX(offt, (32 * 1024)),
Curl_pgrs_now(data));
break;
case CURLOPT_MAX_RECV_SPEED_LARGE:
@@ -2779,7 +2781,9 @@ static CURLcode setopt_offt(struct Curl_easy *data, CURLoption option,
if(offt < 0)
return CURLE_BAD_FUNCTION_ARGUMENT;
s->max_recv_speed = offt;
- Curl_rlimit_init(&data->progress.dl.rlimit, offt, offt,
+ /* use minimal burst rate of 32k. some protocol batch IO */
+ Curl_rlimit_init(&data->progress.dl.rlimit, offt,
+ CURLMAX(offt, (32 * 1024)),
Curl_pgrs_now(data));
break;
case CURLOPT_RESUME_FROM_LARGE: