curl_version_info – linux man page

August 27th, 2009 | Tags: , ,

curl_version_info – returns run-time libcurl version info

USAGE
       #include <curl/curl.h>

       curl_version_info_data *curl_version_info( 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 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  possi-
       ble  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

       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;

       age 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).

       version is just an ascii string for the libcurl version.

       version_num  is a 6 digit hexadecimal number created like this: <2 dig-
       its major number> | <2 digits minor number> | <2 digits 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:

       CURL_VERSION_IPV6
             supports IPv6

       CURL_VERSION_KERBEROS4
             supports kerberos4 (when using FTP)

       CURL_VERSION_SSL
             supports SSL (HTTPS/FTPS)

       CURL_VERSION_LIBZ
             supports HTTP deflate using libz

       CURL_VERSION_NTLM
             supports HTTP NTLM (added in 7.10.6)

       CURL_VERSION_GSSNEGOTIATE
             supports HTTP GSS-Negotiate (added in 7.10.6)

       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)

       ssl_version is an ascii string for the OpenSSL version used. If libcurl
       has no SSL support, this is NULL.

       ssl_version_num is the numerical OpenSSL version value  as  defined  by
       the OpenSSL project. If libcurl has no SSL support, this is 0.

       libz_version  is  an  ascii  string (there is no numerical version). If
       libcurl has no libz support, this is NULL.

       protocols 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 ter-
       minated by a NULL entry.

RETURN VALUE
       A pointer to a curl_version_info_data struct.

Comments are closed.