mirror of
https://github.com/curl/curl.git
synced 2026-04-14 22:31:41 +03:00
ratelimit: redesign
Description of how this works in `docs/internal/RATELIMITS.ms`. Notable implementation changes: - KEEP_SEND_PAUSE/KEEP_SEND_HOLD and KEEP_RECV_PAUSE/KEEP_RECV_HOLD no longer exist. Pausing is down via blocked the new rlimits. - KEEP_SEND_TIMED no longer exists. Pausing "100-continue" transfers is done in the new `Curl_http_perform_pollset()` method. - HTTP/2 rate limiting implemented via window updates. When transfer initiaiting connection has a ratelimit, adjust the initial window size - HTTP/3 ngtcp2 rate limitin implemnented via ack updates - HTTP/3 quiche does not seem to support this via its API - the default progress-meter has been improved for accuracy in "current speed" results. pytest speed tests have been improved. Closes #19384
This commit is contained in:
parent
bfde781121
commit
24b36fdd15
48 changed files with 1146 additions and 675 deletions
|
|
@ -2842,6 +2842,7 @@ 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, curlx_now());
|
||||
break;
|
||||
case CURLOPT_MAX_RECV_SPEED_LARGE:
|
||||
/*
|
||||
|
|
@ -2851,6 +2852,7 @@ 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, curlx_now());
|
||||
break;
|
||||
case CURLOPT_RESUME_FROM_LARGE:
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue