Commit 6c9f37d2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- After a bug reported by James Cheng I've made curl_easy_getinfo() for

  CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return
  -1 if the sizes aren't know. Previously these returned 0, make it impossible
  to detect the difference between actually zero and unknown.
parent 73595528
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -6,6 +6,12 @@


                                  Changelog
                                  Changelog


Daniel Stenberg (23 Feb 2009)
- After a bug reported by James Cheng I've made curl_easy_getinfo() for
  CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD return
  -1 if the sizes aren't know. Previously these returned 0, make it impossible
  to detect the difference between actually zero and unknown.

Yang Tse (23 Feb 2009)
Yang Tse (23 Feb 2009)
- Daniel Johnson provided a shell script that will perform all the steps needed
- Daniel Johnson provided a shell script that will perform all the steps needed
  to build a Mac OS X fat ppc/i386 or ppc64/x86_64 libcurl.framework
  to build a Mac OS X fat ppc/i386 or ppc64/x86_64 libcurl.framework
+3 −1
Original line number Original line Diff line number Diff line
@@ -41,6 +41,8 @@ This release includes the following bugfixes:
   easily on transfer failures
   easily on transfer failures
 o compilation halting when using VS2008 to build a Windows 2000 target
 o compilation halting when using VS2008 to build a Windows 2000 target
 o ease creation of libcurl Mac OS X Framework
 o ease creation of libcurl Mac OS X Framework
 o CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD are -1
   if unknown


This release includes the following known bugs:
This release includes the following known bugs:


@@ -53,6 +55,6 @@ advice from friends like these:
 Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor,
 Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor,
 Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet,
 Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet,
 Kamil Dudka, Patrik Thunstrom, Linus Nielsen Feltzing, Mark Incley,
 Kamil Dudka, Patrik Thunstrom, Linus Nielsen Feltzing, Mark Incley,
 Daniel Johnson
 Daniel Johnson, James Cheng


        Thanks! (and sorry if I forgot to mention someone)
        Thanks! (and sorry if I forgot to mention someone)
+0 −3
Original line number Original line Diff line number Diff line
@@ -8,9 +8,6 @@ To be addressed in 7.19.4 (planned release: March 2009)
218 - Senthil Raja Velu's "CURLOPT_LOCALPORT option broken", patch by 
218 - Senthil Raja Velu's "CURLOPT_LOCALPORT option broken", patch by 
      Markus Koetter
      Markus Koetter


219 - James Cheng's bug "How to detect missing Content-Length response header?"


To be addressed in 7.19.5 (planned release: May 2009)
To be addressed in 7.19.5 (planned release: May 2009)
=========================
=========================


+4 −2
Original line number Original line Diff line number Diff line
@@ -134,9 +134,11 @@ on the list pointer once you're done with it, as libcurl will not free the
data for you. (Added in 7.12.3)
data for you. (Added in 7.12.3)
.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
Pass a pointer to a double to receive the content-length of the download. This
Pass a pointer to a double to receive the content-length of the download. This
is the value read from the Content-Length: field.
is the value read from the Content-Length: field. Since 7.19.4, this returns -1
if the size isn't known.
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
Pass a pointer to a double to receive the specified size of the upload.
Pass a pointer to a double to receive the specified size of the upload.  Since
7.19.4, this returns -1 if the size isn't known.
.IP CURLINFO_CONTENT_TYPE
.IP CURLINFO_CONTENT_TYPE
Pass a pointer to a 'char *' to receive the content-type of the downloaded
Pass a pointer to a 'char *' to receive the content-type of the downloaded
object. This is the value read from the Content-Type: field. If you get NULL,
object. This is the value read from the Content-Type: field. If you get NULL,
+5 −2
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@
#include "memory.h"
#include "memory.h"
#include "sslgen.h"
#include "sslgen.h"
#include "connect.h" /* Curl_getconnectinfo() */
#include "connect.h" /* Curl_getconnectinfo() */
#include "progress.h"


/* Make this the last #include */
/* Make this the last #include */
#include "memdebug.h"
#include "memdebug.h"
@@ -167,10 +168,12 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
    *param_longp = data->set.ssl.certverifyresult;
    *param_longp = data->set.ssl.certverifyresult;
    break;
    break;
  case CURLINFO_CONTENT_LENGTH_DOWNLOAD:
  case CURLINFO_CONTENT_LENGTH_DOWNLOAD:
    *param_doublep = (double)data->progress.size_dl;
    *param_doublep = (data->progress.flags & PGRS_DL_SIZE_KNOWN)?
      (double)data->progress.size_dl:-1;
    break;
    break;
  case CURLINFO_CONTENT_LENGTH_UPLOAD:
  case CURLINFO_CONTENT_LENGTH_UPLOAD:
    *param_doublep = (double)data->progress.size_ul;
    *param_doublep = (data->progress.flags & PGRS_UL_SIZE_KNOWN)?
      (double)data->progress.size_ul:-1;
    break;
    break;
  case CURLINFO_REDIRECT_TIME:
  case CURLINFO_REDIRECT_TIME:
    *param_doublep =  data->progress.t_redirect;
    *param_doublep =  data->progress.t_redirect;