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