.\" 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 .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.