Annotation of embedaddon/curl/docs/libcurl/curl_version_info.3, revision 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>