curl_version_info.html   [plain text]


<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>