.\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 - 2015, Daniel Stenberg, , 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 http://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 curl_easy_getinfo 3 "11 Feb 2009" "libcurl 7.19.4" "libcurl Manual" .SH NAME curl_easy_getinfo - extract information from a curl handle .SH SYNOPSIS .B #include .B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );" .SH DESCRIPTION Request internal information from the curl session with this function. The third argument \fBMUST\fP be a pointer to a long, a pointer to a char *, a pointer to a struct curl_slist * or a pointer to a double (as this documentation describes further down). The data pointed-to will be filled in accordingly and can be relied upon only if the function returns CURLE_OK. Use this function AFTER a performed transfer if you want to get transfer related data. You should not free the memory returned by this function unless it is explicitly mentioned below. .SH AVAILABLE INFORMATION The following information can be extracted: .IP CURLINFO_EFFECTIVE_URL See \fICURLINFO_EFFECTIVE_URL(3)\fP .IP CURLINFO_RESPONSE_CODE See \fICURLINFO_RESPONSE_CODE(3)\fP .IP CURLINFO_HTTP_CONNECTCODE See \fICURLINFO_HTTP_CONNECTCODE(3)\fP .IP CURLINFO_FILETIME See \fICURLINFO_FILETIME(3)\fP .IP CURLINFO_TOTAL_TIME See \fICURLINFO_TOTAL_TIME(3)\fP .IP CURLINFO_NAMELOOKUP_TIME See \fICURLINFO_NAMELOOKUP_TIME(3)\fP .IP CURLINFO_CONNECT_TIME See \fICURLINFO_CONNECT_TIME(3)\fP .IP CURLINFO_APPCONNECT_TIME See \fICURLINFO_APPCONNECT_TIME(3)\fP .IP CURLINFO_PRETRANSFER_TIME See \fICURLINFO_PRETRANSFER_TIME(3)\fP .IP CURLINFO_STARTTRANSFER_TIME See \fICURLINFO_STARTTRANSFER_TIME(3)\fP .IP CURLINFO_REDIRECT_TIME See \fICURLINFO_REDIRECT_TIME(3)\fP .IP CURLINFO_REDIRECT_COUNT See \fICURLINFO_REDIRECT_COUNT(3)\fP .IP CURLINFO_REDIRECT_URL See \fICURLINFO_REDIRECT_URL(3)\fP .IP CURLINFO_SIZE_UPLOAD See \fICURLINFO_SIZE_UPLOAD(3)\fP .IP CURLINFO_SIZE_DOWNLOAD See \fICURLINFO_SIZE_DOWNLOAD(3)\fP .IP CURLINFO_SPEED_DOWNLOAD See \fICURLINFO_SPEED_DOWNLOAD(3)\fP .IP CURLINFO_SPEED_UPLOAD See \fICURLINFO_SPEED_UPLOAD(3)\fP .IP CURLINFO_HEADER_SIZE See \fICURLINFO_HEADER_SIZE(3)\fP .IP CURLINFO_REQUEST_SIZE See \fICURLINFO_REQUEST_SIZE(3)\fP .IP CURLINFO_SSL_VERIFYRESULT See \fICURLINFO_SSL_VERIFYRESULT(3)\fP .IP CURLINFO_SSL_ENGINES See \fICURLINFO_SSL_ENGINES(3)\fP .IP CURLINFO_CONTENT_LENGTH_DOWNLOAD See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD(3)\fP .IP CURLINFO_CONTENT_LENGTH_UPLOAD See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP .IP CURLINFO_CONTENT_TYPE See \fICURLINFO_CONTENT_TYPE(3)\fP .IP CURLINFO_PRIVATE See \fICURLINFO_PRIVATE(3)\fP .IP CURLINFO_HTTPAUTH_AVAIL See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP .IP CURLINFO_PROXYAUTH_AVAIL See \fICURLINFO_PROXYAUTH_AVAIL(3)\fP .IP CURLINFO_OS_ERRNO See \fICURLINFO_OS_ERRNO(3)\fP .IP CURLINFO_NUM_CONNECTS See \fICURLINFO_NUM_CONNECTS(3)\fP .IP CURLINFO_PRIMARY_IP See \fICURLINFO_PRIMARY_IP(3)\fP .IP CURLINFO_PRIMARY_PORT See \fICURLINFO_PRIMARY_PORT(3)\fP .IP CURLINFO_LOCAL_IP See \fICURLINFO_LOCAL_IP(3)\fP .IP CURLINFO_LOCAL_PORT See \fICURLINFO_LOCAL_PORT(3)\fP .IP CURLINFO_COOKIELIST See \fICURLINFO_COOKIELIST(3)\fP .IP CURLINFO_LASTSOCKET See \fICURLINFO_LASTSOCKET(3)\fP .IP CURLINFO_ACTIVESOCKET See \fICURLINFO_ACTIVESOCKET(3)\fP .IP CURLINFO_FTP_ENTRY_PATH See \fICURLINFO_FTP_ENTRY_PATH(3)\fP .IP CURLINFO_CERTINFO See \fICURLINFO_CERTINFO(3)\fP .IP CURLINFO_TLS_SESSION See \fICURLINFO_TLS_SESSION(3)\fP .IP CURLINFO_CONDITION_UNMET See \fICURLINFO_CONDITION_UNMET(3)\fP .IP CURLINFO_RTSP_SESSION_ID See \fICURLINFO_RTSP_SESSION_ID(3)\fP .IP CURLINFO_RTSP_CLIENT_CSEQ See \fICURLINFO_RTSP_CLIENT_CSEQ(3)\fP .IP CURLINFO_RTSP_SERVER_CSEQ See \fICURLINFO_RTSP_SERVER_CSEQ(3)\fP .IP CURLINFO_RTSP_CSEQ_RECV See \fICURLINFO_RTSP_CSEQ_RECV(3)\fP .SH TIMES .nf An overview of the six time values available from curl_easy_getinfo() curl_easy_perform() | |--NAMELOOKUP |--|--CONNECT |--|--|--APPCONNECT |--|--|--|--PRETRANSFER |--|--|--|--|--STARTTRANSFER |--|--|--|--|--|--TOTAL |--|--|--|--|--|--REDIRECT .fi .IP NAMELOOKUP \fICURLINFO_NAMELOOKUP_TIME\fP. The time it took from the start until the name resolving was completed. .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 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 STARTTRANSFER \fICURLINFO_STARTTRANSFER_TIME\fP. The time it took from the start until the first byte is received by libcurl. .IP TOTAL \fICURLINFO_TOTAL_TIME\fP. Total time of the previous request. .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. .SH RETURN VALUE If the operation was successful, CURLE_OK is returned. Otherwise an appropriate error code will be returned. .SH "SEE ALSO" .BR curl_easy_setopt "(3)"