curl/docs/libcurl/curl_version_info.3

117 lines
4.4 KiB
Groff
Raw Normal View History

2002-09-26 15:03:22 +02:00
.\" You can view this file with:
.\" nroff -man [file]
.\" $Id$
.\"
2004-05-11 16:15:49 +02:00
.TH curl_version_info 3 "11 May 2004" "libcurl 7.12" "libcurl Manual"
2002-09-26 15:03:22 +02:00
.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 ");"
2002-09-26 15:03:22 +02:00
.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);
2002-09-26 15:03:22 +02:00
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 {
2004-05-11 16:15:49 +02:00
CURLversion age; /* see description below */
/* when 'age' is 0 or higher, the members below also exist: */
2002-09-26 15:03:22 +02:00
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 */
2004-05-11 16:15:49 +02:00
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 */
2002-09-26 15:03:22 +02:00
} curl_version_info_data;
.fi
2004-05-11 16:15:49 +02:00
\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.
2002-09-26 15:03:22 +02:00
\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.
2002-09-26 15:03:22 +02:00
\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:
2004-05-11 16:15:49 +02:00
.RS
.IP CURL_VERSION_IPV6
2002-09-26 15:03:22 +02:00
supports IPv6
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_KERBEROS4
2002-09-26 15:03:22 +02:00
supports kerberos4 (when using FTP)
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_SSL
2002-09-26 15:03:22 +02:00
supports SSL (HTTPS/FTPS)
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_LIBZ
2002-09-26 15:03:22 +02:00
supports HTTP deflate using libz
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_NTLM
2003-06-26 13:41:24 +02:00
supports HTTP NTLM (added in 7.10.6)
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_GSSNEGOTIATE
2003-06-26 13:41:24 +02:00
supports HTTP GSS-Negotiate (added in 7.10.6)
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_DEBUG
2003-06-26 13:41:24 +02:00
libcurl was built with extra debug capabilities built-in. This is mainly of
interest for libcurl hackers. (added in 7.10.6)
2004-05-11 16:15:49 +02:00
.IP CURL_VERSION_ASYNCHDNS
2003-08-12 10:26:38 +02:00
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)
2004-05-11 16:15:49 +02:00
.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)
2004-05-11 16:15:49 +02:00
.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
2002-09-26 15:03:22 +02:00
\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
2003-08-12 10:26:38 +02:00