diff options
Diffstat (limited to 'docs/libcurl/gnurl_version_info.3')
-rw-r--r-- | docs/libcurl/gnurl_version_info.3 | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/docs/libcurl/gnurl_version_info.3 b/docs/libcurl/gnurl_version_info.3 new file mode 100644 index 000000000..09e0fe535 --- /dev/null +++ b/docs/libcurl/gnurl_version_info.3 @@ -0,0 +1,188 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. +.\" * +.\" * This software is licensed as described in the file COPYING, which +.\" * you should have received as part of this distribution. The terms +.\" * are also available at https://curl.haxx.se/docs/copyright.html. +.\" * +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell +.\" * copies of the Software, and permit persons to whom the Software is +.\" * furnished to do so, under the terms of the COPYING file. +.\" * +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +.\" * KIND, either express or implied. +.\" * +.\" ************************************************************************** +.\" +.TH gnurl_version_info 3 "2 Nov 2014" "libcurl 7.40.0" "libgnurl Manual" +.SH NAME +curl_version_info - returns run-time libcurl version info +.SH SYNOPSIS +.B #include <gnurl/curl.h> +.sp +.BI "curl_version_info_data *curl_version_info( CURLversion "age ");" +.ad +.SH DESCRIPTION +Returns a pointer to a filled in static struct with information about various +features in the running version of libcurl. \fIage\fP should be set to the +version of this functionality by the time you write your program. This way, +libcurl will always return a proper struct that your program understands, +while programs in the future might get a different +struct. \fBCURLVERSION_NOW\fP will be the most recent one for the library you +have installed: + + data = curl_version_info(CURLVERSION_NOW); + +Applications should use this information to judge if things are possible to do +or not, instead of using compile-time checks, as dynamic/DLL libraries can be +changed independent of applications. + +The curl_version_info_data struct looks like this + +.nf +typedef struct { + CURLversion age; /* see description below */ + + /* when 'age' is 0 or higher, the members below also exist: */ + const char *version; /* human readable string */ + unsigned int version_num; /* numeric representation */ + const char *host; /* human readable string */ + int features; /* bitmask, see below */ + char *ssl_version; /* human readable string */ + long ssl_version_num; /* not used, always zero */ + const char *libz_version; /* human readable string */ + const char * const *protocols; /* protocols */ + + /* when 'age' is 1 or higher, the members below also exist: */ + const char *ares; /* human readable string */ + int ares_num; /* number */ + + /* when 'age' is 2 or higher, the member below also exists: */ + const char *libidn; /* human readable string */ + + /* when 'age' is 3 or higher (7.16.1 or later), the members below also + exist */ + int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */ + + const char *libssh_version; /* human readable string */ + + /* when 'age' is 4 or higher (7.57.0 or later), the members below also + exist */ + unsigned int brotli_ver_num; /* Numeric Brotli version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *brotli_version; /* human readable string. */ + +} curl_version_info_data; +.fi + +\fIage\fP describes what the age of this struct is. The number depends on how +new the libcurl you're using is. You are however guaranteed to get a struct +that you have a matching struct for in the header, as you tell libcurl your +"age" with the input argument. + +\fIversion\fP is just an ascii string for the libcurl version. + +\fIversion_num\fP is a 24 bit number created like this: <8 bits major number> +| <8 bits minor number> | <8 bits patch number>. Version 7.9.8 is therefore +returned as 0x070908. + +\fIhost\fP is an ascii string showing what host information that this libcurl +was built for. As discovered by a configure script or set by the build +environment. + +\fIfeatures\fP can have none, one or more bits set, and the currently defined +bits are: +.RS +.IP CURL_VERSION_IPV6 +supports IPv6 +.IP CURL_VERSION_KERBEROS4 +supports Kerberos V4 (when using FTP) +.IP CURL_VERSION_KERBEROS5 +supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy +(Added in 7.40.0) +.IP CURL_VERSION_SSL +supports SSL (HTTPS/FTPS) (Added in 7.10) +.IP CURL_VERSION_LIBZ +supports HTTP deflate using libz (Added in 7.10) +.IP CURL_VERSION_NTLM +supports HTTP NTLM (added in 7.10.6) +.IP CURL_VERSION_GSSNEGOTIATE +supports HTTP GSS-Negotiate (added in 7.10.6) +.IP CURL_VERSION_DEBUG +libcurl was built with debug capabilities (added in 7.10.6) +.IP CURL_VERSION_CURLDEBUG +libcurl was built with memory tracking debug capabilities. This is mainly of +interest for libcurl hackers. (added in 7.19.6) +.IP CURL_VERSION_ASYNCHDNS +libcurl was built with support for asynchronous name lookups, which allows +more exact timeouts (even on Windows) and less blocking when using the multi +interface. (added in 7.10.7) +.IP CURL_VERSION_SPNEGO +libcurl was built with support for SPNEGO authentication (Simple and Protected +GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8) +.IP CURL_VERSION_LARGEFILE +libcurl was built with support for large files. (Added in 7.11.1) +.IP CURL_VERSION_IDN +libcurl was built with support for IDNA, domain names with international +letters. (Added in 7.12.0) +.IP CURL_VERSION_SSPI +libcurl was built with support for SSPI. This is only available on Windows and +makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and +Digest authentication. It also allows libcurl to use the current user +credentials without the app having to pass them on. (Added in 7.13.2) +.IP CURL_VERSION_GSSAPI +libcurl was built with support for GSS-API. This makes libcurl use provided +functions for Kerberos and SPNEGO authentication. It also allows libcurl +to use the current user credentials without the app having to pass them on. +(Added in 7.38.0) +.IP CURL_VERSION_CONV +libcurl was built with support for character conversions, as provided by the +CURLOPT_CONV_* callbacks. (Added in 7.15.4) +.IP CURL_VERSION_TLSAUTH_SRP +libcurl was built with support for TLS-SRP. (Added in 7.21.4) +.IP CURL_VERSION_NTLM_WB +libcurl was built with support for NTLM delegation to a winbind helper. +(Added in 7.22.0) +.IP CURL_VERSION_HTTP2 +libcurl was built with support for HTTP2. +(Added in 7.33.0) +.IP CURL_VERSION_UNIX_SOCKETS +libcurl was built with support for Unix domain sockets. +(Added in 7.40.0) +.IP CURL_VERSION_PSL +libcurl was built with support for Mozilla's Public Suffix List. This makes +libcurl ignore cookies with a domain that's on the list. +(Added in 7.47.0) +.IP CURL_VERSION_HTTPS_PROXY +libcurl was built with support for HTTPS-proxy. +(Added in 7.52.0) +.IP CURL_VERSION_MULTI_SSL +libcurl was built with multiple SSL backends. For details, see +\fIcurl_global_sslset(3)\fP. +(Added in 7.56.0) +.IP CURL_VERSION_BROTLI +supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0) +.RE +\fIssl_version\fP is an ASCII string for the TLS library name + version +used. If libcurl has no SSL support, this is NULL. For example "Schannel", +\&"SecureTransport" or "OpenSSL/1.1.0g". + +\fIssl_version_num\fP is always 0. + +\fIlibz_version\fP is an ASCII string (there is no numerical version). If +libcurl has no libz support, this is NULL. + +\fIprotocols\fP is a pointer to an array of char * pointers, containing the +names protocols that libcurl supports (using lowercase letters). The protocol +names are the same as would be used in URLs. The array is terminated by a NULL +entry. +.SH RETURN VALUE +A pointer to a curl_version_info_data struct. +.SH "SEE ALSO" +\fIcurl_version(3)\fP |