mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
enhanced curl_version_info
This commit is contained in:
parent
9031e33b66
commit
9247daf953
3
CHANGES
3
CHANGES
@ -7,6 +7,9 @@
|
||||
Changelog
|
||||
|
||||
|
||||
Daniel (26 Sep 2002)
|
||||
- Extended curl_version_info() more and wrote a man page for it.
|
||||
|
||||
Daniel (25 Sep 2002)
|
||||
- libcurl could leak memory when downloading multiple files using http ranges.
|
||||
|
||||
|
@ -19,6 +19,7 @@ man_MANS = \
|
||||
curl_slist_append.3 \
|
||||
curl_slist_free_all.3 \
|
||||
curl_version.3 \
|
||||
curl_version_info.3 \
|
||||
curl_escape.3 \
|
||||
curl_unescape.3 \
|
||||
curl_free.3 \
|
||||
@ -53,6 +54,7 @@ HTMLPAGES = \
|
||||
curl_slist_append.html \
|
||||
curl_slist_free_all.html \
|
||||
curl_version.html \
|
||||
curl_version_info.html \
|
||||
curl_escape.html \
|
||||
curl_unescape.html \
|
||||
curl_free.html \
|
||||
|
81
docs/libcurl/curl_version_info.3
Normal file
81
docs/libcurl/curl_version_info.3
Normal file
@ -0,0 +1,81 @@
|
||||
.\" You can view this file with:
|
||||
.\" nroff -man [file]
|
||||
.\" $Id$
|
||||
.\"
|
||||
.TH curl_version_info 3 "25 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( );"
|
||||
.ad
|
||||
.SH DESCRIPTION
|
||||
Returns a pointer to a filled in struct with information about various
|
||||
run-time features in libcurl.
|
||||
|
||||
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 {
|
||||
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
|
||||
|
||||
\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.
|
@ -8,46 +8,46 @@ HTML>
|
||||
<H1 ALIGN="CENTER">Index to Curl documentation</H1>
|
||||
|
||||
<H2>Programs</H2>
|
||||
<P><A HREF="curl-config.html">curl-config.html</A>
|
||||
<P><A HREF="curl.html">curl.html</A>
|
||||
<P><A HREF="curl-config.html">curl-config</A>
|
||||
<P><A HREF="curl.html">curl</A>
|
||||
|
||||
<h2>Overviews</h2>
|
||||
<P><A HREF="libcurl.html">libcurl.html</A>
|
||||
<p><a href="libcurl-multi.html">libcurl-multi.html</a>
|
||||
<p><a href="libcurl-errors.html">libcurl-errors.html</a>
|
||||
<P><A HREF="libcurl.html">libcurl</A>
|
||||
<p><a href="libcurl-multi.html">libcurl-multi</a>
|
||||
<p><a href="libcurl-errors.html">libcurl-errors</a>
|
||||
|
||||
<H2>Library routines</H2>
|
||||
<P><A HREF="curl_easy_cleanup.html">curl_easy_cleanup.html</A>
|
||||
<P><A HREF="curl_easy_duphandle.html">curl_easy_duphandle.html</A>
|
||||
<P><A HREF="curl_easy_getinfo.html">curl_easy_getinfo.html</A>
|
||||
<P><A HREF="curl_easy_cleanup.html">curl_easy_cleanup</A>
|
||||
<P><A HREF="curl_easy_duphandle.html">curl_easy_duphandle</A>
|
||||
<P><A HREF="curl_easy_getinfo.html">curl_easy_getinfo</A>
|
||||
<P><A HREF="curl_easy_init.html">curl_easy_init.html</A>
|
||||
<P><A HREF="curl_easy_perform.html">curl_easy_perform.html</A>
|
||||
<P><A HREF="curl_easy_setopt.html">curl_easy_setopt.html</A>
|
||||
<P><A HREF="curl_escape.html">curl_escape.html</A>
|
||||
<P><A HREF="curl_formadd.html">curl_formadd.html</A>
|
||||
<P><A HREF="curl_formfree.html">curl_formfree.html</A>
|
||||
<P><A HREF="curl_formparse.html">curl_formparse.html</A>
|
||||
<P><A HREF="curl_free.html">curl_free.html</A>
|
||||
<P><A HREF="curl_getdate.html">curl_getdate.html</A>
|
||||
<P><A HREF="curl_getenv.html">curl_getenv.html</A>
|
||||
<P><A HREF="curl_global_cleanup.html">curl_global_cleanup.html</A>
|
||||
<P><A HREF="curl_global_init.html">curl_global_init.html</A>
|
||||
<P><A HREF="curl_mprintf.html">curl_mprintf.html</A>
|
||||
<P><A HREF="curl_slist_append.html">curl_slist_append.html</A>
|
||||
<P><A HREF="curl_slist_free_all.html">curl_slist_free_all.html</A>
|
||||
<P><A HREF="curl_strequal.html">curl_strequal.html</A>
|
||||
<P><A HREF="curl_strnequal.html">curl_strnequal.html</A>
|
||||
<P><A HREF="curl_unescape.html">curl_unescape.html</A>
|
||||
<P><A HREF="curl_version.html">curl_version.html</A>
|
||||
<P><A HREF="curl_easy_perform.html">curl_easy_perform</A>
|
||||
<P><A HREF="curl_easy_setopt.html">curl_easy_setopt</A>
|
||||
<P><A HREF="curl_escape.html">curl_escape</A>
|
||||
<P><A HREF="curl_formadd.html">curl_formadd</A>
|
||||
<P><A HREF="curl_formfree.html">curl_formfree</A>
|
||||
<P><A HREF="curl_formparse.html">curl_formparse</A>
|
||||
<P><A HREF="curl_free.html">curl_free</A>
|
||||
<P><A HREF="curl_getdate.html">curl_getdate</A>
|
||||
<P><A HREF="curl_getenv.html">curl_getenv</A>
|
||||
<P><A HREF="curl_global_cleanup.html">curl_global_cleanup</A>
|
||||
<P><A HREF="curl_global_init.html">curl_global_init</A>
|
||||
<P><A HREF="curl_mprintf.html">curl_mprintf</A>
|
||||
<P><A HREF="curl_slist_append.html">curl_slist_append</A>
|
||||
<P><A HREF="curl_slist_free_all.html">curl_slist_free_all</A>
|
||||
<P><A HREF="curl_strequal.html">curl_strequal</A>
|
||||
<P><A HREF="curl_strnequal.html">curl_strnequal</A>
|
||||
<P><A HREF="curl_unescape.html">curl_unescape</A>
|
||||
<P><A HREF="curl_version.html">curl_version</A>
|
||||
<P><A HREF="curl_version_info.html">curl_version_info</A>
|
||||
<hr>
|
||||
<p><a href="curl_multi_add_handle.html">curl_multi_add_handle.html</a>
|
||||
<p><a href="curl_multi_cleanup.html">curl_multi_cleanup.html</a>
|
||||
<p><a href="curl_multi_fdset.html">curl_multi_fdset.html</a>
|
||||
<p><a href="curl_multi_info_read.html">curl_multi_info_read.html</a>
|
||||
<p><a href="curl_multi_init.html">curl_multi_init.html</a>
|
||||
<p><a href="curl_multi_perform.html">curl_multi_perform.html</a>
|
||||
<p><a href="curl_multi_remove_handle.html">curl_multi_remove_handle.html</a>
|
||||
|
||||
<p><a href="curl_multi_add_handle.html">curl_multi_add_handle</a>
|
||||
<p><a href="curl_multi_cleanup.html">curl_multi_cleanup</a>
|
||||
<p><a href="curl_multi_fdset.html">curl_multi_fdset</a>
|
||||
<p><a href="curl_multi_info_read.html">curl_multi_info_read</a>
|
||||
<p><a href="curl_multi_init.html">curl_multi_init</a>
|
||||
<p><a href="curl_multi_perform.html">curl_multi_perform</a>
|
||||
<p><a href="curl_multi_remove_handle.html">curl_multi_remove_handle</a>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -916,29 +916,25 @@ CURLcode curl_share_destroy (curl_share *);
|
||||
* Structures for querying information about the curl library at runtime.
|
||||
*/
|
||||
|
||||
/* declared as a struct to allow future expansion while remaining backwards
|
||||
* and binary compatible; any new fields in these two structs must be added
|
||||
* after the existing fields */
|
||||
typedef struct {
|
||||
const char *protoname;
|
||||
} curl_runtime_protocol_info;
|
||||
|
||||
typedef struct {
|
||||
const char *version; /* LIBCURL_VERSION */
|
||||
unsigned int version_num; /* LIBCURL_VERSION_NUM */
|
||||
const char *host; /* OS/host/cpu/machine when configured */
|
||||
int features; /* bitmask, see defines below */
|
||||
char *ssl_version; /* human readable string */
|
||||
long ssl_version_num; /* number */
|
||||
char *libz_version; /* human readable string */
|
||||
const char *libz_version; /* human readable string */
|
||||
/* protocols is terminated by an entry with a NULL protoname */
|
||||
const curl_runtime_protocol_info *protocols;
|
||||
const char *protocols[1];
|
||||
} curl_version_info_data;
|
||||
|
||||
#define CURL_VERSION_IPV6 (1<<0)
|
||||
#define CURL_VERSION_KERBEROS4 (1<<1)
|
||||
#define CURL_VERSION_SSL (1<<2)
|
||||
#define CURL_VERSION_LIBZ (1<<3)
|
||||
|
||||
/* returns a pointer to a static copy of the version info struct */
|
||||
const curl_version_info_data *curl_version_info(void);
|
||||
curl_version_info_data *curl_version_info(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ char *curl_version(void)
|
||||
|
||||
/* data for curl_version_info */
|
||||
|
||||
static const curl_runtime_protocol_info protocols[] = {
|
||||
static const char *protocols[] = {
|
||||
#ifndef CURL_DISABLE_FTP
|
||||
{ "ftp" },
|
||||
#endif
|
||||
@ -157,12 +157,19 @@ static const curl_runtime_protocol_info protocols[] = {
|
||||
static curl_version_info_data version_info = {
|
||||
LIBCURL_VERSION,
|
||||
LIBCURL_VERSION_NUM,
|
||||
OS, /* as found by configure or set by hand at build-time */
|
||||
0 /* features is 0 by default */
|
||||
#ifdef ENABLE_IPV6
|
||||
| CURL_VERSION_IPV6
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
| CURL_VERSION_KERBEROS4
|
||||
#endif
|
||||
#ifdef USE_SSLEAY
|
||||
| CURL_VERSION_SSL
|
||||
#endif
|
||||
#ifdef HAVE_LIBZ
|
||||
| CURL_VERSION_LIBZ
|
||||
#endif
|
||||
,
|
||||
NULL, /* ssl_version */
|
||||
@ -171,7 +178,7 @@ static curl_version_info_data version_info = {
|
||||
protocols
|
||||
};
|
||||
|
||||
const curl_version_info_data *curl_version_info(void)
|
||||
curl_version_info_data *curl_version_info(void)
|
||||
{
|
||||
#ifdef USE_SSLEAY
|
||||
static char ssl_buffer[80];
|
||||
|
Loading…
Reference in New Issue
Block a user