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