mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
getinfo: return sizes as curl_off_t
This change introduces new alternatives for the existing six curl_easy_getinfo() options that return sizes or speeds as doubles. The new versions are named like the old ones but with an appended '_T': CURLINFO_CONTENT_LENGTH_DOWNLOAD_T CURLINFO_CONTENT_LENGTH_UPLOAD_T CURLINFO_SIZE_DOWNLOAD_T CURLINFO_SIZE_UPLOAD_T CURLINFO_SPEED_DOWNLOAD_T CURLINFO_SPEED_UPLOAD_T Closes #1511
This commit is contained in:
parent
6208547002
commit
3b80d3ca46
@ -5,7 +5,7 @@
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
@ -84,17 +84,29 @@ See \fICURLINFO_REDIRECT_COUNT(3)\fP
|
||||
URL a redirect would take you to, had you enabled redirects.
|
||||
See \fICURLINFO_REDIRECT_URL(3)\fP
|
||||
.IP CURLINFO_SIZE_UPLOAD
|
||||
Number of bytes uploaded.
|
||||
(Deprecated) Number of bytes uploaded.
|
||||
See \fICURLINFO_SIZE_UPLOAD(3)\fP
|
||||
.IP CURLINFO_SIZE_UPLOAD_T
|
||||
Number of bytes uploaded.
|
||||
See \fICURLINFO_SIZE_UPLOAD_T(3)\fP
|
||||
.IP CURLINFO_SIZE_DOWNLOAD
|
||||
Number of bytes downloaded.
|
||||
(Deprecated) Number of bytes downloaded.
|
||||
See \fICURLINFO_SIZE_DOWNLOAD(3)\fP
|
||||
.IP CURLINFO_SIZE_DOWNLOAD_T
|
||||
Number of bytes downloaded.
|
||||
See \fICURLINFO_SIZE_DOWNLOAD_T(3)\fP
|
||||
.IP CURLINFO_SPEED_DOWNLOAD
|
||||
Average download speed.
|
||||
(Deprecated) Average download speed.
|
||||
See \fICURLINFO_SPEED_DOWNLOAD(3)\fP
|
||||
.IP CURLINFO_SPEED_DOWNLOAD_T
|
||||
Average download speed.
|
||||
See \fICURLINFO_SPEED_DOWNLOAD_T(3)\fP
|
||||
.IP CURLINFO_SPEED_UPLOAD
|
||||
Average upload speed.
|
||||
(Deprecated) Average upload speed.
|
||||
See \fICURLINFO_SPEED_UPLOAD(3)\fP
|
||||
.IP CURLINFO_SPEED_UPLOAD_T
|
||||
Average upload speed.
|
||||
See \fICURLINFO_SPEED_UPLOAD_T(3)\fP
|
||||
.IP CURLINFO_HEADER_SIZE
|
||||
Number of bytes of all headers received.
|
||||
See \fICURLINFO_HEADER_SIZE(3)\fP
|
||||
@ -111,11 +123,15 @@ See \fICURLINFO_PROXY_SSL_VERIFYRESULT(3)\fP
|
||||
A list of OpenSSL crypto engines.
|
||||
See \fICURLINFO_SSL_ENGINES(3)\fP
|
||||
.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
|
||||
Content length from the Content-Length header.
|
||||
(Deprecated) Content length from the Content-Length header.
|
||||
See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD(3)\fP
|
||||
.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
|
||||
Content length from the Content-Length header.
|
||||
See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP
|
||||
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
|
||||
Upload size.
|
||||
See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
|
||||
(Deprecated) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
|
||||
.IP CURLINFO_CONTENT_LENGTH_UPLOAD_T
|
||||
Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP
|
||||
.IP CURLINFO_CONTENT_TYPE
|
||||
Content type from the Content-Type header.
|
||||
See \fICURLINFO_CONTENT_TYPE(3)\fP
|
||||
|
@ -32,6 +32,9 @@ CURLcode curl_easy_getinfo(CURL *handle, 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. Since 7.19.4, this returns
|
||||
-1 if the size isn't known.
|
||||
|
||||
\fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
|
||||
sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
HTTP(S)
|
||||
.SH EXAMPLE
|
||||
|
62
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
Normal file
62
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
Normal file
@ -0,0 +1,62 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 3 "25 May 2017" "libcurl 7.55.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
|
||||
curl_off_t *content_length);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP to receive the content-length of the
|
||||
download. This is the value read from the Content-Length: field. Stores -1 if
|
||||
the size isn't known.
|
||||
.SH PROTOCOLS
|
||||
HTTP(S)
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the request */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
/* check the size */
|
||||
curl_off_t cl;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &cl);
|
||||
if(!res) {
|
||||
printf("Size: " CURL_FORMAT_CURL_OFF_T "\\n", cl);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_CONTENT_LENGTH_UPLOAD_T "(3), "
|
@ -31,6 +31,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD,
|
||||
.SH DESCRIPTION
|
||||
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.
|
||||
|
||||
\fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP is a newer replacement that returns a
|
||||
more sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
@ -45,7 +48,7 @@ if(curl) {
|
||||
if(!res) {
|
||||
/* check the size */
|
||||
double cl;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl);
|
||||
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_UPLOAD, &cl);
|
||||
if(!res) {
|
||||
printf("Size: %.0f\\n", cl);
|
||||
}
|
||||
@ -58,3 +61,4 @@ Added in 7.6.1
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_CONTENT_LENGTH_DOWNLOAD_T "(3), "
|
||||
|
61
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
Normal file
61
docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3
Normal file
@ -0,0 +1,61 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_CONTENT_LENGTH_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T,
|
||||
curl_off_t *content_length);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP to receive the specified size of the
|
||||
upload. Stores -1 if the size isn't known.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the upload */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
/* check the size */
|
||||
curl_off_t cl;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_UPLOAD_T, &cl);
|
||||
if(!res) {
|
||||
printf("Size: " CURL_FORMAT_CURL_OFF_T "\\n", cl);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_CONTENT_LENGTH_DOWNLOAD_T "(3), "
|
@ -33,6 +33,9 @@ downloaded. The amount is only for the latest transfer and will be reset
|
||||
again for each new transfer. This counts actual payload data, what's also
|
||||
commonly called body. All meta and header data are excluded and will not be
|
||||
counted in this number.
|
||||
|
||||
\fICURLINFO_SIZE_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
|
||||
sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
@ -60,3 +63,5 @@ Added in 7.4.1
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SIZE_DOWNLOAD_T "(3), "
|
||||
.BR CURLINFO_SIZE_UPLOAD_T "(3), "
|
||||
|
64
docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
Normal file
64
docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3
Normal file
@ -0,0 +1,64 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_SIZE_DOWNLOAD_T 3 "25 May 2017" "libcurl 7.55.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD_T, curl_off_t *dlp);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP 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. This counts actual payload data, what's also
|
||||
commonly called body. All meta and header data are excluded and will not be
|
||||
counted in this number.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the request */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
/* check the size */
|
||||
curl_off_t dl;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD_T, &dl);
|
||||
if(!res) {
|
||||
printf("Downloaded " CURL_FORMAT_CURL_OFF_T " bytes\\n", cl);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SIZE_DOWNLOAD "(3), "
|
||||
.BR CURLINFO_SIZE_UPLOAD_T "(3), "
|
@ -30,6 +30,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD, double *uploadp);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a double to receive the total amount of bytes that were
|
||||
uploaded.
|
||||
|
||||
\fICURLINFO_SIZE_UPLOAD_T(3)\fP is a newer replacement that returns a more
|
||||
sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
@ -56,3 +59,4 @@ Added in 7.4.1
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SIZE_DOWNLOAD_T "(3), " CURLINFO_SIZE_UPLOAD_T "(3), "
|
||||
|
59
docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
Normal file
59
docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3
Normal file
@ -0,0 +1,59 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_SIZE_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD_T, curl_off_t *uploadp);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP to receive the total amount of bytes that
|
||||
were uploaded.
|
||||
.SH PROTOCOLS
|
||||
All
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the request */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
curl_off_t ul;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_SIZE_UPLOAD_T, &ul);
|
||||
if(!res) {
|
||||
printf("Uploaded " CURL_FORMAT_CURL_OFF_T " bytes\\n", ul);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SIZE_DOWNLOAD_T "(3), " CURLINFO_SIZE_UPLOAD "(3), "
|
@ -30,6 +30,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD, double *speed)
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a double to receive the average download speed that curl
|
||||
measured for the complete download. Measured in bytes/second.
|
||||
|
||||
\fICURLINFO_SPEED_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
|
||||
sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
@ -56,3 +59,4 @@ Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SPEED_UPLOAD "(3), "
|
||||
.BR CURLINFO_SIZE_UPLOAD_T "(3), "
|
||||
|
59
docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
Normal file
59
docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3
Normal file
@ -0,0 +1,59 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_SPEED_DOWNLOAD_T 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD_T, curl_off_t *speed);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP to receive the average download speed
|
||||
that curl measured for the complete download. Measured in bytes/second.
|
||||
.SH PROTOCOLS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the request */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
curl_off_t speed;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD_T, &speed);
|
||||
if(!res) {
|
||||
printf("Download speed " CURL_FORMAT_CURL_OFF_T " bytes/sec\\n", ul);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SPEED_UPLOAD "(3), "
|
||||
.BR CURLINFO_SIZE_UPLOAD_T "(3), "
|
@ -30,6 +30,9 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD, double *speed);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a double to receive the average upload speed that curl
|
||||
measured for the complete upload. Measured in bytes/second.
|
||||
|
||||
\fICURLINFO_SPEED_UPLOAD_T(3)\fP is a newer replacement that returns a more
|
||||
sensible variable type.
|
||||
.SH PROTOCOLS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
|
58
docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
Normal file
58
docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3
Normal file
@ -0,0 +1,58 @@
|
||||
.\" **************************************************************************
|
||||
.\" * _ _ ____ _
|
||||
.\" * Project ___| | | | _ \| |
|
||||
.\" * / __| | | | |_) | |
|
||||
.\" * | (__| |_| | _ <| |___
|
||||
.\" * \___|\___/|_| \_\_____|
|
||||
.\" *
|
||||
.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
.\" *
|
||||
.\" * This software is licensed as described in the file COPYING, which
|
||||
.\" * you should have received as part of this distribution. The terms
|
||||
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
.\" *
|
||||
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
.\" * copies of the Software, and permit persons to whom the Software is
|
||||
.\" * furnished to do so, under the terms of the COPYING file.
|
||||
.\" *
|
||||
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
.\" * KIND, either express or implied.
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLINFO_SPEED_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" "curl_easy_getinfo options"
|
||||
.SH NAME
|
||||
CURLINFO_SPEED_UPLOAD_T \- get upload speed
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD_T, curl_off_t *speed);
|
||||
.SH DESCRIPTION
|
||||
Pass a pointer to a \fIcurl_off_t\fP to receive the average upload speed that
|
||||
curl measured for the complete upload. Measured in bytes/second.
|
||||
.SH PROTOCOLS
|
||||
.SH EXAMPLE
|
||||
.nf
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||
|
||||
/* Perform the request */
|
||||
res = curl_easy_perform(curl);
|
||||
|
||||
if(!res) {
|
||||
curl_off_t speed;
|
||||
res = curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD_T, &speed);
|
||||
if(!res) {
|
||||
printf("Upload speed " CURL_FORMAT_CURL_OFF_T " bytes/sec\\n", ul);
|
||||
}
|
||||
}
|
||||
}
|
||||
.fi
|
||||
.SH AVAILABILITY
|
||||
Added in 7.55.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
|
||||
.BR CURLINFO_SPEED_DOWNLOAD_T "(3), "
|
@ -208,7 +208,9 @@ CURLINFO_CERTINFO 7.19.1
|
||||
CURLINFO_CONDITION_UNMET 7.19.4
|
||||
CURLINFO_CONNECT_TIME 7.4.1
|
||||
CURLINFO_CONTENT_LENGTH_DOWNLOAD 7.6.1
|
||||
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T 7.55.0
|
||||
CURLINFO_CONTENT_LENGTH_UPLOAD 7.6.1
|
||||
CURLINFO_CONTENT_LENGTH_UPLOAD_T 7.55.0
|
||||
CURLINFO_CONTENT_TYPE 7.9.4
|
||||
CURLINFO_COOKIELIST 7.14.1
|
||||
CURLINFO_DATA_IN 7.9.6
|
||||
@ -234,6 +236,7 @@ CURLINFO_MASK 7.4.1
|
||||
CURLINFO_NAMELOOKUP_TIME 7.4.1
|
||||
CURLINFO_NONE 7.4.1
|
||||
CURLINFO_NUM_CONNECTS 7.12.3
|
||||
CURLINFO_OFF_T 7.55.0
|
||||
CURLINFO_OS_ERRNO 7.12.2
|
||||
CURLINFO_PRETRANSFER_TIME 7.4.1
|
||||
CURLINFO_PRIMARY_IP 7.19.0
|
||||
@ -254,11 +257,15 @@ CURLINFO_RTSP_SERVER_CSEQ 7.20.0
|
||||
CURLINFO_RTSP_SESSION_ID 7.20.0
|
||||
CURLINFO_SCHEME 7.52.0
|
||||
CURLINFO_SIZE_DOWNLOAD 7.4.1
|
||||
CURLINFO_SIZE_DOWNLOAD_T 7.55.0
|
||||
CURLINFO_SIZE_UPLOAD 7.4.1
|
||||
CURLINFO_SIZE_UPLOAD_T 7.55.0
|
||||
CURLINFO_SLIST 7.12.3
|
||||
CURLINFO_SOCKET 7.45.0
|
||||
CURLINFO_SPEED_DOWNLOAD 7.4.1
|
||||
CURLINFO_SPEED_DOWNLOAD_T 7.55.0
|
||||
CURLINFO_SPEED_UPLOAD 7.4.1
|
||||
CURLINFO_SPEED_UPLOAD_T 7.55.0
|
||||
CURLINFO_SSL_DATA_IN 7.12.1
|
||||
CURLINFO_SSL_DATA_OUT 7.12.1
|
||||
CURLINFO_SSL_ENGINES 7.12.3
|
||||
@ -415,8 +422,8 @@ CURLOPT_IOCTLDATA 7.12.3
|
||||
CURLOPT_IOCTLFUNCTION 7.12.3
|
||||
CURLOPT_IPRESOLVE 7.10.8
|
||||
CURLOPT_ISSUERCERT 7.19.0
|
||||
CURLOPT_KEYPASSWD 7.17.0
|
||||
CURLOPT_KEEP_SENDING_ON_ERROR 7.51.0
|
||||
CURLOPT_KEYPASSWD 7.17.0
|
||||
CURLOPT_KRB4LEVEL 7.3 7.17.0
|
||||
CURLOPT_KRBLEVEL 7.16.4
|
||||
CURLOPT_LOCALPORT 7.15.2
|
||||
@ -561,11 +568,11 @@ CURLOPT_STREAM_DEPENDS 7.46.0
|
||||
CURLOPT_STREAM_DEPENDS_E 7.46.0
|
||||
CURLOPT_STREAM_WEIGHT 7.46.0
|
||||
CURLOPT_SUPPRESS_CONNECT_HEADERS 7.54.0
|
||||
CURLOPT_TCP_FASTOPEN 7.49.0
|
||||
CURLOPT_TCP_KEEPALIVE 7.25.0
|
||||
CURLOPT_TCP_KEEPIDLE 7.25.0
|
||||
CURLOPT_TCP_KEEPINTVL 7.25.0
|
||||
CURLOPT_TCP_NODELAY 7.11.2
|
||||
CURLOPT_TCP_FASTOPEN 7.49.0
|
||||
CURLOPT_TELNETOPTIONS 7.7
|
||||
CURLOPT_TFTP_BLKSIZE 7.19.4
|
||||
CURLOPT_TFTP_NO_OPTIONS 7.48.0
|
||||
@ -634,8 +641,8 @@ CURLPROTO_SMTPS 7.20.0
|
||||
CURLPROTO_TELNET 7.19.4
|
||||
CURLPROTO_TFTP 7.19.4
|
||||
CURLPROXY_HTTP 7.10
|
||||
CURLPROXY_HTTP_1_0 7.19.4
|
||||
CURLPROXY_HTTPS 7.52.0
|
||||
CURLPROXY_HTTP_1_0 7.19.4
|
||||
CURLPROXY_SOCKS4 7.10
|
||||
CURLPROXY_SOCKS4A 7.18.0
|
||||
CURLPROXY_SOCKS5 7.10
|
||||
@ -728,8 +735,8 @@ CURL_HTTPPOST_READFILE 7.46.0
|
||||
CURL_HTTP_VERSION_1_0 7.9.1
|
||||
CURL_HTTP_VERSION_1_1 7.9.1
|
||||
CURL_HTTP_VERSION_2 7.43.0
|
||||
CURL_HTTP_VERSION_2_0 7.33.0
|
||||
CURL_HTTP_VERSION_2TLS 7.47.0
|
||||
CURL_HTTP_VERSION_2_0 7.33.0
|
||||
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE 7.49.0
|
||||
CURL_HTTP_VERSION_NONE 7.9.1
|
||||
CURL_IPRESOLVE_V4 7.10.8
|
||||
@ -791,8 +798,13 @@ CURL_SOCKET_TIMEOUT 7.14.0
|
||||
CURL_SOCKOPT_ALREADY_CONNECTED 7.21.5
|
||||
CURL_SOCKOPT_ERROR 7.21.5
|
||||
CURL_SOCKOPT_OK 7.21.5
|
||||
CURL_STRICTER 7.50.2
|
||||
CURL_SSLVERSION_DEFAULT 7.9.2
|
||||
CURL_SSLVERSION_MAX_DEFAULT 7.54.0
|
||||
CURL_SSLVERSION_MAX_NONE 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_0 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_1 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_2 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_3 7.54.0
|
||||
CURL_SSLVERSION_SSLv2 7.9.2
|
||||
CURL_SSLVERSION_SSLv3 7.9.2
|
||||
CURL_SSLVERSION_TLSv1 7.9.2
|
||||
@ -800,12 +812,7 @@ CURL_SSLVERSION_TLSv1_0 7.34.0
|
||||
CURL_SSLVERSION_TLSv1_1 7.34.0
|
||||
CURL_SSLVERSION_TLSv1_2 7.34.0
|
||||
CURL_SSLVERSION_TLSv1_3 7.52.0
|
||||
CURL_SSLVERSION_MAX_NONE 7.54.0
|
||||
CURL_SSLVERSION_MAX_DEFAULT 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_0 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_1 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_2 7.54.0
|
||||
CURL_SSLVERSION_MAX_TLSv1_3 7.54.0
|
||||
CURL_STRICTER 7.50.2
|
||||
CURL_TIMECOND_IFMODSINCE 7.9.7
|
||||
CURL_TIMECOND_IFUNMODSINCE 7.9.7
|
||||
CURL_TIMECOND_LASTMOD 7.9.7
|
||||
|
@ -2251,6 +2251,7 @@ struct curl_tlssessioninfo {
|
||||
#define CURLINFO_SLIST 0x400000
|
||||
#define CURLINFO_PTR 0x400000 /* same as SLIST */
|
||||
#define CURLINFO_SOCKET 0x500000
|
||||
#define CURLINFO_OFF_T 0x600000
|
||||
#define CURLINFO_MASK 0x0fffff
|
||||
#define CURLINFO_TYPEMASK 0xf00000
|
||||
|
||||
@ -2263,15 +2264,21 @@ typedef enum {
|
||||
CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5,
|
||||
CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
|
||||
CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7,
|
||||
CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7,
|
||||
CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8,
|
||||
CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8,
|
||||
CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9,
|
||||
CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9,
|
||||
CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10,
|
||||
CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10,
|
||||
CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11,
|
||||
CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12,
|
||||
CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13,
|
||||
CURLINFO_FILETIME = CURLINFO_LONG + 14,
|
||||
CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15,
|
||||
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15,
|
||||
CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16,
|
||||
CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16,
|
||||
CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
|
||||
CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18,
|
||||
CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
|
||||
|
@ -248,6 +248,37 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
|
||||
|
||||
#define DOUBLE_SECS(x) (double)(x)/1000000
|
||||
|
||||
static CURLcode getinfo_offt(struct Curl_easy *data, CURLINFO info,
|
||||
curl_off_t *param_offt)
|
||||
{
|
||||
switch(info) {
|
||||
case CURLINFO_SIZE_UPLOAD_T:
|
||||
*param_offt = data->progress.uploaded;
|
||||
break;
|
||||
case CURLINFO_SIZE_DOWNLOAD_T:
|
||||
*param_offt = data->progress.downloaded;
|
||||
break;
|
||||
case CURLINFO_SPEED_DOWNLOAD_T:
|
||||
*param_offt = data->progress.dlspeed;
|
||||
break;
|
||||
case CURLINFO_SPEED_UPLOAD_T:
|
||||
*param_offt = data->progress.ulspeed;
|
||||
break;
|
||||
case CURLINFO_CONTENT_LENGTH_DOWNLOAD_T:
|
||||
*param_offt = (data->progress.flags & PGRS_DL_SIZE_KNOWN)?
|
||||
data->progress.size_dl:-1;
|
||||
break;
|
||||
case CURLINFO_CONTENT_LENGTH_UPLOAD_T:
|
||||
*param_offt = (data->progress.flags & PGRS_UL_SIZE_KNOWN)?
|
||||
data->progress.size_ul:-1;
|
||||
break;
|
||||
default:
|
||||
return CURLE_UNKNOWN_OPTION;
|
||||
}
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
static CURLcode getinfo_double(struct Curl_easy *data, CURLINFO info,
|
||||
double *param_doublep)
|
||||
{
|
||||
@ -396,6 +427,7 @@ CURLcode Curl_getinfo(struct Curl_easy *data, CURLINFO info, ...)
|
||||
va_list arg;
|
||||
long *param_longp = NULL;
|
||||
double *param_doublep = NULL;
|
||||
curl_off_t *param_offt = NULL;
|
||||
const char **param_charp = NULL;
|
||||
struct curl_slist **param_slistp = NULL;
|
||||
curl_socket_t *param_socketp = NULL;
|
||||
@ -424,6 +456,11 @@ CURLcode Curl_getinfo(struct Curl_easy *data, CURLINFO info, ...)
|
||||
if(param_doublep)
|
||||
result = getinfo_double(data, info, param_doublep);
|
||||
break;
|
||||
case CURLINFO_OFF_T:
|
||||
param_offt = va_arg(arg, curl_off_t *);
|
||||
if(param_offt)
|
||||
result = getinfo_offt(data, info, param_offt);
|
||||
break;
|
||||
case CURLINFO_SLIST:
|
||||
param_slistp = va_arg(arg, struct curl_slist **);
|
||||
if(param_slistp)
|
||||
|
Loading…
Reference in New Issue
Block a user