           curl_version_info - returns run-time libcurl version info

## SYNOPSIS

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

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

           features can have none, one or more bits set, and the cur-
           rently 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)

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

            CURL_VERSION_SPNEGO
                 libcurl  was built with support for SPNEGO authenti-
                 cation (Simple  and  Protected  GSS-API  Negotiation
                 Mechanism, defined in RFC 2478.) (added in 7.10.8)

           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 sup-
           port, 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  terminated  by  a
           A pointer to a curl_version_info_data struct.

## SEE ALSO

           curl_version(3)