## NAME

curl_easy_getinfo - extract information from a curl handle

## SYNOPSIS

#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );

## DESCRIPTION

Request internal information from the curl session with this function. The third argument MUST 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.

## AVAILABLE INFORMATION

The following information can be extracted:

CURLINFO_EFFECTIVE_URL

Last used URL. See CURLINFO_EFFECTIVE_URL(3)

CURLINFO_RESPONSE_CODE

Last received response code. See CURLINFO_RESPONSE_CODE(3)

CURLINFO_HTTP_CONNECTCODE

Last proxy CONNECT response code. See CURLINFO_HTTP_CONNECTCODE(3)

CURLINFO_HTTP_VERSION

The http version used in the connection. See CURLINFO_HTTP_VERSION(3)

CURLINFO_FILETIME

Remote time of the retrieved document. See CURLINFO_FILETIME(3)

CURLINFO_TOTAL_TIME

Total time of previous transfer. See CURLINFO_TOTAL_TIME(3)

CURLINFO_NAMELOOKUP_TIME

Time from start until name resolving completed. See CURLINFO_NAMELOOKUP_TIME(3)

CURLINFO_CONNECT_TIME

Time from start until remote host or proxy completed. See CURLINFO_CONNECT_TIME(3)

CURLINFO_APPCONNECT_TIME

Time from start until SSL/SSH handshake completed. See CURLINFO_APPCONNECT_TIME(3)

CURLINFO_PRETRANSFER_TIME

Time from start until just before the transfer begins. See CURLINFO_PRETRANSFER_TIME(3)

CURLINFO_STARTTRANSFER_TIME

Time from start until just when the first byte is received. See CURLINFO_STARTTRANSFER_TIME(3)

CURLINFO_REDIRECT_TIME

Time taken for all redirect steps before the final transfer. See CURLINFO_REDIRECT_TIME(3)

CURLINFO_REDIRECT_COUNT

Total number of redirects that were followed. See CURLINFO_REDIRECT_COUNT(3)

CURLINFO_REDIRECT_URL

URL a redirect would take you to, had you enabled redirects. See CURLINFO_REDIRECT_URL(3)

CURLINFO_SIZE_UPLOAD

Number of bytes uploaded. See CURLINFO_SIZE_UPLOAD(3)

CURLINFO_SIZE_DOWNLOAD

Number of bytes downloaded. See CURLINFO_SIZE_DOWNLOAD(3)

CURLINFO_SPEED_DOWNLOAD

Average download speed. See CURLINFO_SPEED_DOWNLOAD(3)

CURLINFO_SPEED_UPLOAD

Average upload speed. See CURLINFO_SPEED_UPLOAD(3)

CURLINFO_HEADER_SIZE

Number of bytes of all headers received. See CURLINFO_HEADER_SIZE(3)

CURLINFO_REQUEST_SIZE

Number of bytes sent in the issued HTTP requests. See CURLINFO_REQUEST_SIZE(3)

CURLINFO_SSL_VERIFYRESULT

Certificate verification result. See CURLINFO_SSL_VERIFYRESULT(3)

CURLINFO_SSL_ENGINES

A list of OpenSSL crypto engines. See CURLINFO_SSL_ENGINES(3)

CURLINFO_CONTENT_LENGTH_DOWNLOAD

Content length from the Content-Length header. See CURLINFO_CONTENT_LENGTH_DOWNLOAD(3)

CURLINFO_CONTENT_LENGTH_UPLOAD

Upload size. See CURLINFO_CONTENT_LENGTH_UPLOAD(3)

CURLINFO_CONTENT_TYPE

Content type from the Content-Type header. See CURLINFO_CONTENT_TYPE(3)

CURLINFO_PRIVATE

User's private data pointer. See CURLINFO_PRIVATE(3)

CURLINFO_HTTPAUTH_AVAIL

Available HTTP authentication methods. See CURLINFO_HTTPAUTH_AVAIL(3)

CURLINFO_PROXYAUTH_AVAIL

Available HTTP proxy authentication methods. See CURLINFO_PROXYAUTH_AVAIL(3)

CURLINFO_OS_ERRNO

The errno from the last failure to connect. See CURLINFO_OS_ERRNO(3)

CURLINFO_NUM_CONNECTS

Number of new successful connections used for previous transfer. See CURLINFO_NUM_CONNECTS(3)

CURLINFO_PRIMARY_IP

IP address of the last connection. See CURLINFO_PRIMARY_IP(3)

CURLINFO_PRIMARY_PORT

Port of the last connection. See CURLINFO_PRIMARY_PORT(3)

CURLINFO_LOCAL_IP

Local-end IP address of last connection. See CURLINFO_LOCAL_IP(3)

CURLINFO_LOCAL_PORT

Local-end port of last connection. See CURLINFO_LOCAL_PORT(3)

CURLINFO_COOKIELIST

List of all known cookies. See CURLINFO_COOKIELIST(3)

CURLINFO_LASTSOCKET

Last socket used. See CURLINFO_LASTSOCKET(3)

CURLINFO_ACTIVESOCKET

The session's active socket. See CURLINFO_ACTIVESOCKET(3)

CURLINFO_FTP_ENTRY_PATH

The entry path after logging in to an FTP server. See CURLINFO_FTP_ENTRY_PATH(3)

CURLINFO_CERTINFO

Certificate chain. See CURLINFO_CERTINFO(3)

CURLINFO_TLS_SSL_PTR

TLS session info that can be used for further processing. See CURLINFO_TLS_SSL_PTR(3)

CURLINFO_TLS_SESSION

TLS session info that can be used for further processing. See CURLINFO_TLS_SESSION(3). Deprecated option, use CURLINFO_TLS_SSL_PTR(3) instead!

CURLINFO_CONDITION_UNMET

Whether or not a time conditional was met. See CURLINFO_CONDITION_UNMET(3)

CURLINFO_RTSP_SESSION_ID

RTSP session ID. See CURLINFO_RTSP_SESSION_ID(3)

CURLINFO_RTSP_CLIENT_CSEQ

RTSP CSeq that will next be used. See CURLINFO_RTSP_CLIENT_CSEQ(3)

CURLINFO_RTSP_SERVER_CSEQ

RTSP CSeq that will next be expected. See CURLINFO_RTSP_SERVER_CSEQ(3)

CURLINFO_RTSP_CSEQ_RECV

RTSP CSeq last received. See CURLINFO_RTSP_CSEQ_RECV(3)

## TIMES

    An overview of the six time values available from curl_easy_getinfo()

    curl_easy_perform()
        |
        |--NAMELOOKUP
        |--|--CONNECT
        |--|--|--APPCONNECT
        |--|--|--|--PRETRANSFER
        |--|--|--|--|--STARTTRANSFER
        |--|--|--|--|--|--TOTAL
        |--|--|--|--|--|--REDIRECT

NAMELOOKUP

CURLINFO_NAMELOOKUP_TIME. The time it took from the start until the name resolving was completed.

CONNECT

CURLINFO_CONNECT_TIME. The time it took from the start until the connect to the remote host (or proxy) was completed.

APPCONNECT

CURLINFO_APPCONNECT_TIME. The time it took from the start until the SSL connect/handshake with the remote host was completed. (Added in in 7.19.0)

PRETRANSFER

CURLINFO_PRETRANSFER_TIME. 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.

STARTTRANSFER

CURLINFO_STARTTRANSFER_TIME. The time it took from the start until the first byte is received by libcurl.

TOTAL

CURLINFO_TOTAL_TIME. Total time of the previous request.

REDIRECT

CURLINFO_REDIRECT_TIME. 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.

## RETURN VALUE

If the operation was successful, CURLE_OK is returned. Otherwise an appropriate error code will be returned.

## SEE ALSO

curl_easy_setopt

This HTML page was made with roffit.