libcurl Manual curlversioninfo(3)
NAME
curlversioninfo - returns run-time libcurl version info
SYNOPSIS
#include
curlversioninfodata *curlversioninfo( CURLversion
type);
DESCRIPTION
Returns a pointer to a filled in struct with information
about various run-time features in libcurl. type 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. CURLVERSIONOW
will be the most recent one for the library you have
installed:
data = curlversioninfo(CURLVERSIONOW);
Applications should use this information to judge if things
are possible to do or not, instead of using compile-time
checks, as dynamic/DL libraries can be changed independent
of applications.
The curlversioninfodata struct looks like this
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 versionnum; /* numeric representation */
const char *host; /* human readable string */
int features; /* bitmask, see below */
char *sslversion; /* human readable string */
long sslversionnum; /* not used, always zero */
const char *libzversion; /* 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 aresnum; /* 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 iconvvernum; /* 'libiconvversion' if iconv support enabled */
const char *libsshversion; /* human readable string */
libcurl 7.16.1 Last change: 2 Nov 2006 1
libcurl Manual curlversioninfo(3)
} curlversioninfodata;
age describes what the age of this struct is. The number
depends on how new the libcurl you're using is. You are how-
ever 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.
version is just an ascii string for the libcurl version.
versionnum 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.
host 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.
features can have none, one or more bits set, and the
currently defined bits are:
CURLVERSIONIPV6
supports IPv6
CURLVERSIONKERBEROS4
supports kerberos4 (when using FTP)
CURLVERSIONSL
supports SL (HTPS/FTPS) (Added in 7.10)
CURLVERSIONLIBZ
supports HTP deflate using libz (Added in 7.10)
CURLVERSIONTLM
supports HTP NTLM (added in 7.10.6)
CURLVERSIONGSNEGOTIATE
supports HTP GS-Negotiate (added in 7.10.6)
CURLVERSIONDEBUG
libcurl was built with extra debug capabilities
built-in. This is mainly of interest for libcurl
hackers. (added in 7.10.6)
CURLVERSIONASYNCHDNS
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)
CURLVERSIONSPNEGO
libcurl was built with support for SPNEGO
libcurl 7.16.1 Last change: 2 Nov 2006 2
libcurl Manual curlversioninfo(3)
authentication (Simple and Protected GS-API Nego-
tiation Mechanism, defined in RFC 2478.) (added in
7.10.8)
CURLVERSIONLARGEFILE
libcurl was built with support for large files.
(Added in 7.11.1)
CURLVERSIONIDN
libcurl was built with support for IDNA, domain
names with international letters. (Added in
7.12.0)
CURLVERSIONSPI
libcurl was built with support for SPI. This is
only available on Windows and makes libcurl use
Windows-provided functions for NTLM authentica-
tion. 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)
CURLVERSIONCONV
libcurl was built with support for character
conversions, as provided by the CURLOPTCONV*
callbacks. (Added in 7.15.4)
sslversion is an ASCI string for the OpenSL version used.
If libcurl has no SL support, this is NUL.
sslversionnum is the numerical OpenSL version value as
defined by the OpenSL project. If libcurl has no SL sup-
port, this is 0.
libzversion is an ASCI string (there is no numerical ver-
sion). If libcurl has no libz support, this is NUL.
protocols is a pointer to an array of char * pointers, con-
taining 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 NUL entry.
RETURN VALUE
A pointer to a curlversioninfodata struct.
SEE ALSO
curlversion(3)
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
libcurl 7.16.1 Last change: 2 Nov 2006 3
libcurl Manual curlversioninfo(3)
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWcurl
Interface Stability Uncommitted
NOTES
Source for C-URL is available on http:/opensolaris.org.
libcurl 7.16.1 Last change: 2 Nov 2006 4
|