aboutsummaryrefslogtreecommitdiff
path: root/lib/progress.c
AgeCommit message (Collapse)Author
2012-12-28build: make use of 76 lib/*.h renamed filesYang Tse
76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
2012-06-10Curl_pgrsDone: return int and acknowledge return codeDaniel Stenberg
Since Curl_pgrsDone() itself calls Curl_pgrsUpdate() which may return an abort instruction or similar we need to return that info back and subsequently properly handle return codes from Curl_pgrsDone() where used. (Spotted by a Coverity scan)
2012-04-01HTTP: reset expected DL/UL sizes on redirectsDaniel Stenberg
With FOLLOWLOCATION enabled. When a 3xx page is downloaded and the download size was known (like with a Content-Length header), but the subsequent URL (transfered after the 3xx page) was chunked encoded, then the previous "known download size" would linger and cause the progress meter to get incorrect information, ie the former value would remain being sent in. This could easily result in downloads that were WAY larger than "expected" and would cause >100% outputs with the curl command line tool. Test case 599 was created and it was used to repeat the bug and then verify the fix. Bug: http://curl.haxx.se/bug/view.cgi?id=3510057 Reported by: Michael Wallner
2011-12-20FTP: perform active connections non-blockingGokhan Sengun
1- Two new error codes are introduced. CURLE_FTP_ACCEPT_FAILED to be set whenever ACCEPTing fails because of FTP server connected. CURLE_FTP_ACCEPT_TIMEOUT to be set whenever ACCEPTing timeouts. Neither of these errors are considered fatal and control connection remains OK because it could just be a firewall blocking server to connect to the client. 2- One new setopt option was introduced. CURLOPT_ACCEPTTIMEOUT_MS It sets the maximum amount of time FTP client is going to wait for a server to connect. Internal default accept timeout is 60 seconds.
2011-12-20Curl_pgrsTime: store now in an auto variableDaniel Stenberg
It makes it easier to introduce debug outputs in this function, and everything in the function is using the value anyway so it might even be more efficient.
2011-09-22Curl_pgrsStartNow: keep HEADERS_OUT setDaniel Stenberg
To avoid that the progress meter headers get output between each transfer, make sure the bits gets kept when (re-)inited. Reported by: Christopher Stone
2011-08-15Curl_pgrsStartNow: clear all flags but HIDEDaniel Stenberg
As bug 3385258 pointed out but I missed up the fix for. This is another take at a fix. Bug: http://curl.haxx.se/bug/view.cgi?id=3392101 Reported by: Wu Yongzheng
2011-08-07Curl_pgrsStartNow: clear all bits except HIDEDaniel Stenberg
Bug: http://curl.haxx.se/bug/view.cgi?id=3385258 Reported by: Ben Winslow
2011-07-22progress: reset flags at transfer startBen Winslow
When an easy handle is used to download an URI which has no Content-Length header (or equivalent) after downloading an URI which does, the value from the previous transfer is reused and returned by CURLINFO_CONTENT_LENGTH_DOWNLOAD. This is because the progress flags (used to determine whether such a header was received) are not reset between transfers. Bug: http://curl.haxx.se/bug/view.cgi?id=3370895
2011-04-27source cleanup: unify look, style and indent levelsDaniel Stenberg
By the use of a the new lib/checksrc.pl script that checks that our basic source style rules are followed.
2011-04-21Fix a couple of spelling errors in lib/Fabian Keil
Found with codespell.
2011-03-21progress: don't print the last update on a separate line.Julien Chaffraix
Curl_posttransfer is called too soon to add the final new line. Moved the new line logic to pgrsDone as there is no more call to update the progress status after this call. Reported by: Dmitri Shubin <sbn_at_tbricks.com> http://curl.haxx.se/mail/lib-2010-12/0162.html
2010-03-24remove the CVSish $Id$ linesDaniel Stenberg
2009-11-05avoid division by zeroYang Tse
2009-11-04- I fixed several problems with the transfer progress meter. It showed theDaniel Stenberg
wrong percentage for small files, most notable for <1000 bytes and could easily end up showing more than 100% at the end. It also didn't show any percentage, transfer size or estimated transfer times when transferring less than 100 bytes.
2009-10-31- Gabriel Kuri reported a problem with CURLINFO_CONTENT_LENGTH_DOWNLOAD if theDaniel Stenberg
download was 0 bytes, as libcurl would then return the size as unknown (-1) and not 0. I wrote a fix and test case 566 to verify it.
2008-10-11fix compiler warning: explicit conversion of a 64-bit integral type to a ↵Yang Tse
smaller integral type
2008-08-26Use SIZEOF_OFF_T definition from config fileYang Tse
2008-08-16Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TUYang Tse
remain in use as internal curl_off_t print formatting strings for the internal *printf functions which still cannot handle print formatting string directives such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and other DOS/Windows compilers. This reverts previous commit part which did: FORMAT_OFF_T -> CURL_FORMAT_CURL_OFF_T FORMAT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU
2008-08-15For congruency sake with the naming of other CURL_XXXXXX_CURL_OFF_T macros,Yang Tse
the names of the curl_off_t formatting string directives now become CURL_FORMAT_CURL_OFF_T and CURL_FORMAT_CURL_OFF_TU. CURL_FMT_OFF_T -> CURL_FORMAT_CURL_OFF_T CURL_FMT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU Remove the use of an internal name for the curl_off_t formatting string directives and use the common one available from the inside and outside of the library. FORMAT_OFF_T -> CURL_FORMAT_CURL_OFF_T FORMAT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU
2008-08-12Fix curl_off_t sized constants usageYang Tse
2008-08-11 s/SIZEOF_CURL_OFF_T/CURL_SIZEOF_CURL_OFF_T/gYang Tse
2008-07-03Introcuding a new timestamp for curl_easy_getinfo():Daniel Stenberg
CURLINFO_APPCONNECT_TIME. This is set with the "application layer" handshake/connection is completed (typically SSL, TLS or SSH). By using this you can figure out the application layer's own connect time. You can extract the time stamp using curl's -w option and the new variable named 'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar.
2007-11-24struct HandleData is now called struct SingleRequest, and is only for data thatDaniel Stenberg
is inited at the start of the DO action. I removed the Curl_transfer_keeper struct completely, and I had to move out a few struct members (that had to be set before DO or used after DONE) to the UrlState struct. The SingleRequest struct is accessed with SessionHandle->req. One of the biggest reasons for doing this was the bunch of duplicate struct members in HandleData and Curl_transfer_keeper since it was really messy to keep track of two variables with the same name and basically the same purpose!
2007-04-18- Prevent the internal progress meter from updating more frequently than onceDaniel Stenberg
per second.
2007-03-23Change spelling, ONE_TERRABYTE -> ONE_TERABYTEYang Tse
Shave off a couple of function calls in the part of Curl_pgrsUpdate() which is always executed when called. Fix a couple of comments.
2007-03-19Bryan Henderson fixed the progress function so that it can get calledYang Tse
more frequently allowing same calling frecuency for the client progress callback, while keeping the once a second frecuency for speed calculations and internal display of the transfer progress.
2007-03-11reverted the pselect patch => http://curl.haxx.se/mail/lib-2007-03/0100.htmlDaniel Stenberg
2007-03-10- Bryan Henderson introduces two things:Daniel Stenberg
1) the progress callback gets called more frequently (at times) 2) libcurl *might* call the callback when it receives a signal
2006-10-27Update copyright year, since the file has been modifiedYang Tse
2006-09-07Major overhaul introducing http pipelining support and shared connectionDaniel Stenberg
cache within the multi handle.
2004-11-26As reported in Mandrake's bug tracker bug 12289Daniel Stenberg
(http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a newline to "finish" the progress meter after each redirect and not only after a completed transfer.
2004-10-08prevent warning with comparison between signed and unsignedDaniel Stenberg
2004-10-06removed tabs and trailing whitespace from sourceDaniel Stenberg
2004-08-10more typecasts to please picky compilersDaniel Stenberg
2004-07-02explicit typecasts to double to prevent warnings about implicit conversionsDaniel Stenberg
that might lose accuracy
2004-07-01typecast to int when the variable is int!Daniel Stenberg
2004-06-24Replaced all uses of sprintf() with the safer snprintf(). It is just aDaniel Stenberg
precaution to prevent mistakes to lead to buffer overflows.
2004-05-21quickfix to avoid division by zero, possibly we should go over all of theseDaniel Stenberg
once and for all
2004-05-20calculate upload and download speed using doubles to keep precision.Daniel Stenberg
deleted trailing whitespace
2004-05-05hm, avoid division by zero more carefully with that new percentage mathDaniel Stenberg
2004-05-05Gisle fixed the percentage to work, I adjusted it slightly to not as easilyDaniel Stenberg
overflow on 32bit filesize-systems
2004-05-05made the progress meter display not overflow even if _very_ large filesDaniel Stenberg
are transfered. The maximum size we support now is 8 exabytes, which equals to 8192 petabytes...
2004-05-05if the values allow it, avoid floting point math for the current speedDaniel Stenberg
2004-04-19Gisle Vanem corrected a mistake in a recent progress fixDaniel Stenberg
2004-04-09Dirk Manske increased the resolution for what the CURLINFO_*_TIME return.Daniel Stenberg
2004-04-02Dirk Manske's feedback:Daniel Stenberg
* bring back subsecond resolution to CURLINFO_TOTAL_TIME * Fix the Curl_pgrsDone() so that the final progress update is shown properly
2004-03-23made time2str() use longs internally instead to prevent compiler warningsDaniel Stenberg
when converting to ints
2004-03-23added explicit typecasts to prevent compiler warnings on variable conversionsDaniel Stenberg
2004-03-23it actually fits to make a NNNd NNh display so this can be used up toDaniel Stenberg
999 days