Commit ca0fd33d authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Georg Horn's STARTTRANSFER_TIME patch

parent 271f96f7
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -569,6 +569,11 @@ 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.
.TP
.B time_starttransfer
The time, in seconds, it took from the start until the first byte is just about
to be transfered. This includes time_pretransfer and also the time the
server needs to calculate the result.
.TP
.B size_download
The total amount of bytes that were downloaded.
.TP
+6 −0
Original line number Diff line number Diff line
@@ -52,6 +52,12 @@ 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.
.TP
.B 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.
.TP
.B CURLINFO_SIZE_UPLOAD
Pass a pointer to a double to receive the total amount of bytes that were
uploaded.
+5 −3
Original line number Diff line number Diff line
@@ -584,8 +584,8 @@ CURLcode curl_global_init(long flags);
void curl_global_cleanup(void);

/* This is the version number */
#define LIBCURL_VERSION "7.9.1"
#define LIBCURL_VERSION_NUM 0x070901
#define LIBCURL_VERSION "7.9.2-pre3"
#define LIBCURL_VERSION_NUM 0x070902

/* linked-list structure for the CURLOPT_QUOTE option (and other) */
struct curl_slist {
@@ -635,7 +635,9 @@ typedef enum {
  CURLINFO_CONTENT_LENGTH_DOWNLOAD   = CURLINFO_DOUBLE + 15,
  CURLINFO_CONTENT_LENGTH_UPLOAD     = CURLINFO_DOUBLE + 16,

  CURLINFO_LASTONE          = 17
  CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,

  CURLINFO_LASTONE          = 18
} CURLINFO;

/* unfortunately, the easy.h include file needs the options and info stuff
+4 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ CURLcode Curl_initinfo(struct SessionHandle *data)
  pro->t_nslookup = 0;
  pro->t_connect = 0;
  pro->t_pretransfer = 0;
  pro->t_starttransfer = 0;

  info->httpcode = 0;
  info->httpversion=0;
@@ -107,6 +108,9 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
  case CURLINFO_PRETRANSFER_TIME:
    *param_doublep =  data->progress.t_pretransfer;
    break;
  case CURLINFO_STARTTRANSFER_TIME:
    *param_doublep = data->progress.t_starttransfer;
    break;
  case CURLINFO_SIZE_UPLOAD:
    *param_doublep =  data->progress.uploaded;
    break;
+9 −7
Original line number Diff line number Diff line
@@ -111,22 +111,24 @@ void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
    /* mistake filter */
    break;
  case TIMER_STARTSINGLE:
    /* This is set at the start of a single fetch, there may be several
       fetches within an operation, why we add all other times relative
       to this one */
    /* This is set at the start of a single fetch */
    data->progress.t_startsingle = Curl_tvnow();
    break;

  case TIMER_NAMELOOKUP:
    data->progress.t_nslookup +=
    data->progress.t_nslookup =
      (double)Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle)/1000.0;
    break;
  case TIMER_CONNECT:
    data->progress.t_connect +=
    data->progress.t_connect =
      (double)Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle)/1000.0;
    break;
  case TIMER_PRETRANSFER:
    data->progress.t_pretransfer +=
    data->progress.t_pretransfer =
      (double)Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle)/1000.0;
    break;
  case TIMER_STARTTRANSFER:
    data->progress.t_starttransfer =
      (double)Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle)/1000.0;
    break;
  case TIMER_POSTRANSFER:
@@ -227,7 +229,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
  /* The exact time spent so far (from the start) */
  timespent = (double)Curl_tvdiff (now, data->progress.start)/1000;

  data->progress.timespent = (long)timespent;
  data->progress.timespent = timespent;

  /* The average download speed this far */
  data->progress.dlspeed =
Loading