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>