           curl_easy_getinfo  -  Extract information from a curl ses-
           sion (added in 7.4)

## SYNOPSIS

           #include <curl/curl.h>

           CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info,  ...
           );

## DESCRIPTION

           Request  internal  information  from the curl session with
           this function.  The third argument MUST be a pointer to  a
           long,  a  pointer to a char * or a pointer to a double (as
           this documentation  describes  further  down).   The  data
           pointed-to will be filled in accordingly and can be relied
           upon only if the function returns CURLE_OK.  This function
           is  intended to get used *AFTER* a performed transfer, all
           results from this function are undefined until the  trans-
           fer is completed.

## AVAILABLE INFORMATION

           These are informations that can be extracted:

           CURLINFO_EFFECTIVE_URL
                   Pass  a  pointer to a 'char *' to receive the last
                   used effective URL.

           CURLINFO_RESPONSE_CODE
                   Pass a pointer to  a  long  to  receive  the  last
                   received  HTTP  or FTP code. This option was known
                   as CURLINFO_HTTP_CODE in libcurl 7.10.7  and  ear-
                   lier.

           CURLINFO_FILETIME
                   Pass  a  pointer  to  a long to receive the remote
                   time of the retrieved document. If you get -1,  it
                   can  be  because  of  many  reasons  (unknown, the
                   server hides it or the server doesn't support  the
                   command that tells document time etc) and the time
                   of the document is unknown.  Note  that  you  must
                   tell the server to collect this information before
                   the transfer is made, by using  the  CURLOPT_FILE-
                   TIME option to curl_easy_setopt(3). (Added in 7.5)

           CURLINFO_TOTAL_TIME
                   Pass a pointer to a double to  receive  the  total
                   transaction  time  in  seconds  for  the  previous
                   transfer. This time does not include  the  connect
                   time,  so if you want the complete operation time,
                   you should add the CURLINFO_CONNECT_TIME.

           CURLINFO_NAMELOOKUP_TIME
                   resolving was completed.

           CURLINFO_CONNECT_TIME
                   Pass a pointer to a double to receive the time, in
                   seconds,  it took from the start until the connect
                   to the remote host (or proxy) was completed.

           CURLINFO_PRETRANSFER_TIME
                   Pass a pointer to a double to receive the time, in
                   seconds,  it  took  from  the start until the file
                   transfer is just about to begin. This includes all
                   pre-transfer  commands  and  negotiations that are
                   specific to the particular protocol(s) involved.

           CURLINFO_STARTTRANSFER_TIME
                   Pass a pointer to a double to receive the time, in
                   seconds,  it  took  from the start until the first
                   byte is just about to be transfered. This includes
                   CURLINFO_PRETRANSFER_TIME  and  also  the time the
                   server needs to calculate the result.

           CURLINFO_REDIRECT_TIME
                   Pass a pointer to a double to  receive  the  total
                   time,  in  seconds,  it  took  for all redirection
                   steps include name  lookup,  connect,  pretransfer
                   and transfer before final transaction was started.
                   CURLINFO_REDIRECT_TIME contains the complete  exe-
                   cution  time for multiple redirections.  (Added in
                   7.9.7)

           CURLINFO_REDIRECT_COUNT
                   Pass a pointer to a long to receive the total num-
                   ber  of  redirections that were actually followed.
                   (Added in 7.9.7)

           CURLINFO_SIZE_UPLOAD
                   Pass a pointer to a double to  receive  the  total
                   amount of bytes that were uploaded.

           CURLINFO_SIZE_DOWNLOAD
                   Pass  a  pointer  to a double to receive the total
                   amount of bytes that were downloaded.  The  amount
                   is  only for the latest transfer and will be reset
                   again for each new transfer.

           CURLINFO_SPEED_DOWNLOAD
                   Pass a pointer to a double to receive the  average
                   download speed that curl measured for the complete
                   download.

           CURLINFO_SPEED_UPLOAD
                   Pass a pointer to a double to receive the  average

           CURLINFO_HEADER_SIZE
                   Pass a pointer to a long to receive the total size
                   of all the headers received.

           CURLINFO_REQUEST_SIZE
                   Pass a pointer to a long to receive the total size
                   of the issued requests. This is so  far  only  for
                   HTTP requests. Note that this may be more than one
                   request if FOLLOWLOCATION is true.

           CURLINFO_SSL_VERIFYRESULT
                   Pass a pointer to a long to receive the result  of
                   the  certification verification that was requested
                   (using  the   CURLOPT_SSL_VERIFYPEER   option   to
                   curl_easy_setopt). (Added in 7.4.2)

           CURLINFO_CONTENT_LENGTH_DOWNLOAD
                   Pass a pointer to a double to receive the content-
                   length of the download. This  is  the  value  read
                   from the Content-Length: field.  (Added in 7.6.1)

           CURLINFO_CONTENT_LENGTH_UPLOAD
                   Pass  a  pointer to a double to receive the speci-
                   fied size of the upload.  (Added in 7.6.1)

           CURLINFO_CONTENT_TYPE
                   Pass a pointer to a 'char *' to receive  the  con-
                   tent-type  of  the  downloaded object. This is the
                   value read from the Content-Type:  field.  If  you
                   get  NULL,  it means that the server didn't send a
                   valid Content-Type header  or  that  the  protocol
                   used doesn't support this.  (Added in 7.9.4)

           CURLINFO_PRIVATE
                   Pass  a  pointer  to  a  'char  *'  to receive the
                   pointer to the private data  associated  with  the
                   curl  handle  (set with the CURLOPT_PRIVATE option
                   to curl_easy_setopt).  (Added in 7.10.3)

## RETURN VALUE

           If the operation was  successful,  CURLE_OK  is  returned.
           Otherwise an appropriate error code will be returned.

## SEE ALSO

           curl_easy_setopt(3)

## BUGS

           Surely there are some, you tell me!