Dirk Manske brought the patch that introduces two new CURLINFO_* values:
CURLINFO_REDIRECT_TIME and CURLINFO_REDIRECT_COUNT.
This commit is contained in:
Родитель
29e873b12d
Коммит
62d205a2ec
15
CHANGES
15
CHANGES
|
@ -6,6 +6,21 @@
|
|||
|
||||
History of Changes
|
||||
|
||||
Daniel (16 April 2002)
|
||||
- Dirk Manske brought a patch that introduced two new CURLINFO_* values:
|
||||
CURLINFO_REDIRECT_TIME and CURLINFO_REDIRECT_COUNT.
|
||||
|
||||
Daniel (15 April 2002)
|
||||
- Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
|
||||
reflect reality better, like when the first request isn't POST and when
|
||||
the second isn't GET... :-)
|
||||
|
||||
- Craig Davison pointed out that when curl_formadd()ing a file that doesn't
|
||||
exist, libcurl doesn't return error. Now, curl_easy_perform() will return
|
||||
CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
|
||||
|
||||
Version 7.9.6
|
||||
|
||||
Daniel (14 April 2002)
|
||||
- Dirk Manske brought a fix that makes libcurl strip off white spaces from the
|
||||
beginning of cookie contents.
|
||||
|
|
|
@ -718,9 +718,12 @@ typedef enum {
|
|||
|
||||
CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18,
|
||||
|
||||
CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
|
||||
CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20,
|
||||
|
||||
/* Fill in new entries here! */
|
||||
|
||||
CURLINFO_LASTONE = 19
|
||||
CURLINFO_LASTONE = 21
|
||||
} CURLINFO;
|
||||
|
||||
/* unfortunately, the easy.h and multi.h include files need options and info
|
||||
|
|
|
@ -54,6 +54,7 @@ CURLcode Curl_initinfo(struct SessionHandle *data)
|
|||
pro->t_pretransfer = 0;
|
||||
pro->t_starttransfer = 0;
|
||||
pro->timespent = 0;
|
||||
pro->t_redirect = 0;
|
||||
|
||||
info->httpcode = 0;
|
||||
info->httpversion=0;
|
||||
|
@ -148,6 +149,12 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...)
|
|||
case CURLINFO_CONTENT_LENGTH_UPLOAD:
|
||||
*param_doublep = data->progress.size_ul;
|
||||
break;
|
||||
case CURLINFO_REDIRECT_TIME:
|
||||
*param_doublep = data->progress.t_redirect;
|
||||
break;
|
||||
case CURLINFO_REDIRECT_COUNT:
|
||||
*param_longp = data->set.followlocation;
|
||||
break;
|
||||
case CURLINFO_CONTENT_TYPE:
|
||||
*param_charp = data->info.contenttype;
|
||||
break;
|
||||
|
|
|
@ -103,6 +103,15 @@ void Curl_pgrsDone(struct connectdata *conn)
|
|||
}
|
||||
}
|
||||
|
||||
/* reset all times except redirect */
|
||||
void Curl_pgrsResetTimes(struct SessionHandle *data)
|
||||
{
|
||||
data->progress.t_nslookup = 0.0;
|
||||
data->progress.t_connect = 0.0;
|
||||
data->progress.t_pretransfer = 0.0;
|
||||
data->progress.t_starttransfer = 0.0;
|
||||
}
|
||||
|
||||
void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
|
||||
{
|
||||
switch(timer) {
|
||||
|
@ -134,6 +143,10 @@ void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
|
|||
case TIMER_POSTRANSFER:
|
||||
/* this is the normal end-of-transfer thing */
|
||||
break;
|
||||
case TIMER_REDIRECT:
|
||||
data->progress.t_redirect =
|
||||
(double)Curl_tvdiff(Curl_tvnow(), data->progress.t_startsingle)/1000.0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ typedef enum {
|
|||
TIMER_STARTTRANSFER,
|
||||
TIMER_POSTRANSFER,
|
||||
TIMER_STARTSINGLE,
|
||||
TIMER_REDIRECT,
|
||||
TIMER_LAST /* must be last */
|
||||
} timerid;
|
||||
|
||||
|
@ -44,6 +45,7 @@ void Curl_pgrsSetUploadSize(struct SessionHandle *data, double size);
|
|||
void Curl_pgrsSetDownloadCounter(struct SessionHandle *data, double size);
|
||||
void Curl_pgrsSetUploadCounter(struct SessionHandle *data, double size);
|
||||
int Curl_pgrsUpdate(struct connectdata *);
|
||||
void Curl_pgrsResetTimes(struct SessionHandle *data);
|
||||
void Curl_pgrsTime(struct SessionHandle *data, timerid timer);
|
||||
|
||||
|
||||
|
|
|
@ -1312,6 +1312,8 @@ CURLcode Curl_perform(struct SessionHandle *data)
|
|||
*/
|
||||
break;
|
||||
}
|
||||
Curl_pgrsTime(data, TIMER_REDIRECT);
|
||||
Curl_pgrsResetTimes(data);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -451,6 +451,7 @@ struct Progress {
|
|||
double t_connect;
|
||||
double t_pretransfer;
|
||||
double t_starttransfer;
|
||||
double t_redirect;
|
||||
|
||||
struct timeval start;
|
||||
struct timeval t_startsingle;
|
||||
|
|
Загрузка…
Ссылка в новой задаче