NS/releases/3.05/source/curl/docs/libcurl/curl_version_info.html

127 lines
4.1 KiB
HTML
Raw Normal View History

<HTML>
<BODY>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
curl_version_info - returns run-time libcurl version info
</PRE>
<H2>SYNOPSIS</H2><PRE>
<B>#include</B> <B>&lt;curl/curl.h&gt;</B>
<B>curl_version_info_data</B> <B>*curl_version_info(</B> <B>CURLversion</B>
<I>type</I><B>);</B>
</PRE>
<H2>DESCRIPTION</H2><PRE>
Returns a pointer to a filled in struct with information
about various run-time features in libcurl. <I>type</I> 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 pro-
grams 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 com-
pile-time checks, as dynamic/DLL libraries can be changed
independent of applications.
The curl_version_info_data struct looks like this
typedef struct {
CURLversion age; /* 0 - this kind of struct */
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 */
char *libz_version; /* human readable string */
const char *protocols[]; /* list of protocols */
} curl_version_info_data;
<I>age</I> describes what kind of struct this is. It is always 0
now. In a future libcurl, if this struct changes, this age
counter may be increased, and then the struct for number 1
will look different (except for this first struct field).
<I>version</I> is just an ascii string for the libcurl version.
<I>version</I><B>_</B><I>num</I> is a 6 digit hexadecimal number created like
this: &lt;2 digits major number&gt; | &lt;2 digits minor number&gt; |
&lt;2 digits patch number&gt;. Version 7.9.8 is therefore
returned as 0x070908.
<I>host</I> is an ascii string showing what host information that
<I>features</I> can have none, one or more bits set, and the cur-
rently defined bits are:
<B>CURL_VERSION_IPV6</B>
supports IPv6
<B>CURL_VERSION_KERBEROS4</B>
supports kerberos4 (when using FTP)
<B>CURL_VERSION_SSL</B>
supports SSL (HTTPS/FTPS)
<B>CURL_VERSION_LIBZ</B>
supports HTTP deflate using libz
<I>ssl</I><B>_</B><I>version</I> is an ascii string for the OpenSSL version
used. If libcurl has no SSL support, this is NULL.
<I>ssl</I><B>_</B><I>version</I><B>_</B><I>num</I> is the numerical OpenSSL version value as
defined by the OpenSSL project. If libcurl has no SSL sup-
port, this is 0.
<I>libz</I><B>_</B><I>version</I> is an ascii string (there is no numerical
version). If libcurl has no libz support, this is NULL.
<I>protocols</I> 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.
</PRE>
<H2>RETURN VALUE</H2><PRE>
A pointer to a curl_version_info_data struct.
</PRE>
<H2>SEE ALSO</H2><PRE>
<I>curl</I><B>_</B><I>version(3)</I>
</PRE>
<H2>BUGS</H2><PRE>
No known bugs.
</PRE>
<HR>
<ADDRESS>
Man(1) output converted with
<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
</ADDRESS>
</BODY>
</HTML>