<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/curl.git/lib/progress.h, branch bagder/test493-https</title>
<subtitle>github.com: bagder/curl.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/'/>
<entry>
<title>lib: more conn-&gt;data cleanups</title>
<updated>2021-01-19T08:14:51+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2021-01-18T10:56:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=a304051620b92e12b6b1b4e19edc57b34ea332b6'/>
<id>a304051620b92e12b6b1b4e19edc57b34ea332b6</id>
<content type='text'>
Closes #6479
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #6479
</pre>
</div>
</content>
</entry>
<entry>
<title>curl.se: new home</title>
<updated>2020-11-04T22:59:47+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2020-11-04T13:02:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=4d2f8006777d6354d9b62eae38ebd0a0256d0f94'/>
<id>4d2f8006777d6354d9b62eae38ebd0a0256d0f94</id>
<content type='text'>
Closes #6172
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #6172
</pre>
</div>
</content>
</entry>
<entry>
<title>Curl_pgrsTime - return new time to avoid timeout integer overflow</title>
<updated>2020-08-28T12:16:41+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2020-08-24T09:07:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=a2c85bb8e4ba9fa94b88c7592766763e30379ed2'/>
<id>a2c85bb8e4ba9fa94b88c7592766763e30379ed2</id>
<content type='text'>
Setting a timeout to INT_MAX could cause an immediate error to get
returned as timeout because of an overflow when different values of
'now' were used.

This is primarily fixed by having Curl_pgrsTime() return the "now" when
TIMER_STARTSINGLE is set so that the parent function will continue using
that time.

Reported-by: Ionuț-Francisc Oancea
Fixes #5583
Closes #5847
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Setting a timeout to INT_MAX could cause an immediate error to get
returned as timeout because of an overflow when different values of
'now' were used.

This is primarily fixed by having Curl_pgrsTime() return the "now" when
TIMER_STARTSINGLE is set so that the parent function will continue using
that time.

Reported-by: Ionuț-Francisc Oancea
Fixes #5583
Closes #5847
</pre>
</div>
</content>
</entry>
<entry>
<title>whitespace fixes</title>
<updated>2018-09-23T22:24:02+00:00</updated>
<author>
<name>Viktor Szakats</name>
<email>commit@vszakats.net</email>
</author>
<published>2018-09-23T22:24:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=b801b453af6de75838c3298137628f05e94ffb48'/>
<id>b801b453af6de75838c3298137628f05e94ffb48</id>
<content type='text'>
- replace tabs with spaces where possible
- remove line ending spaces
- remove double/triple newlines at EOF
- fix a non-UTF-8 character
- cleanup a few indentations/line continuations
  in manual examples

Closes https://github.com/curl/curl/pull/3037
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- replace tabs with spaces where possible
- remove line ending spaces
- remove double/triple newlines at EOF
- fix a non-UTF-8 character
- cleanup a few indentations/line continuations
  in manual examples

Closes https://github.com/curl/curl/pull/3037
</pre>
</div>
</content>
</entry>
<entry>
<title>progress: remove a set of unused defines</title>
<updated>2018-06-13T21:38:40+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2018-06-13T12:38:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=0680ec9e2c3e13c28eb5ca69de7477d417b2169c'/>
<id>0680ec9e2c3e13c28eb5ca69de7477d417b2169c</id>
<content type='text'>
Reported-by: Peter Wu
Closes #2654
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported-by: Peter Wu
Closes #2654
</pre>
</div>
</content>
</entry>
<entry>
<title>rate-limit: use three second window to better handle high speeds</title>
<updated>2018-03-16T10:10:06+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2018-03-15T15:43:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=f5700ea88baa5baeb63b7cd42bd12fb03f4e0f4e'/>
<id>f5700ea88baa5baeb63b7cd42bd12fb03f4e0f4e</id>
<content type='text'>
Due to very frequent updates of the rate limit "window", it could
attempt to rate limit within the same milliseconds and that then made
the calculations wrong, leading to it not behaving correctly on very
fast transfers.

This new logic updates the rate limit "window" to be no shorter than the
last three seconds and only updating the timestamps for this when
switching between the states TOOFAST/PERFORM.

Reported-by: 刘佩东
Fixes #2386
Closes #2388
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Due to very frequent updates of the rate limit "window", it could
attempt to rate limit within the same milliseconds and that then made
the calculations wrong, leading to it not behaving correctly on very
fast transfers.

This new logic updates the rate limit "window" to be no shorter than the
last three seconds and only updating the timestamps for this when
switching between the states TOOFAST/PERFORM.

Reported-by: 刘佩东
Fixes #2386
Closes #2388
</pre>
</div>
</content>
</entry>
<entry>
<title>limit-rate: kick in even before "limit" data has been received</title>
<updated>2018-03-11T22:54:25+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2018-03-10T13:07:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=72a0f6251aed97b21b94dfa0c35ccc42fb8d9728'/>
<id>72a0f6251aed97b21b94dfa0c35ccc42fb8d9728</id>
<content type='text'>
... and make sure to avoid integer overflows with really large values.

Reported-by: 刘佩东
Fixes #2371
Closes #2373
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... and make sure to avoid integer overflows with really large values.

Reported-by: 刘佩东
Fixes #2371
Closes #2373
</pre>
</div>
</content>
</entry>
<entry>
<title>progress: Track total times following redirects</title>
<updated>2017-08-15T16:58:31+00:00</updated>
<author>
<name>Ryan Winograd</name>
<email>ryan@thewinograds.com</email>
</author>
<published>2017-06-21T17:15:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=43d036e72488b4be5f48aaec9278a55dc22cb556'/>
<id>43d036e72488b4be5f48aaec9278a55dc22cb556</id>
<content type='text'>
Update the progress timers `t_nslookup`, `t_connect`, `t_appconnect`,
`t_pretransfer`, and `t_starttransfer` to track the total times for
these activities when a redirect is followed. Previously, only the times
for the most recent request would be tracked.

Related changes:

  - Rename `Curl_pgrsResetTimesSizes` to `Curl_pgrsResetTransferSizes`
    now that the function only resets transfer sizes and no longer
    modifies any of the progress timers.

  - Add a bool to the `Progress` struct that is used to prevent
    double-counting `t_starttransfer` times.

Added test case 1399.

Fixes #522 and Known Bug 1.8
Closes #1602
Reported-by: joshhe on github
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the progress timers `t_nslookup`, `t_connect`, `t_appconnect`,
`t_pretransfer`, and `t_starttransfer` to track the total times for
these activities when a redirect is followed. Previously, only the times
for the most recent request would be tracked.

Related changes:

  - Rename `Curl_pgrsResetTimesSizes` to `Curl_pgrsResetTransferSizes`
    now that the function only resets transfer sizes and no longer
    modifies any of the progress timers.

  - Add a bool to the `Progress` struct that is used to prevent
    double-counting `t_starttransfer` times.

Added test case 1399.

Fixes #522 and Known Bug 1.8
Closes #1602
Reported-by: joshhe on github
</pre>
</div>
</content>
</entry>
<entry>
<title>timeval: struct curltime is a struct timeval replacement</title>
<updated>2017-07-28T13:51:25+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2017-07-28T13:49:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=4dee50b9c80f9b18d2eb9a1c20bd879abb342302'/>
<id>4dee50b9c80f9b18d2eb9a1c20bd879abb342302</id>
<content type='text'>
... to make all libcurl internals able to use the same data types for
the struct members. The timeval struct differs subtly on several
platforms so it makes it cumbersome to use everywhere.

Ref: #1652
Closes #1693
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to make all libcurl internals able to use the same data types for
the struct members. The timeval struct differs subtly on several
platforms so it makes it cumbersome to use everywhere.

Ref: #1652
Closes #1693
</pre>
</div>
</content>
</entry>
<entry>
<title>speed caps: not based on average speeds anymore</title>
<updated>2016-09-04T11:11:23+00:00</updated>
<author>
<name>Olivier Brunel</name>
<email>jjk@jjacky.com</email>
</author>
<published>2016-08-16T18:32:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=4b86113f5ed66270364738a351ebb5bb23cd0882'/>
<id>4b86113f5ed66270364738a351ebb5bb23cd0882</id>
<content type='text'>
Speed limits (from CURLOPT_MAX_RECV_SPEED_LARGE &amp;
CURLOPT_MAX_SEND_SPEED_LARGE) were applied simply by comparing limits
with the cumulative average speed of the entire transfer; While this
might work at times with good/constant connections, in other cases it
can result to the limits simply being "ignored" for more than "short
bursts" (as told in man page).

Consider a download that goes on much slower than the limit for some
time (because bandwidth is used elsewhere, server is slow, whatever the
reason), then once things get better, curl would simply ignore the limit
up until the average speed (since the beginning of the transfer) reached
the limit.  This could prove the limit useless to effectively avoid
using the entire bandwidth (at least for quite some time).

So instead, we now use a "moving starting point" as reference, and every
time at least as much as the limit as been transferred, we can reset
this starting point to the current position. This gets a good limiting
effect that applies to the "current speed" with instant reactivity (in
case of sudden speed burst).

Closes #971
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Speed limits (from CURLOPT_MAX_RECV_SPEED_LARGE &amp;
CURLOPT_MAX_SEND_SPEED_LARGE) were applied simply by comparing limits
with the cumulative average speed of the entire transfer; While this
might work at times with good/constant connections, in other cases it
can result to the limits simply being "ignored" for more than "short
bursts" (as told in man page).

Consider a download that goes on much slower than the limit for some
time (because bandwidth is used elsewhere, server is slow, whatever the
reason), then once things get better, curl would simply ignore the limit
up until the average speed (since the beginning of the transfer) reached
the limit.  This could prove the limit useless to effectively avoid
using the entire bandwidth (at least for quite some time).

So instead, we now use a "moving starting point" as reference, and every
time at least as much as the limit as been transferred, we can reset
this starting point to the current position. This gets a good limiting
effect that applies to the "current speed" with instant reactivity (in
case of sudden speed burst).

Closes #971
</pre>
</div>
</content>
</entry>
</feed>
