| .\" ************************************************************************** |
| .\" * _ _ ____ _ |
| .\" * Project ___| | | | _ \| | |
| .\" * / __| | | | |_) | | |
| .\" * | (__| |_| | _ <| |___ |
| .\" * \___|\___/|_| \_\_____| |
| .\" * |
| .\" * Copyright (C) 1998 - 2009, 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 http://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 curl_version_info 3 "10 June 2009" "libcurl 7.19.6" "libcurl Manual" |
| .SH NAME |
| curl_version_info - returns run-time libcurl version info |
| .SH SYNOPSIS |
| .B #include <curl/curl.h> |
| .sp |
| .BI "curl_version_info_data *curl_version_info( CURLversion "type ");" |
| .ad |
| .SH DESCRIPTION |
| Returns a pointer to a filled in struct with information about various |
| run-time features in libcurl. \fItype\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. CURLVERSION_NOW 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 **protocols; /* list of 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, the members below also exist: */ |
| int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */ |
| |
| const char *libssh_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 kerberos4 (when using FTP) |
| .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 NTLM authentication. It also |
| allows libcurl to use the current user and the current user's password without |
| the app having to pass them on. (Added in 7.13.2) |
| .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) |
| .RE |
| \fIssl_version\fP is an ASCII string for the OpenSSL version used. If libcurl |
| has no SSL support, this is NULL. |
| |
| \fIssl_version_num\fP is the numerical OpenSSL version value as defined by the |
| OpenSSL project. If libcurl has no SSL support, this is 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 |
| |