Commit 7c648782 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Introcuding a new timestamp for curl_easy_getinfo():

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.
parent ee64d147
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -6,6 +6,14 @@

                                  Changelog

Daniel Stenberg (3 Jul 2008)
- Introcuding a new timestamp for curl_easy_getinfo():
  CURLINFO_APPCONNECT_TIME. This is set with the "application layer"
  handshake/connection is completed. Which typically is SSL, TLS or SSH and 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.

Daniel Fandrich (2 Jul 2008)
- Support Open Watcom C on Linux (as well as Windows).

+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ This release includes the following changes:
 o curl's option parser for boolean options reworked
 o Added --remote-name-all
 o Now builds for the INTEGRITY operating system
 o Added CURLINFO_APPCONNECT_TIME

This release includes the following bugfixes:

+6 −2
Original line number Diff line number Diff line
@@ -1241,8 +1241,12 @@ The time, in seconds, it took from the start until the name resolving was
completed.
.TP
.B time_connect
The time, in seconds, it took from the start until the connect to the remote
host (or proxy) was completed.
The time, in seconds, it took from the start until the TCP connect to the
remote host (or proxy) was completed.
.TP
.B time_appconnect
The time, in seconds, it took from the start until the SSL/SSH/etc
connect/handshake to the remote host was completed. (Added in 7.19.0)
.TP
.B time_pretransfer
The time, in seconds, it took from the start until the file transfer is just
+22 −12
Original line number Diff line number Diff line
@@ -71,6 +71,12 @@ start until the name resolving was completed.
.IP 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.
.IP CURLINFO_APPCONNECT_TIME
Pass a pointer to a double to receive the time, in seconds, it took from the
start until the SSL/SSH connect/handshake to the remote host was completed.
This time is most often very near to the PRETRANSFER time, except for cases
such as HTTP pippelining where the pretransfer time can be delayed due to
waits in line for the pipeline and more. (Added in 7.19.0)
.IP 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
@@ -190,29 +196,33 @@ An overview of the six time values available from curl_easy_getinfo()

curl_easy_perform()
    |
    |--NT
    |--|--CT
    |--|--|--PT
    |--|--|--|--ST
    |--|--|--|--|--TT
    |--|--|--|--|--RT
    |--NAMELOOKUP
    |--|--CONNECT
    |--|--|--APPCONNECT
    |--|--|--|--PRETRANSFER
    |--|--|--|--|--STARTTRANSFER
    |--|--|--|--|--|--TOTAL
    |--|--|--|--|--|--REDIRECT
.FI
.IP NT
.IP NAMELOOKUP
\fICURLINFO_NAMELOOKUP_TIME\fP. The time it took from the start until the name
resolving was completed.
.IP CT
.IP CONNECT
\fICURLINFO_CONNECT_TIME\fP. The time it took from the start until the connect
to the remote host (or proxy) was completed.
.IP PT
.IP APPCONNECT
\fICURLINFO_APPCONNECT_TIME\fP. The time it took from the start until the SSL
connect/handshake with the remote host was completed. (Added in in 7.19.0)
.IP PRETRANSFER
\fICURLINFO_PRETRANSFER_TIME\fP. The time 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.
.IP ST
.IP STARTTRANSFER
\fICURLINFO_STARTTRANSFER_TIME\fP. The time it took from the start until the
first byte is just about to be transferred.
.IP TT
.IP TOTAL
\fICURLINFO_TOTAL_TIME\fP. Total time of the previous request.
.IP RT
.IP REDIRECT
\fICURLINFO_REDIRECT_TIME\fP. The time it took for all redirection steps
include name lookup, connect, pretransfer and transfer before final
transaction was started. So, this is zero if no redirection took place.
+2 −1
Original line number Diff line number Diff line
@@ -1608,9 +1608,10 @@ typedef enum {
  CURLINFO_FTP_ENTRY_PATH   = CURLINFO_STRING + 30,
  CURLINFO_REDIRECT_URL     = CURLINFO_STRING + 31,
  CURLINFO_PRIMARY_IP       = CURLINFO_STRING + 32,
  CURLINFO_APPCONNECT_TIME  = CURLINFO_DOUBLE + 33,
  /* Fill in new entries below here! */

  CURLINFO_LASTONE          = 32
  CURLINFO_LASTONE          = 33
} CURLINFO;

/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
Loading