Return to curl_easy_getinfo.3 CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / docs / libcurl |
1.1 ! misho 1: .\" ************************************************************************** ! 2: .\" * _ _ ____ _ ! 3: .\" * Project ___| | | | _ \| | ! 4: .\" * / __| | | | |_) | | ! 5: .\" * | (__| |_| | _ <| |___ ! 6: .\" * \___|\___/|_| \_\_____| ! 7: .\" * ! 8: .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. ! 9: .\" * ! 10: .\" * This software is licensed as described in the file COPYING, which ! 11: .\" * you should have received as part of this distribution. The terms ! 12: .\" * are also available at https://curl.haxx.se/docs/copyright.html. ! 13: .\" * ! 14: .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell ! 15: .\" * copies of the Software, and permit persons to whom the Software is ! 16: .\" * furnished to do so, under the terms of the COPYING file. ! 17: .\" * ! 18: .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY ! 19: .\" * KIND, either express or implied. ! 20: .\" * ! 21: .\" ************************************************************************** ! 22: .\" ! 23: .TH curl_easy_getinfo 3 "April 06, 2020" "libcurl 7.70.0" "libcurl Manual" ! 24: ! 25: .SH NAME ! 26: curl_easy_getinfo - extract information from a curl handle ! 27: .SH SYNOPSIS ! 28: .B #include <curl/curl.h> ! 29: ! 30: .B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );" ! 31: ! 32: .SH DESCRIPTION ! 33: Request internal information from the curl session with this function. The ! 34: third argument \fBMUST\fP be a pointer to a long, a pointer to a char *, a ! 35: pointer to a struct curl_slist * or a pointer to a double (as this ! 36: documentation describes further down). The data pointed-to will be filled in ! 37: accordingly and can be relied upon only if the function returns CURLE_OK. Use ! 38: this function AFTER a performed transfer if you want to get transfer related ! 39: data. ! 40: ! 41: You should not free the memory returned by this function unless it is ! 42: explicitly mentioned below. ! 43: .SH AVAILABLE INFORMATION ! 44: The following information can be extracted: ! 45: .IP CURLINFO_EFFECTIVE_URL ! 46: Last used URL. ! 47: See \fICURLINFO_EFFECTIVE_URL(3)\fP ! 48: .IP CURLINFO_RESPONSE_CODE ! 49: Last received response code. ! 50: See \fICURLINFO_RESPONSE_CODE(3)\fP ! 51: .IP CURLINFO_HTTP_CONNECTCODE ! 52: Last proxy CONNECT response code. ! 53: See \fICURLINFO_HTTP_CONNECTCODE(3)\fP ! 54: .IP CURLINFO_HTTP_VERSION ! 55: The http version used in the connection. ! 56: See \fICURLINFO_HTTP_VERSION(3)\fP ! 57: .IP CURLINFO_FILETIME ! 58: Remote time of the retrieved document. See \fICURLINFO_FILETIME(3)\fP ! 59: .IP CURLINFO_FILETIME_T ! 60: Remote time of the retrieved document. See \fICURLINFO_FILETIME_T(3)\fP ! 61: .IP CURLINFO_TOTAL_TIME ! 62: Total time of previous transfer. ! 63: See \fICURLINFO_TOTAL_TIME(3)\fP ! 64: .IP CURLINFO_TOTAL_TIME_T ! 65: Total time of previous transfer. ! 66: See \fICURLINFO_TOTAL_TIME_T(3)\fP ! 67: .IP CURLINFO_NAMELOOKUP_TIME ! 68: Time from start until name resolving completed. ! 69: See \fICURLINFO_NAMELOOKUP_TIME(3)\fP ! 70: .IP CURLINFO_NAMELOOKUP_TIME_T ! 71: Time from start until name resolving completed. ! 72: See \fICURLINFO_NAMELOOKUP_TIME_T(3)\fP ! 73: .IP CURLINFO_CONNECT_TIME ! 74: Time from start until remote host or proxy completed. ! 75: See \fICURLINFO_CONNECT_TIME(3)\fP ! 76: .IP CURLINFO_CONNECT_TIME_T ! 77: Time from start until remote host or proxy completed. ! 78: See \fICURLINFO_CONNECT_TIME_T(3)\fP ! 79: .IP CURLINFO_APPCONNECT_TIME ! 80: Time from start until SSL/SSH handshake completed. ! 81: See \fICURLINFO_APPCONNECT_TIME(3)\fP ! 82: .IP CURLINFO_APPCONNECT_TIME_T ! 83: Time from start until SSL/SSH handshake completed. ! 84: See \fICURLINFO_APPCONNECT_TIME_T(3)\fP ! 85: .IP CURLINFO_PRETRANSFER_TIME ! 86: Time from start until just before the transfer begins. ! 87: See \fICURLINFO_PRETRANSFER_TIME(3)\fP ! 88: .IP CURLINFO_PRETRANSFER_TIME_T ! 89: Time from start until just before the transfer begins. ! 90: See \fICURLINFO_PRETRANSFER_TIME_T(3)\fP ! 91: .IP CURLINFO_STARTTRANSFER_TIME ! 92: Time from start until just when the first byte is received. ! 93: See \fICURLINFO_STARTTRANSFER_TIME(3)\fP ! 94: .IP CURLINFO_STARTTRANSFER_TIME_T ! 95: Time from start until just when the first byte is received. ! 96: See \fICURLINFO_STARTTRANSFER_TIME_T(3)\fP ! 97: .IP CURLINFO_REDIRECT_TIME ! 98: Time taken for all redirect steps before the final transfer. ! 99: See \fICURLINFO_REDIRECT_TIME(3)\fP ! 100: .IP CURLINFO_REDIRECT_TIME_T ! 101: Time taken for all redirect steps before the final transfer. ! 102: See \fICURLINFO_REDIRECT_TIME_T(3)\fP ! 103: .IP CURLINFO_REDIRECT_COUNT ! 104: Total number of redirects that were followed. ! 105: See \fICURLINFO_REDIRECT_COUNT(3)\fP ! 106: .IP CURLINFO_REDIRECT_URL ! 107: URL a redirect would take you to, had you enabled redirects. ! 108: See \fICURLINFO_REDIRECT_URL(3)\fP ! 109: .IP CURLINFO_SIZE_UPLOAD ! 110: (Deprecated) Number of bytes uploaded. ! 111: See \fICURLINFO_SIZE_UPLOAD(3)\fP ! 112: .IP CURLINFO_SIZE_UPLOAD_T ! 113: Number of bytes uploaded. ! 114: See \fICURLINFO_SIZE_UPLOAD_T(3)\fP ! 115: .IP CURLINFO_SIZE_DOWNLOAD ! 116: (Deprecated) Number of bytes downloaded. ! 117: See \fICURLINFO_SIZE_DOWNLOAD(3)\fP ! 118: .IP CURLINFO_SIZE_DOWNLOAD_T ! 119: Number of bytes downloaded. ! 120: See \fICURLINFO_SIZE_DOWNLOAD_T(3)\fP ! 121: .IP CURLINFO_SPEED_DOWNLOAD ! 122: (Deprecated) Average download speed. ! 123: See \fICURLINFO_SPEED_DOWNLOAD(3)\fP ! 124: .IP CURLINFO_SPEED_DOWNLOAD_T ! 125: Average download speed. ! 126: See \fICURLINFO_SPEED_DOWNLOAD_T(3)\fP ! 127: .IP CURLINFO_SPEED_UPLOAD ! 128: (Deprecated) Average upload speed. ! 129: See \fICURLINFO_SPEED_UPLOAD(3)\fP ! 130: .IP CURLINFO_SPEED_UPLOAD_T ! 131: Average upload speed. ! 132: See \fICURLINFO_SPEED_UPLOAD_T(3)\fP ! 133: .IP CURLINFO_HEADER_SIZE ! 134: Number of bytes of all headers received. ! 135: See \fICURLINFO_HEADER_SIZE(3)\fP ! 136: .IP CURLINFO_REQUEST_SIZE ! 137: Number of bytes sent in the issued HTTP requests. ! 138: See \fICURLINFO_REQUEST_SIZE(3)\fP ! 139: .IP CURLINFO_SSL_VERIFYRESULT ! 140: Certificate verification result. ! 141: See \fICURLINFO_SSL_VERIFYRESULT(3)\fP ! 142: .IP CURLINFO_PROXY_SSL_VERIFYRESULT ! 143: Proxy certificate verification result. ! 144: See \fICURLINFO_PROXY_SSL_VERIFYRESULT(3)\fP ! 145: .IP CURLINFO_SSL_ENGINES ! 146: A list of OpenSSL crypto engines. ! 147: See \fICURLINFO_SSL_ENGINES(3)\fP ! 148: .IP CURLINFO_CONTENT_LENGTH_DOWNLOAD ! 149: (Deprecated) Content length from the Content-Length header. ! 150: See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD(3)\fP ! 151: .IP CURLINFO_CONTENT_LENGTH_DOWNLOAD_T ! 152: Content length from the Content-Length header. ! 153: See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP ! 154: .IP CURLINFO_CONTENT_LENGTH_UPLOAD ! 155: (Deprecated) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP ! 156: .IP CURLINFO_CONTENT_LENGTH_UPLOAD_T ! 157: Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP ! 158: .IP CURLINFO_CONTENT_TYPE ! 159: Content type from the Content-Type header. ! 160: See \fICURLINFO_CONTENT_TYPE(3)\fP ! 161: .IP CURLINFO_RETRY_AFTER ! 162: The value from the from the Retry-After header. ! 163: See \fICURLINFO_RETRY_AFTER(3)\fP ! 164: .IP CURLINFO_PRIVATE ! 165: User's private data pointer. ! 166: See \fICURLINFO_PRIVATE(3)\fP ! 167: .IP CURLINFO_HTTPAUTH_AVAIL ! 168: Available HTTP authentication methods. ! 169: See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP ! 170: .IP CURLINFO_PROXYAUTH_AVAIL ! 171: Available HTTP proxy authentication methods. ! 172: See \fICURLINFO_PROXYAUTH_AVAIL(3)\fP ! 173: .IP CURLINFO_OS_ERRNO ! 174: The errno from the last failure to connect. ! 175: See \fICURLINFO_OS_ERRNO(3)\fP ! 176: .IP CURLINFO_NUM_CONNECTS ! 177: Number of new successful connections used for previous transfer. ! 178: See \fICURLINFO_NUM_CONNECTS(3)\fP ! 179: .IP CURLINFO_PRIMARY_IP ! 180: IP address of the last connection. ! 181: See \fICURLINFO_PRIMARY_IP(3)\fP ! 182: .IP CURLINFO_PRIMARY_PORT ! 183: Port of the last connection. ! 184: See \fICURLINFO_PRIMARY_PORT(3)\fP ! 185: .IP CURLINFO_LOCAL_IP ! 186: Local-end IP address of last connection. ! 187: See \fICURLINFO_LOCAL_IP(3)\fP ! 188: .IP CURLINFO_LOCAL_PORT ! 189: Local-end port of last connection. ! 190: See \fICURLINFO_LOCAL_PORT(3)\fP ! 191: .IP CURLINFO_COOKIELIST ! 192: List of all known cookies. ! 193: See \fICURLINFO_COOKIELIST(3)\fP ! 194: .IP CURLINFO_LASTSOCKET ! 195: Last socket used. ! 196: See \fICURLINFO_LASTSOCKET(3)\fP ! 197: .IP CURLINFO_ACTIVESOCKET ! 198: The session's active socket. ! 199: See \fICURLINFO_ACTIVESOCKET(3)\fP ! 200: .IP CURLINFO_FTP_ENTRY_PATH ! 201: The entry path after logging in to an FTP server. ! 202: See \fICURLINFO_FTP_ENTRY_PATH(3)\fP ! 203: .IP CURLINFO_CERTINFO ! 204: Certificate chain. ! 205: See \fICURLINFO_CERTINFO(3)\fP ! 206: .IP CURLINFO_TLS_SSL_PTR ! 207: TLS session info that can be used for further processing. ! 208: See \fICURLINFO_TLS_SSL_PTR(3)\fP ! 209: .IP CURLINFO_TLS_SESSION ! 210: TLS session info that can be used for further processing. See ! 211: \fICURLINFO_TLS_SESSION(3)\fP. Deprecated option, use ! 212: \fICURLINFO_TLS_SSL_PTR(3)\fP instead! ! 213: .IP CURLINFO_CONDITION_UNMET ! 214: Whether or not a time conditional was met or 304 HTTP response. ! 215: See \fICURLINFO_CONDITION_UNMET(3)\fP ! 216: .IP CURLINFO_RTSP_SESSION_ID ! 217: RTSP session ID. ! 218: See \fICURLINFO_RTSP_SESSION_ID(3)\fP ! 219: .IP CURLINFO_RTSP_CLIENT_CSEQ ! 220: RTSP CSeq that will next be used. ! 221: See \fICURLINFO_RTSP_CLIENT_CSEQ(3)\fP ! 222: .IP CURLINFO_RTSP_SERVER_CSEQ ! 223: RTSP CSeq that will next be expected. ! 224: See \fICURLINFO_RTSP_SERVER_CSEQ(3)\fP ! 225: .IP CURLINFO_RTSP_CSEQ_RECV ! 226: RTSP CSeq last received. ! 227: See \fICURLINFO_RTSP_CSEQ_RECV(3)\fP ! 228: .IP CURLINFO_PROTOCOL ! 229: The protocol used for the connection. (Added in 7.52.0) ! 230: See \fICURLINFO_PROTOCOL(3)\fP ! 231: .IP CURLINFO_SCHEME ! 232: The scheme used for the connection. (Added in 7.52.0) ! 233: See \fICURLINFO_SCHEME(3)\fP ! 234: .SH TIMES ! 235: .nf ! 236: An overview of the six time values available from curl_easy_getinfo() ! 237: ! 238: curl_easy_perform() ! 239: | ! 240: |--NAMELOOKUP ! 241: |--|--CONNECT ! 242: |--|--|--APPCONNECT ! 243: |--|--|--|--PRETRANSFER ! 244: |--|--|--|--|--STARTTRANSFER ! 245: |--|--|--|--|--|--TOTAL ! 246: |--|--|--|--|--|--REDIRECT ! 247: .fi ! 248: .IP NAMELOOKUP ! 249: \fICURLINFO_NAMELOOKUP_TIME\fP and \fICURLINFO_NAMELOOKUP_TIME_T\fP. ! 250: The time it took from the start until the name resolving was completed. ! 251: .IP CONNECT ! 252: \fICURLINFO_CONNECT_TIME\fP and \fICURLINFO_CONNECT_TIME_T\fP. ! 253: The time it took from the start until the connect ! 254: to the remote host (or proxy) was completed. ! 255: .IP APPCONNECT ! 256: \fICURLINFO_APPCONNECT_TIME\fP and \fICURLINFO_APPCONNECT_TIME_T\fP. ! 257: The time it took from the start until the SSL ! 258: connect/handshake with the remote host was completed. (Added in 7.19.0) ! 259: The latter is the integer version (measuring microseconds). (Added in 7.60.0) ! 260: .IP PRETRANSFER ! 261: \fICURLINFO_PRETRANSFER_TIME\fP and \fICURLINFO_PRETRANSFER_TIME_T\fP. ! 262: The time it took from the start until the ! 263: file transfer is just about to begin. This includes all pre-transfer commands ! 264: and negotiations that are specific to the particular protocol(s) involved. ! 265: .IP STARTTRANSFER ! 266: \fICURLINFO_STARTTRANSFER_TIME\fP and \fICURLINFO_STARTTRANSFER_TIME_T\fP. ! 267: The time it took from the start until the ! 268: first byte is received by libcurl. ! 269: .IP TOTAL ! 270: \fICURLINFO_TOTAL_TIME\fP and \fICURLINFO_TOTAL_TIME_T\fP. ! 271: Total time of the previous request. ! 272: .IP REDIRECT ! 273: \fICURLINFO_REDIRECT_TIME\fP and \fICURLINFO_REDIRECT_TIME_T\fP. ! 274: The time it took for all redirection steps ! 275: include name lookup, connect, pretransfer and transfer before final ! 276: transaction was started. So, this is zero if no redirection took place. ! 277: .SH RETURN VALUE ! 278: If the operation was successful, CURLE_OK is returned. Otherwise an ! 279: appropriate error code will be returned. ! 280: .SH "SEE ALSO" ! 281: .BR curl_easy_setopt "(3)"