1curl_easy_getinfo(3) libcurl Manual curl_easy_getinfo(3)
2
3
4
6 curl_easy_getinfo - extract information from a curl handle
7
9 #include <curl/curl.h>
10
11 CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );
12
13
15 Request internal information from the curl session with this function.
16 The third argument MUST be a pointer to a long, a pointer to a char *,
17 a pointer to a struct curl_slist * or a pointer to a double (as this
18 documentation describes further down). The data pointed-to will be
19 filled in accordingly and can be relied upon only if the function
20 returns CURLE_OK. Use this function AFTER a performed transfer if you
21 want to get transfer related data.
22
23 You should not free the memory returned by this function unless it is
24 explicitly mentioned below.
25
27 The following information can be extracted:
28
29 CURLINFO_EFFECTIVE_URL
30 Last used URL. See CURLINFO_EFFECTIVE_URL(3)
31
32 CURLINFO_RESPONSE_CODE
33 Last received response code. See CURLINFO_RESPONSE_CODE(3)
34
35 CURLINFO_HTTP_CONNECTCODE
36 Last proxy CONNECT response code. See CURLINFO_HTTP_CONNECT‐
37 CODE(3)
38
39 CURLINFO_HTTP_VERSION
40 The http version used in the connection. See CURLINFO_HTTP_VER‐
41 SION(3)
42
43 CURLINFO_FILETIME
44 Remote time of the retrieved document. See CURLINFO_FILETIME(3)
45
46 CURLINFO_FILETIME_T
47 Remote time of the retrieved document. See CURLINFO_FILE‐
48 TIME_T(3)
49
50 CURLINFO_TOTAL_TIME
51 Total time of previous transfer. See CURLINFO_TOTAL_TIME(3)
52
53 CURLINFO_TOTAL_TIME_T
54 Total time of previous transfer. See CURLINFO_TOTAL_TIME_T(3)
55
56 CURLINFO_NAMELOOKUP_TIME
57 Time from start until name resolving completed. See
58 CURLINFO_NAMELOOKUP_TIME(3)
59
60 CURLINFO_NAMELOOKUP_TIME_T
61 Time from start until name resolving completed. See
62 CURLINFO_NAMELOOKUP_TIME_T(3)
63
64 CURLINFO_CONNECT_TIME
65 Time from start until remote host or proxy completed. See
66 CURLINFO_CONNECT_TIME(3)
67
68 CURLINFO_CONNECT_TIME_T
69 Time from start until remote host or proxy completed. See
70 CURLINFO_CONNECT_TIME_T(3)
71
72 CURLINFO_APPCONNECT_TIME
73 Time from start until SSL/SSH handshake completed. See
74 CURLINFO_APPCONNECT_TIME(3)
75
76 CURLINFO_APPCONNECT_TIME_T
77 Time from start until SSL/SSH handshake completed. See
78 CURLINFO_APPCONNECT_TIME_T(3)
79
80 CURLINFO_PRETRANSFER_TIME
81 Time from start until just before the transfer begins. See
82 CURLINFO_PRETRANSFER_TIME(3)
83
84 CURLINFO_PRETRANSFER_TIME_T
85 Time from start until just before the transfer begins. See
86 CURLINFO_PRETRANSFER_TIME_T(3)
87
88 CURLINFO_STARTTRANSFER_TIME
89 Time from start until just when the first byte is received. See
90 CURLINFO_STARTTRANSFER_TIME(3)
91
92 CURLINFO_STARTTRANSFER_TIME_T
93 Time from start until just when the first byte is received. See
94 CURLINFO_STARTTRANSFER_TIME_T(3)
95
96 CURLINFO_REDIRECT_TIME
97 Time taken for all redirect steps before the final transfer.
98 See CURLINFO_REDIRECT_TIME(3)
99
100 CURLINFO_REDIRECT_TIME_T
101 Time taken for all redirect steps before the final transfer.
102 See CURLINFO_REDIRECT_TIME_T(3)
103
104 CURLINFO_REDIRECT_COUNT
105 Total number of redirects that were followed. See CURLINFO_RE‐
106 DIRECT_COUNT(3)
107
108 CURLINFO_REDIRECT_URL
109 URL a redirect would take you to, had you enabled redirects.
110 See CURLINFO_REDIRECT_URL(3)
111
112 CURLINFO_SIZE_UPLOAD
113 (Deprecated) Number of bytes uploaded. See
114 CURLINFO_SIZE_UPLOAD(3)
115
116 CURLINFO_SIZE_UPLOAD_T
117 Number of bytes uploaded. See CURLINFO_SIZE_UPLOAD_T(3)
118
119 CURLINFO_SIZE_DOWNLOAD
120 (Deprecated) Number of bytes downloaded. See
121 CURLINFO_SIZE_DOWNLOAD(3)
122
123 CURLINFO_SIZE_DOWNLOAD_T
124 Number of bytes downloaded. See CURLINFO_SIZE_DOWNLOAD_T(3)
125
126 CURLINFO_SPEED_DOWNLOAD
127 (Deprecated) Average download speed. See CURLINFO_SPEED_DOWN‐
128 LOAD(3)
129
130 CURLINFO_SPEED_DOWNLOAD_T
131 Average download speed. See CURLINFO_SPEED_DOWNLOAD_T(3)
132
133 CURLINFO_SPEED_UPLOAD
134 (Deprecated) Average upload speed. See CURLINFO_SPEED_UPLOAD(3)
135
136 CURLINFO_SPEED_UPLOAD_T
137 Average upload speed. See CURLINFO_SPEED_UPLOAD_T(3)
138
139 CURLINFO_HEADER_SIZE
140 Number of bytes of all headers received. See
141 CURLINFO_HEADER_SIZE(3)
142
143 CURLINFO_REQUEST_SIZE
144 Number of bytes sent in the issued HTTP requests. See
145 CURLINFO_REQUEST_SIZE(3)
146
147 CURLINFO_SSL_VERIFYRESULT
148 Certificate verification result. See CURLINFO_SSL_VERIFYRE‐
149 SULT(3)
150
151 CURLINFO_PROXY_SSL_VERIFYRESULT
152 Proxy certificate verification result. See
153 CURLINFO_PROXY_SSL_VERIFYRESULT(3)
154
155 CURLINFO_SSL_ENGINES
156 A list of OpenSSL crypto engines. See CURLINFO_SSL_ENGINES(3)
157
158 CURLINFO_CONTENT_LENGTH_DOWNLOAD
159 (Deprecated) Content length from the Content-Length header. See
160 CURLINFO_CONTENT_LENGTH_DOWNLOAD(3)
161
162 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
163 Content length from the Content-Length header. See
164 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)
165
166 CURLINFO_CONTENT_LENGTH_UPLOAD
167 (Deprecated) Upload size. See CURLINFO_CONTENT_LENGTH_UPLOAD(3)
168
169 CURLINFO_CONTENT_LENGTH_UPLOAD_T
170 Upload size. See CURLINFO_CONTENT_LENGTH_UPLOAD_T(3)
171
172 CURLINFO_CONTENT_TYPE
173 Content type from the Content-Type header. See CURLINFO_CON‐
174 TENT_TYPE(3)
175
176 CURLINFO_RETRY_AFTER
177 The value from the from the Retry-After header. See
178 CURLINFO_RETRY_AFTER(3)
179
180 CURLINFO_PRIVATE
181 User's private data pointer. See CURLINFO_PRIVATE(3)
182
183 CURLINFO_HTTPAUTH_AVAIL
184 Available HTTP authentication methods. See
185 CURLINFO_HTTPAUTH_AVAIL(3)
186
187 CURLINFO_PROXYAUTH_AVAIL
188 Available HTTP proxy authentication methods. See CURLINFO_PROX‐
189 YAUTH_AVAIL(3)
190
191 CURLINFO_OS_ERRNO
192 The errno from the last failure to connect. See
193 CURLINFO_OS_ERRNO(3)
194
195 CURLINFO_NUM_CONNECTS
196 Number of new successful connections used for previous transfer.
197 See CURLINFO_NUM_CONNECTS(3)
198
199 CURLINFO_PRIMARY_IP
200 IP address of the last connection. See CURLINFO_PRIMARY_IP(3)
201
202 CURLINFO_PRIMARY_PORT
203 Port of the last connection. See CURLINFO_PRIMARY_PORT(3)
204
205 CURLINFO_LOCAL_IP
206 Local-end IP address of last connection. See
207 CURLINFO_LOCAL_IP(3)
208
209 CURLINFO_LOCAL_PORT
210 Local-end port of last connection. See CURLINFO_LOCAL_PORT(3)
211
212 CURLINFO_COOKIELIST
213 List of all known cookies. See CURLINFO_COOKIELIST(3)
214
215 CURLINFO_LASTSOCKET
216 Last socket used. See CURLINFO_LASTSOCKET(3)
217
218 CURLINFO_ACTIVESOCKET
219 The session's active socket. See CURLINFO_ACTIVESOCKET(3)
220
221 CURLINFO_FTP_ENTRY_PATH
222 The entry path after logging in to an FTP server. See
223 CURLINFO_FTP_ENTRY_PATH(3)
224
225 CURLINFO_CERTINFO
226 Certificate chain. See CURLINFO_CERTINFO(3)
227
228 CURLINFO_TLS_SSL_PTR
229 TLS session info that can be used for further processing. See
230 CURLINFO_TLS_SSL_PTR(3)
231
232 CURLINFO_TLS_SESSION
233 TLS session info that can be used for further processing. See
234 CURLINFO_TLS_SESSION(3). Deprecated option, use
235 CURLINFO_TLS_SSL_PTR(3) instead!
236
237 CURLINFO_CONDITION_UNMET
238 Whether or not a time conditional was met. See CURLINFO_CONDI‐
239 TION_UNMET(3)
240
241 CURLINFO_RTSP_SESSION_ID
242 RTSP session ID. See CURLINFO_RTSP_SESSION_ID(3)
243
244 CURLINFO_RTSP_CLIENT_CSEQ
245 RTSP CSeq that will next be used. See
246 CURLINFO_RTSP_CLIENT_CSEQ(3)
247
248 CURLINFO_RTSP_SERVER_CSEQ
249 RTSP CSeq that will next be expected. See
250 CURLINFO_RTSP_SERVER_CSEQ(3)
251
252 CURLINFO_RTSP_CSEQ_RECV
253 RTSP CSeq last received. See CURLINFO_RTSP_CSEQ_RECV(3)
254
255 CURLINFO_PROTOCOL
256 The protocol used for the connection. (Added in 7.52.0) See
257 CURLINFO_PROTOCOL(3)
258
259 CURLINFO_SCHEME
260 The scheme used for the connection. (Added in 7.52.0) See
261 CURLINFO_SCHEME(3)
262
264 An overview of the six time values available from curl_easy_getinfo()
265
266 curl_easy_perform()
267 |
268 |--NAMELOOKUP
269 |--|--CONNECT
270 |--|--|--APPCONNECT
271 |--|--|--|--PRETRANSFER
272 |--|--|--|--|--STARTTRANSFER
273 |--|--|--|--|--|--TOTAL
274 |--|--|--|--|--|--REDIRECT
275
276 NAMELOOKUP
277 CURLINFO_NAMELOOKUP_TIME and CURLINFO_NAMELOOKUP_TIME_T. The
278 time it took from the start until the name resolving was com‐
279 pleted.
280
281 CONNECT
282 CURLINFO_CONNECT_TIME and CURLINFO_CONNECT_TIME_T. The time it
283 took from the start until the connect to the remote host (or
284 proxy) was completed.
285
286 APPCONNECT
287 CURLINFO_APPCONNECT_TIME and CURLINFO_APPCONNECT_TIME_T. The
288 time it took from the start until the SSL connect/handshake with
289 the remote host was completed. (Added in 7.19.0) The latter is
290 the integer version (measuring microseconds). (Added in 7.60.0)
291
292 PRETRANSFER
293 CURLINFO_PRETRANSFER_TIME and CURLINFO_PRETRANSFER_TIME_T. The
294 time it took from the start until the file transfer is just
295 about to begin. This includes all pre-transfer commands and
296 negotiations that are specific to the particular protocol(s)
297 involved.
298
299 STARTTRANSFER
300 CURLINFO_STARTTRANSFER_TIME and CURLINFO_STARTTRANSFER_TIME_T.
301 The time it took from the start until the first byte is received
302 by libcurl.
303
304 TOTAL CURLINFO_TOTAL_TIME and CURLINFO_TOTAL_TIME_T. Total time of
305 the previous request.
306
307 REDIRECT
308 CURLINFO_REDIRECT_TIME and CURLINFO_REDIRECT_TIME_T. The time
309 it took for all redirection steps include name lookup, connect,
310 pretransfer and transfer before final transaction was started.
311 So, this is zero if no redirection took place.
312
314 If the operation was successful, CURLE_OK is returned. Otherwise an
315 appropriate error code will be returned.
316
318 curl_easy_setopt(3)
319
320
321
322libcurl 7.69.1 August 06, 2019 curl_easy_getinfo(3)