| .\" You can view this file with: |
| .\" nroff -man [file] |
| .\" $Id$ |
| .\" |
| .TH curl_version_info 3 "11 May 2004" "libcurl 7.12" "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 an 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; /* number */ |
| 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 */ |
| |
| } curl_version_info_data; |
| .fi |
| |
| \fIage\fP describes what age of this struct this is. The number depends on how |
| new libcurl you're using. 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) |
| .IP CURL_VERSION_LIBZ |
| supports HTTP deflate using libz |
| .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 extra debug capabilities built-in. This is mainly of |
| interest for libcurl hackers. (added in 7.10.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. |
| .IP CURL_VERSION_IDN |
| libcurl was built with support for IDNA, domain names with international |
| letters. |
| .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 |
| |