Skip to content
Snippets Groups Projects
curl_version_info.3 3.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • .\" You can view this file with:
    .\" nroff -man [file]
    .\" $Id$
    .\"
    
    .TH curl_version_info 3 "30 Sep 2002" "libcurl 7.10" "libcurl Manual"
    
    .SH NAME
    curl_version_info - returns run-time libcurl version info
    .SH SYNOPSIS
    .B #include <curl/curl.h>
    .sp
    
    .BI "curl_version_info_data *curl_version_info( CURLversion "type ");"
    
    .ad
    .SH DESCRIPTION
    Returns a pointer to a filled in struct with information about various
    
    run-time features in libcurl. \fItype\fP 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 possible 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
    
    .nf
    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;
    .fi
    
    
    \fIage\fP 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).
    
    
    \fIversion\fP is just an ascii string for the libcurl version.
    
    \fIversion_num\fP 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.
    
    \fIhost\fP 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.
    
    \fIfeatures\fP can have none, one or more bits set, and the currently defined
    bits are:
    .TP 5.5
    .B CURL_VERSION_IPV6
    supports IPv6
    .TP
    .B CURL_VERSION_KERBEROS4
    supports kerberos4 (when using FTP)
    .TP
    .B CURL_VERSION_SSL
    supports SSL (HTTPS/FTPS)
    .TP
    .B CURL_VERSION_LIBZ
    supports HTTP deflate using libz
    .PP
    \fIssl_version\fP is an ascii string for the OpenSSL version used. If libcurl
    has no SSL support, this is NULL.
    
    \fIssl_version_num\fP is the numerical OpenSSL version value as defined by the
    OpenSSL project. If libcurl has no SSL support, this is 0.
    
    \fIlibz_version\fP is an ascii string (there is no numerical version). If
    libcurl has no libz support, this is NULL.
    
    \fIprotocols\fP 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.
    
    
    .SH RETURN VALUE
    A pointer to a curl_version_info_data struct.
    .SH "SEE ALSO"
    \fIcurl_version(3)\fP
    .SH BUGS
    No known bugs.