Annotation of embedaddon/curl/docs/libcurl/curl_version_info.3, revision 1.1.1.1
1.1 misho 1: .\" **************************************************************************
2: .\" * _ _ ____ _
3: .\" * Project ___| | | | _ \| |
4: .\" * / __| | | | |_) | |
5: .\" * | (__| |_| | _ <| |___
6: .\" * \___|\___/|_| \_\_____|
7: .\" *
8: .\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
9: .\" *
10: .\" * This software is licensed as described in the file COPYING, which
11: .\" * you should have received as part of this distribution. The terms
12: .\" * are also available at https://curl.haxx.se/docs/copyright.html.
13: .\" *
14: .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15: .\" * copies of the Software, and permit persons to whom the Software is
16: .\" * furnished to do so, under the terms of the COPYING file.
17: .\" *
18: .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19: .\" * KIND, either express or implied.
20: .\" *
21: .\" **************************************************************************
22: .\"
23: .TH curl_version_info 3 "March 26, 2020" "libcurl 7.70.0" "libcurl Manual"
24:
25: .SH NAME
26: curl_version_info - returns run-time libcurl version info
27: .SH SYNOPSIS
28: .B #include <curl/curl.h>
29: .sp
30: .BI "curl_version_info_data *curl_version_info( CURLversion "age ");"
31: .ad
32: .SH DESCRIPTION
33: Returns a pointer to a filled in static struct with information about various
34: features in the running version of libcurl. \fIage\fP should be set to the
35: version of this functionality by the time you write your program. This way,
36: libcurl will always return a proper struct that your program understands,
37: while programs in the future might get a different
38: struct. \fBCURLVERSION_NOW\fP will be the most recent one for the library you
39: have installed:
40:
41: data = curl_version_info(CURLVERSION_NOW);
42:
43: Applications should use this information to judge if things are possible to do
44: or not, instead of using compile-time checks, as dynamic/DLL libraries can be
45: changed independent of applications.
46:
47: The curl_version_info_data struct looks like this
48:
49: .nf
50: typedef struct {
51: CURLversion age; /* see description below */
52:
53: const char *version; /* human readable string */
54: unsigned int version_num; /* numeric representation */
55: const char *host; /* human readable string */
56: int features; /* bitmask, see below */
57: char *ssl_version; /* human readable string */
58: long ssl_version_num; /* not used, always zero */
59: const char *libz_version; /* human readable string */
60: const char * const *protocols; /* protocols */
61:
62: /* when 'age' is CURLVERSION_SECOND or higher, the members below exist */
63: const char *ares; /* human readable string */
64: int ares_num; /* number */
65:
66: /* when 'age' is CURLVERSION_THIRD or higher, the members below exist */
67: const char *libidn; /* human readable string */
68:
69: /* when 'age' is CURLVERSION_FOURTH or higher (>= 7.16.1), the members
70: below exist */
71: int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */
72:
73: const char *libssh_version; /* human readable string */
74:
75: /* when 'age' is CURLVERSION_FIFTH or higher (>= 7.57.0), the members
76: below exist */
77: unsigned int brotli_ver_num; /* Numeric Brotli version
78: (MAJOR << 24) | (MINOR << 12) | PATCH */
79: const char *brotli_version; /* human readable string. */
80:
81: /* when 'age' is CURLVERSION_SIXTH or higher (>= 7.66.0), the members
82: below exist */
83: unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
84: (MAJOR << 16) | (MINOR << 8) | PATCH */
85: const char *nghttp2_version; /* human readable string. */
86:
87: const char *quic_version; /* human readable quic (+ HTTP/3) library +
88: version or NULL */
89:
90: /* when 'age' is CURLVERSION_SEVENTH or higher (>= 7.70.0), the members
91: below exist */
92: const char *cainfo; /* the built-in default CURLOPT_CAINFO, might
93: be NULL */
94: const char *capath; /* the built-in default CURLOPT_CAPATH, might
95: be NULL */
96: } curl_version_info_data;
97: .fi
98:
99: \fIage\fP describes what the age of this struct is. The number depends on how
100: new the libcurl you're using is. You are however guaranteed to get a struct
101: that you have a matching struct for in the header, as you tell libcurl your
102: "age" with the input argument.
103:
104: \fIversion\fP is just an ascii string for the libcurl version.
105:
106: \fIversion_num\fP is a 24 bit number created like this: <8 bits major number>
107: | <8 bits minor number> | <8 bits patch number>. Version 7.9.8 is therefore
108: returned as 0x070908.
109:
110: \fIhost\fP is an ascii string showing what host information that this libcurl
111: was built for. As discovered by a configure script or set by the build
112: environment.
113:
114: \fIfeatures\fP can have none, one or more bits set, and the currently defined
115: bits are:
116: .RS
117: .IP CURL_VERSION_ALTSVC
118: HTTP Alt-Svc parsing and the associated options (Added in 7.64.1)
119: .IP CURL_VERSION_ASYNCHDNS
120: libcurl was built with support for asynchronous name lookups, which allows
121: more exact timeouts (even on Windows) and less blocking when using the multi
122: interface. (added in 7.10.7)
123: .IP CURL_VERSION_BROTLI
124: supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
125: .IP CURL_VERSION_CONV
126: libcurl was built with support for character conversions, as provided by the
127: CURLOPT_CONV_* callbacks. (Added in 7.15.4)
128: .IP CURL_VERSION_CURLDEBUG
129: libcurl was built with memory tracking debug capabilities. This is mainly of
130: interest for libcurl hackers. (added in 7.19.6)
131: .IP CURL_VERSION_DEBUG
132: libcurl was built with debug capabilities (added in 7.10.6)
133: .IP CURL_VERSION_GSSAPI
134: libcurl was built with support for GSS-API. This makes libcurl use provided
135: functions for Kerberos and SPNEGO authentication. It also allows libcurl
136: to use the current user credentials without the app having to pass them on.
137: (Added in 7.38.0)
138: .IP CURL_VERSION_GSSNEGOTIATE
139: supports HTTP GSS-Negotiate (added in 7.10.6)
140: .IP CURL_VERSION_HTTPS_PROXY
141: libcurl was built with support for HTTPS-proxy.
142: (Added in 7.52.0)
143: .IP CURL_VERSION_HTTP2
144: libcurl was built with support for HTTP2.
145: (Added in 7.33.0)
146: .IP CURL_VERSION_HTTP3
147: HTTP/3 and QUIC support are built-in (Added in 7.66.0)
148: .IP CURL_VERSION_IDN
149: libcurl was built with support for IDNA, domain names with international
150: letters. (Added in 7.12.0)
151: .IP CURL_VERSION_IPV6
152: supports IPv6
153: .IP CURL_VERSION_KERBEROS4
154: supports Kerberos V4 (when using FTP)
155: .IP CURL_VERSION_KERBEROS5
156: supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy
157: (Added in 7.40.0)
158: .IP CURL_VERSION_LARGEFILE
159: libcurl was built with support for large files. (Added in 7.11.1)
160: .IP CURL_VERSION_LIBZ
161: supports HTTP deflate using libz (Added in 7.10)
162: .IP CURL_VERSION_MULTI_SSL
163: libcurl was built with multiple SSL backends. For details, see
164: \fIcurl_global_sslset(3)\fP.
165: (Added in 7.56.0)
166: .IP CURL_VERSION_NTLM
167: supports HTTP NTLM (added in 7.10.6)
168: .IP CURL_VERSION_NTLM_WB
169: libcurl was built with support for NTLM delegation to a winbind helper.
170: (Added in 7.22.0)
171: .IP CURL_VERSION_PSL
172: libcurl was built with support for Mozilla's Public Suffix List. This makes
173: libcurl ignore cookies with a domain that's on the list.
174: (Added in 7.47.0)
175: .IP CURL_VERSION_SPNEGO
176: libcurl was built with support for SPNEGO authentication (Simple and Protected
177: GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)
178: .IP CURL_VERSION_SSL
179: supports SSL (HTTPS/FTPS) (Added in 7.10)
180: .IP CURL_VERSION_SSPI
181: libcurl was built with support for SSPI. This is only available on Windows and
182: makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
183: Digest authentication. It also allows libcurl to use the current user
184: credentials without the app having to pass them on. (Added in 7.13.2)
185: .IP CURL_VERSION_TLSAUTH_SRP
186: libcurl was built with support for TLS-SRP. (Added in 7.21.4)
187: .IP CURL_VERSION_UNIX_SOCKETS
188: libcurl was built with support for Unix domain sockets.
189: (Added in 7.40.0)
190: .RE
191: \fIssl_version\fP is an ASCII string for the TLS library name + version
192: used. If libcurl has no SSL support, this is NULL. For example "Schannel",
193: \&"SecureTransport" or "OpenSSL/1.1.0g".
194:
195: \fIssl_version_num\fP is always 0.
196:
197: \fIlibz_version\fP is an ASCII string (there is no numerical version). If
198: libcurl has no libz support, this is NULL.
199:
200: \fIprotocols\fP is a pointer to an array of char * pointers, containing the
201: names protocols that libcurl supports (using lowercase letters). The protocol
202: names are the same as would be used in URLs. The array is terminated by a NULL
203: entry.
204: .SH RETURN VALUE
205: A pointer to a curl_version_info_data struct.
206: .SH "SEE ALSO"
207: \fIcurl_version(3)\fP
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>