xref: /aosp_15_r20/external/curl/docs/libcurl/curl_version_info.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerTitle: curl_version_info
5*6236dae4SAndroid Build Coastguard WorkerSection: 3
6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl
7*6236dae4SAndroid Build Coastguard WorkerSee-also:
8*6236dae4SAndroid Build Coastguard Worker  - curl_version (3)
9*6236dae4SAndroid Build Coastguard WorkerProtocol:
10*6236dae4SAndroid Build Coastguard Worker  - All
11*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.10.0
12*6236dae4SAndroid Build Coastguard Worker---
13*6236dae4SAndroid Build Coastguard Worker
14*6236dae4SAndroid Build Coastguard Worker# NAME
15*6236dae4SAndroid Build Coastguard Worker
16*6236dae4SAndroid Build Coastguard Workercurl_version_info - returns runtime libcurl version info
17*6236dae4SAndroid Build Coastguard Worker
18*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS
19*6236dae4SAndroid Build Coastguard Worker
20*6236dae4SAndroid Build Coastguard Worker~~~c
21*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h>
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Workercurl_version_info_data *curl_version_info(CURLversion age);
24*6236dae4SAndroid Build Coastguard Worker~~~
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION
27*6236dae4SAndroid Build Coastguard Worker
28*6236dae4SAndroid Build Coastguard WorkerReturns a pointer to a filled in static struct with information about various
29*6236dae4SAndroid Build Coastguard Workerfeatures in the running version of libcurl. *age* should be set to the
30*6236dae4SAndroid Build Coastguard Workerversion of this functionality by the time you write your program. This way,
31*6236dae4SAndroid Build Coastguard Workerlibcurl always returns a proper struct that your program understands, while
32*6236dae4SAndroid Build Coastguard Workerprograms in the future might get a different struct. **CURLVERSION_NOW** is
33*6236dae4SAndroid Build Coastguard Workerthe most recent one for the library you have installed:
34*6236dae4SAndroid Build Coastguard Worker~~~c
35*6236dae4SAndroid Build Coastguard Worker  data = curl_version_info(CURLVERSION_NOW);
36*6236dae4SAndroid Build Coastguard Worker~~~
37*6236dae4SAndroid Build Coastguard WorkerApplications should use this information to judge if things are possible to do
38*6236dae4SAndroid Build Coastguard Workeror not, instead of using compile-time checks, as dynamic/DLL libraries can be
39*6236dae4SAndroid Build Coastguard Workerchanged independent of applications.
40*6236dae4SAndroid Build Coastguard Worker
41*6236dae4SAndroid Build Coastguard WorkerThis function can alter the returned static data as long as
42*6236dae4SAndroid Build Coastguard Workercurl_global_init(3) has not been called. It is therefore not thread-safe
43*6236dae4SAndroid Build Coastguard Workerbefore libcurl initialization occurs.
44*6236dae4SAndroid Build Coastguard Worker
45*6236dae4SAndroid Build Coastguard WorkerThe curl_version_info_data struct looks like this
46*6236dae4SAndroid Build Coastguard Worker
47*6236dae4SAndroid Build Coastguard Worker~~~c
48*6236dae4SAndroid Build Coastguard Workertypedef struct {
49*6236dae4SAndroid Build Coastguard Worker  CURLversion age;          /* see description below */
50*6236dae4SAndroid Build Coastguard Worker
51*6236dae4SAndroid Build Coastguard Worker  const char *version;      /* human readable string */
52*6236dae4SAndroid Build Coastguard Worker  unsigned int version_num; /* numeric representation */
53*6236dae4SAndroid Build Coastguard Worker  const char *host;         /* human readable string */
54*6236dae4SAndroid Build Coastguard Worker  int features;             /* bitmask, see below */
55*6236dae4SAndroid Build Coastguard Worker  char *ssl_version;        /* human readable string */
56*6236dae4SAndroid Build Coastguard Worker  long ssl_version_num;     /* not used, always zero */
57*6236dae4SAndroid Build Coastguard Worker  const char *libz_version; /* human readable string */
58*6236dae4SAndroid Build Coastguard Worker  const char *const *protocols; /* protocols */
59*6236dae4SAndroid Build Coastguard Worker
60*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_SECOND or higher, the members below exist */
61*6236dae4SAndroid Build Coastguard Worker  const char *ares;         /* human readable string */
62*6236dae4SAndroid Build Coastguard Worker  int ares_num;             /* number */
63*6236dae4SAndroid Build Coastguard Worker
64*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_THIRD or higher, the members below exist */
65*6236dae4SAndroid Build Coastguard Worker  const char *libidn;       /* human readable string */
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_FOURTH or higher (>= 7.16.1), the members
68*6236dae4SAndroid Build Coastguard Worker     below exist */
69*6236dae4SAndroid Build Coastguard Worker  int iconv_ver_num;       /* '_libiconv_version' if iconv support enabled */
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard Worker  const char *libssh_version; /* human readable string */
72*6236dae4SAndroid Build Coastguard Worker
73*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_FIFTH or higher (>= 7.57.0), the members
74*6236dae4SAndroid Build Coastguard Worker     below exist */
75*6236dae4SAndroid Build Coastguard Worker  unsigned int brotli_ver_num; /* Numeric Brotli version
76*6236dae4SAndroid Build Coastguard Worker                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
77*6236dae4SAndroid Build Coastguard Worker  const char *brotli_version; /* human readable string. */
78*6236dae4SAndroid Build Coastguard Worker
79*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_SIXTH or higher (>= 7.66.0), the members
80*6236dae4SAndroid Build Coastguard Worker     below exist */
81*6236dae4SAndroid Build Coastguard Worker  unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
82*6236dae4SAndroid Build Coastguard Worker                                   (MAJOR << 16) | (MINOR << 8) | PATCH */
83*6236dae4SAndroid Build Coastguard Worker  const char *nghttp2_version; /* human readable string. */
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard Worker  const char *quic_version;    /* human readable quic (+ HTTP/3) library +
86*6236dae4SAndroid Build Coastguard Worker                                  version or NULL */
87*6236dae4SAndroid Build Coastguard Worker
88*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_SEVENTH or higher (>= 7.70.0), the members
89*6236dae4SAndroid Build Coastguard Worker     below exist */
90*6236dae4SAndroid Build Coastguard Worker  const char *cainfo;          /* the built-in default CURLOPT_CAINFO, might
91*6236dae4SAndroid Build Coastguard Worker                                  be NULL */
92*6236dae4SAndroid Build Coastguard Worker  const char *capath;          /* the built-in default CURLOPT_CAPATH, might
93*6236dae4SAndroid Build Coastguard Worker                                  be NULL */
94*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_EIGHTH or higher (>= 7.71.0), the members
95*6236dae4SAndroid Build Coastguard Worker     below exist */
96*6236dae4SAndroid Build Coastguard Worker  unsigned int zstd_ver_num; /* Numeric Zstd version
97*6236dae4SAndroid Build Coastguard Worker                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
98*6236dae4SAndroid Build Coastguard Worker  const char *zstd_version; /* human readable string. */
99*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_NINTH or higher (>= 7.75.0), the members
100*6236dae4SAndroid Build Coastguard Worker     below exist */
101*6236dae4SAndroid Build Coastguard Worker  const char *hyper_version; /* human readable string. */
102*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_TENTH or higher (>= 7.77.0), the members
103*6236dae4SAndroid Build Coastguard Worker     below exist */
104*6236dae4SAndroid Build Coastguard Worker  const char *gsasl_version; /* human readable string. */
105*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_ELEVENTH or higher (>= 7.87.0), the members
106*6236dae4SAndroid Build Coastguard Worker     below exist */
107*6236dae4SAndroid Build Coastguard Worker  const char *const *feature_names; /* Feature names. */
108*6236dae4SAndroid Build Coastguard Worker  /* when 'age' is CURLVERSION_TWELFTH or higher (>= 8.8.0), the members
109*6236dae4SAndroid Build Coastguard Worker     below exist */
110*6236dae4SAndroid Build Coastguard Worker  const char *const *rtmp_version; /* human readable string */
111*6236dae4SAndroid Build Coastguard Worker} curl_version_info_data;
112*6236dae4SAndroid Build Coastguard Worker~~~
113*6236dae4SAndroid Build Coastguard Worker
114*6236dae4SAndroid Build Coastguard Worker*age* describes what the age of this struct is. The number depends on how
115*6236dae4SAndroid Build Coastguard Workernew the libcurl you are using is. You are however guaranteed to get a struct
116*6236dae4SAndroid Build Coastguard Workerthat you have a matching struct for in the header, as you tell libcurl your
117*6236dae4SAndroid Build Coastguard Worker"age" with the input argument.
118*6236dae4SAndroid Build Coastguard Worker
119*6236dae4SAndroid Build Coastguard Worker*version* is just an ASCII string for the libcurl version.
120*6236dae4SAndroid Build Coastguard Worker
121*6236dae4SAndroid Build Coastguard Worker*version_num* is a 24 bit number created like this: \<8 bits major number\> |
122*6236dae4SAndroid Build Coastguard Worker\<8 bits minor number\> | \<8 bits patch number\>. Version 7.9.8 is therefore
123*6236dae4SAndroid Build Coastguard Workerreturned as 0x070908.
124*6236dae4SAndroid Build Coastguard Worker
125*6236dae4SAndroid Build Coastguard Worker*host* is an ASCII string showing what host information that this libcurl
126*6236dae4SAndroid Build Coastguard Workerwas built for. As discovered by a configure script or set by the build
127*6236dae4SAndroid Build Coastguard Workerenvironment.
128*6236dae4SAndroid Build Coastguard Worker
129*6236dae4SAndroid Build Coastguard Worker*features* is a bit mask representing available features. It can have none,
130*6236dae4SAndroid Build Coastguard Workerone or more bits set. The use of this field is deprecated: use
131*6236dae4SAndroid Build Coastguard Worker*feature_names* instead. The feature names description below lists the
132*6236dae4SAndroid Build Coastguard Workerassociated bits.
133*6236dae4SAndroid Build Coastguard Worker
134*6236dae4SAndroid Build Coastguard Worker*feature_names* is a pointer to an array of string pointers, containing the
135*6236dae4SAndroid Build Coastguard Workernames of the features that libcurl supports. The array is terminated by a NULL
136*6236dae4SAndroid Build Coastguard Workerentry. See the list of features names below.
137*6236dae4SAndroid Build Coastguard Worker
138*6236dae4SAndroid Build Coastguard Worker*ssl_version* is an ASCII string for the TLS library name + version used. If
139*6236dae4SAndroid Build Coastguard Workerlibcurl has no SSL support, this is NULL. For example "Schannel", "Secure
140*6236dae4SAndroid Build Coastguard WorkerTransport" or "OpenSSL/1.1.0g".
141*6236dae4SAndroid Build Coastguard Worker
142*6236dae4SAndroid Build Coastguard Worker*ssl_version_num* is always 0.
143*6236dae4SAndroid Build Coastguard Worker
144*6236dae4SAndroid Build Coastguard Worker*libz_version* is an ASCII string (there is no numerical version). If
145*6236dae4SAndroid Build Coastguard Workerlibcurl has no libz support, this is NULL.
146*6236dae4SAndroid Build Coastguard Worker
147*6236dae4SAndroid Build Coastguard Worker*protocols* is a pointer to an array of char * pointers, containing the
148*6236dae4SAndroid Build Coastguard Workernames protocols that libcurl supports (using lowercase letters). The protocol
149*6236dae4SAndroid Build Coastguard Workernames are the same as would be used in URLs. The array is terminated by a NULL
150*6236dae4SAndroid Build Coastguard Workerentry.
151*6236dae4SAndroid Build Coastguard Worker
152*6236dae4SAndroid Build Coastguard Worker# FEATURES
153*6236dae4SAndroid Build Coastguard Worker
154*6236dae4SAndroid Build Coastguard Worker## alt-svc
155*6236dae4SAndroid Build Coastguard Worker
156*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_ALTSVC
157*6236dae4SAndroid Build Coastguard Worker
158*6236dae4SAndroid Build Coastguard WorkerHTTP Alt-Svc parsing and the associated options (Added in 7.64.1)
159*6236dae4SAndroid Build Coastguard Worker
160*6236dae4SAndroid Build Coastguard Worker## AsynchDNS
161*6236dae4SAndroid Build Coastguard Worker
162*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_ASYNCHDNS
163*6236dae4SAndroid Build Coastguard Worker
164*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for asynchronous name lookups, which allows
165*6236dae4SAndroid Build Coastguard Workermore exact timeouts (even on Windows) and less blocking when using the multi
166*6236dae4SAndroid Build Coastguard Workerinterface. (added in 7.10.7)
167*6236dae4SAndroid Build Coastguard Worker
168*6236dae4SAndroid Build Coastguard Worker## brotli
169*6236dae4SAndroid Build Coastguard Worker
170*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_BROTLI
171*6236dae4SAndroid Build Coastguard Worker
172*6236dae4SAndroid Build Coastguard Workersupports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
173*6236dae4SAndroid Build Coastguard Worker
174*6236dae4SAndroid Build Coastguard Worker## Debug
175*6236dae4SAndroid Build Coastguard Worker
176*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_DEBUG
177*6236dae4SAndroid Build Coastguard Worker
178*6236dae4SAndroid Build Coastguard Workerlibcurl was built with debug capabilities (added in 7.10.6)
179*6236dae4SAndroid Build Coastguard Worker
180*6236dae4SAndroid Build Coastguard Worker## ECH
181*6236dae4SAndroid Build Coastguard Worker
182*6236dae4SAndroid Build Coastguard Worker*features* mask bit: non-existent
183*6236dae4SAndroid Build Coastguard Worker
184*6236dae4SAndroid Build Coastguard Workerlibcurl was built with ECH support (experimental, added in 8.8.0)
185*6236dae4SAndroid Build Coastguard Worker
186*6236dae4SAndroid Build Coastguard Worker## gsasl
187*6236dae4SAndroid Build Coastguard Worker
188*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_GSASL
189*6236dae4SAndroid Build Coastguard Worker
190*6236dae4SAndroid Build Coastguard Workerlibcurl was built with libgsasl and thus with some extra SCRAM-SHA
191*6236dae4SAndroid Build Coastguard Workerauthentication methods. (added in 7.76.0)
192*6236dae4SAndroid Build Coastguard Worker
193*6236dae4SAndroid Build Coastguard Worker## GSS-API
194*6236dae4SAndroid Build Coastguard Worker
195*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_GSSAPI
196*6236dae4SAndroid Build Coastguard Worker
197*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for GSS-API. This makes libcurl use provided
198*6236dae4SAndroid Build Coastguard Workerfunctions for Kerberos and SPNEGO authentication. It also allows libcurl
199*6236dae4SAndroid Build Coastguard Workerto use the current user credentials without the app having to pass them on.
200*6236dae4SAndroid Build Coastguard Worker(Added in 7.38.0)
201*6236dae4SAndroid Build Coastguard Worker
202*6236dae4SAndroid Build Coastguard Worker## HSTS
203*6236dae4SAndroid Build Coastguard Worker
204*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_HSTS
205*6236dae4SAndroid Build Coastguard Worker
206*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for HSTS (HTTP Strict Transport Security)
207*6236dae4SAndroid Build Coastguard Worker(Added in 7.74.0)
208*6236dae4SAndroid Build Coastguard Worker
209*6236dae4SAndroid Build Coastguard Worker## HTTP2
210*6236dae4SAndroid Build Coastguard Worker
211*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_HTTP2
212*6236dae4SAndroid Build Coastguard Worker
213*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for HTTP2.
214*6236dae4SAndroid Build Coastguard Worker(Added in 7.33.0)
215*6236dae4SAndroid Build Coastguard Worker
216*6236dae4SAndroid Build Coastguard Worker## HTTP3
217*6236dae4SAndroid Build Coastguard Worker
218*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_HTTP3
219*6236dae4SAndroid Build Coastguard Worker
220*6236dae4SAndroid Build Coastguard WorkerHTTP/3 and QUIC support are built-in (Added in 7.66.0)
221*6236dae4SAndroid Build Coastguard Worker
222*6236dae4SAndroid Build Coastguard Worker## HTTPS-proxy
223*6236dae4SAndroid Build Coastguard Worker
224*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_HTTPS_PROXY
225*6236dae4SAndroid Build Coastguard Worker
226*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for HTTPS-proxy.
227*6236dae4SAndroid Build Coastguard Worker(Added in 7.52.0)
228*6236dae4SAndroid Build Coastguard Worker
229*6236dae4SAndroid Build Coastguard Worker## IDN
230*6236dae4SAndroid Build Coastguard Worker
231*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_IDN
232*6236dae4SAndroid Build Coastguard Worker
233*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for IDNA, domain names with international
234*6236dae4SAndroid Build Coastguard Workerletters. (Added in 7.12.0)
235*6236dae4SAndroid Build Coastguard Worker
236*6236dae4SAndroid Build Coastguard Worker## IPv6
237*6236dae4SAndroid Build Coastguard Worker
238*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_IPV6
239*6236dae4SAndroid Build Coastguard Worker
240*6236dae4SAndroid Build Coastguard Workersupports IPv6
241*6236dae4SAndroid Build Coastguard Worker
242*6236dae4SAndroid Build Coastguard Worker## Kerberos
243*6236dae4SAndroid Build Coastguard Worker
244*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_KERBEROS5
245*6236dae4SAndroid Build Coastguard Worker
246*6236dae4SAndroid Build Coastguard Workersupports Kerberos V5 authentication for FTP, IMAP, LDAP, POP3, SMTP and
247*6236dae4SAndroid Build Coastguard WorkerSOCKSv5 proxy. (Added in 7.40.0)
248*6236dae4SAndroid Build Coastguard Worker
249*6236dae4SAndroid Build Coastguard Worker## Largefile
250*6236dae4SAndroid Build Coastguard Worker
251*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_LARGEFILE
252*6236dae4SAndroid Build Coastguard Worker
253*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for large files. (Added in 7.11.1)
254*6236dae4SAndroid Build Coastguard Worker
255*6236dae4SAndroid Build Coastguard Worker## libz
256*6236dae4SAndroid Build Coastguard Worker
257*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_LIBZ
258*6236dae4SAndroid Build Coastguard Worker
259*6236dae4SAndroid Build Coastguard Workersupports HTTP deflate using libz (Added in 7.10)
260*6236dae4SAndroid Build Coastguard Worker
261*6236dae4SAndroid Build Coastguard Worker## MultiSSL
262*6236dae4SAndroid Build Coastguard Worker
263*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_MULTI_SSL
264*6236dae4SAndroid Build Coastguard Worker
265*6236dae4SAndroid Build Coastguard Workerlibcurl was built with multiple SSL backends. For details, see
266*6236dae4SAndroid Build Coastguard Workercurl_global_sslset(3).
267*6236dae4SAndroid Build Coastguard Worker(Added in 7.56.0)
268*6236dae4SAndroid Build Coastguard Worker
269*6236dae4SAndroid Build Coastguard Worker## NTLM
270*6236dae4SAndroid Build Coastguard Worker
271*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_NTLM
272*6236dae4SAndroid Build Coastguard Worker
273*6236dae4SAndroid Build Coastguard Workersupports HTTP NTLM (added in 7.10.6)
274*6236dae4SAndroid Build Coastguard Worker
275*6236dae4SAndroid Build Coastguard Worker## NTLM_WB
276*6236dae4SAndroid Build Coastguard Worker
277*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_NTLM_WB
278*6236dae4SAndroid Build Coastguard Worker
279*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for NTLM delegation to a winbind helper.
280*6236dae4SAndroid Build Coastguard Worker(Added in 7.22.0) This feature was removed from curl in 8.8.0.
281*6236dae4SAndroid Build Coastguard Worker
282*6236dae4SAndroid Build Coastguard Worker## PSL
283*6236dae4SAndroid Build Coastguard Worker
284*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_PSL
285*6236dae4SAndroid Build Coastguard Worker
286*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for Mozilla's Public Suffix List. This makes
287*6236dae4SAndroid Build Coastguard Workerlibcurl ignore cookies with a domain that is on the list.
288*6236dae4SAndroid Build Coastguard Worker(Added in 7.47.0)
289*6236dae4SAndroid Build Coastguard Worker
290*6236dae4SAndroid Build Coastguard Worker## SPNEGO
291*6236dae4SAndroid Build Coastguard Worker
292*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_SPNEGO
293*6236dae4SAndroid Build Coastguard Worker
294*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for SPNEGO authentication (Simple and Protected
295*6236dae4SAndroid Build Coastguard WorkerGSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)
296*6236dae4SAndroid Build Coastguard Worker
297*6236dae4SAndroid Build Coastguard Worker## SSL
298*6236dae4SAndroid Build Coastguard Worker
299*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_SSL
300*6236dae4SAndroid Build Coastguard Worker
301*6236dae4SAndroid Build Coastguard Workersupports SSL (HTTPS/FTPS) (Added in 7.10)
302*6236dae4SAndroid Build Coastguard Worker
303*6236dae4SAndroid Build Coastguard Worker## SSPI
304*6236dae4SAndroid Build Coastguard Worker
305*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_SSPI
306*6236dae4SAndroid Build Coastguard Worker
307*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for SSPI. This is only available on Windows and
308*6236dae4SAndroid Build Coastguard Workermakes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
309*6236dae4SAndroid Build Coastguard WorkerDigest authentication. It also allows libcurl to use the current user
310*6236dae4SAndroid Build Coastguard Workercredentials without the app having to pass them on. (Added in 7.13.2)
311*6236dae4SAndroid Build Coastguard Worker
312*6236dae4SAndroid Build Coastguard Worker## threadsafe
313*6236dae4SAndroid Build Coastguard Worker
314*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_THREADSAFE
315*6236dae4SAndroid Build Coastguard Worker
316*6236dae4SAndroid Build Coastguard Workerlibcurl was built with thread-safety support (Atomic or SRWLOCK) to protect
317*6236dae4SAndroid Build Coastguard Workercurl initialization. (Added in 7.84.0) See libcurl-thread(3)
318*6236dae4SAndroid Build Coastguard Worker
319*6236dae4SAndroid Build Coastguard Worker## TLS-SRP
320*6236dae4SAndroid Build Coastguard Worker
321*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_TLSAUTH_SRP
322*6236dae4SAndroid Build Coastguard Worker
323*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for TLS-SRP (in one or more of the built-in TLS
324*6236dae4SAndroid Build Coastguard Workerbackends). (Added in 7.21.4)
325*6236dae4SAndroid Build Coastguard Worker
326*6236dae4SAndroid Build Coastguard Worker## TrackMemory
327*6236dae4SAndroid Build Coastguard Worker
328*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_CURLDEBUG
329*6236dae4SAndroid Build Coastguard Worker
330*6236dae4SAndroid Build Coastguard Workerlibcurl was built with memory tracking debug capabilities. This is mainly of
331*6236dae4SAndroid Build Coastguard Workerinterest for libcurl hackers. (added in 7.19.6)
332*6236dae4SAndroid Build Coastguard Worker
333*6236dae4SAndroid Build Coastguard Worker## Unicode
334*6236dae4SAndroid Build Coastguard Worker
335*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_UNICODE
336*6236dae4SAndroid Build Coastguard Worker
337*6236dae4SAndroid Build Coastguard Workerlibcurl was built with Unicode support on Windows. This makes non-ASCII
338*6236dae4SAndroid Build Coastguard Workercharacters work in filenames and options passed to libcurl. (Added in 7.72.0)
339*6236dae4SAndroid Build Coastguard Worker
340*6236dae4SAndroid Build Coastguard Worker## UnixSockets
341*6236dae4SAndroid Build Coastguard Worker
342*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_UNIX_SOCKETS
343*6236dae4SAndroid Build Coastguard Worker
344*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for Unix domain sockets.
345*6236dae4SAndroid Build Coastguard Worker(Added in 7.40.0)
346*6236dae4SAndroid Build Coastguard Worker
347*6236dae4SAndroid Build Coastguard Worker## zstd
348*6236dae4SAndroid Build Coastguard Worker
349*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_ZSTD
350*6236dae4SAndroid Build Coastguard Worker
351*6236dae4SAndroid Build Coastguard Workersupports HTTP zstd content encoding using zstd library (Added in 7.72.0)
352*6236dae4SAndroid Build Coastguard Worker
353*6236dae4SAndroid Build Coastguard Worker## no name
354*6236dae4SAndroid Build Coastguard Worker
355*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_CONV
356*6236dae4SAndroid Build Coastguard Worker
357*6236dae4SAndroid Build Coastguard Workerlibcurl was built with support for character conversions, as provided by the
358*6236dae4SAndroid Build Coastguard WorkerCURLOPT_CONV_* callbacks. Always 0 since 7.82.0. (Added in 7.15.4,
359*6236dae4SAndroid Build Coastguard Workerdeprecated.)
360*6236dae4SAndroid Build Coastguard Worker
361*6236dae4SAndroid Build Coastguard Worker## no name
362*6236dae4SAndroid Build Coastguard Worker
363*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_GSSNEGOTIATE
364*6236dae4SAndroid Build Coastguard Worker
365*6236dae4SAndroid Build Coastguard Workersupports HTTP GSS-Negotiate (added in 7.10.6, deprecated in 7.38.0)
366*6236dae4SAndroid Build Coastguard Worker
367*6236dae4SAndroid Build Coastguard Worker## no name
368*6236dae4SAndroid Build Coastguard Worker
369*6236dae4SAndroid Build Coastguard Worker*features* mask bit: CURL_VERSION_KERBEROS4
370*6236dae4SAndroid Build Coastguard Worker
371*6236dae4SAndroid Build Coastguard Workersupports Kerberos V4 (when using FTP). Legacy bit. Deprecated since 7.33.0.
372*6236dae4SAndroid Build Coastguard Worker
373*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS%
374*6236dae4SAndroid Build Coastguard Worker
375*6236dae4SAndroid Build Coastguard Worker# EXAMPLE
376*6236dae4SAndroid Build Coastguard Worker
377*6236dae4SAndroid Build Coastguard Worker~~~c
378*6236dae4SAndroid Build Coastguard Workerint main(void)
379*6236dae4SAndroid Build Coastguard Worker{
380*6236dae4SAndroid Build Coastguard Worker  curl_version_info_data *ver = curl_version_info(CURLVERSION_NOW);
381*6236dae4SAndroid Build Coastguard Worker  printf("libcurl version %u.%u.%u\n",
382*6236dae4SAndroid Build Coastguard Worker         (ver->version_num >> 16) & 0xff,
383*6236dae4SAndroid Build Coastguard Worker         (ver->version_num >> 8) & 0xff,
384*6236dae4SAndroid Build Coastguard Worker         ver->version_num & 0xff);
385*6236dae4SAndroid Build Coastguard Worker}
386*6236dae4SAndroid Build Coastguard Worker~~~
387*6236dae4SAndroid Build Coastguard Worker
388*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY%
389*6236dae4SAndroid Build Coastguard Worker
390*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE
391*6236dae4SAndroid Build Coastguard Worker
392*6236dae4SAndroid Build Coastguard WorkerA pointer to a curl_version_info_data struct.
393