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>