From 223d84810435d1fa3937e46488f6a4763de06972 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 31 Oct 2009 18:51:50 +0000 Subject: - Gabriel Kuri reported a problem with CURLINFO_CONTENT_LENGTH_DOWNLOAD if the 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. --- CHANGES | 5 +++++ RELEASE-NOTES | 3 ++- lib/progress.c | 6 +++--- tests/libtest/lib566.c | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 1ab15dc73..c58ccae1e 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,11 @@ Changelog +Daniel Stenberg (31 Oct 2009) +- Gabriel Kuri reported a problem with CURLINFO_CONTENT_LENGTH_DOWNLOAD if the + 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. + Daniel Stenberg (30 Oct 2009) - Liza Alenchery mentioned a problem with re-used SCP connection when a bad auth is used, as it caused a crash. I failed to repeat the issue, but still diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 2e3817003..5c74df455 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -44,6 +44,7 @@ This release includes the following bugfixes: o unparsable cookie expire dates make cookies get treated as session coookies o POST with Digest authentication and "Transfer-Encoding: chunked" o SCP connection re-use with wrong auth + o CURLINFO_CONTENT_LENGTH_DOWNLOAD for 0 bytes transfers This release includes the following known bugs: @@ -57,6 +58,6 @@ advice from friends like these: Claes Jakobsson, Sven Anders, Chris Mumford, John P. McCaskey, Constantine Sapuntzakis, Michael Stillwell, Tom Mueller, Dan Fandrich, Kevin Baughman, John Dennis, Ray Dassen, Johan van Selst, Dima Barsky, - Liza Alenchery + Liza Alenchery, Gabriel Kuri Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/progress.c b/lib/progress.c index 69f273405..eddd852c1 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2009, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -211,7 +211,7 @@ void Curl_pgrsSetUploadCounter(struct SessionHandle *data, curl_off_t size) void Curl_pgrsSetDownloadSize(struct SessionHandle *data, curl_off_t size) { data->progress.size_dl = size; - if(size > 0) + if(size >= 0) data->progress.flags |= PGRS_DL_SIZE_KNOWN; else data->progress.flags &= ~PGRS_DL_SIZE_KNOWN; @@ -220,7 +220,7 @@ void Curl_pgrsSetDownloadSize(struct SessionHandle *data, curl_off_t size) void Curl_pgrsSetUploadSize(struct SessionHandle *data, curl_off_t size) { data->progress.size_ul = size; - if(size > 0) + if(size >= 0) data->progress.flags |= PGRS_UL_SIZE_KNOWN; else data->progress.flags &= ~PGRS_UL_SIZE_KNOWN; diff --git a/tests/libtest/lib566.c b/tests/libtest/lib566.c index 143a67b71..e2cbe7769 100644 --- a/tests/libtest/lib566.c +++ b/tests/libtest/lib566.c @@ -17,7 +17,7 @@ int test(char *URL) CURLcode res; CURL *curl; - long content_length; + double content_length = 3; if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { fprintf(stderr, "curl_global_init() failed\n"); @@ -41,7 +41,7 @@ int test(char *URL) &content_length); moo = fopen(libtest_arg2, "wb"); if(moo) { - fprintf(moo, "CL: %ld\n", content_length); + fprintf(moo, "CL: %.0f\n", content_length); fclose(moo); } } -- cgit v1.2.3