get an argument and add a 'age' field to the struct
This commit is contained in:
parent
84fa12c885
commit
dc9e415602
@ -2,17 +2,23 @@
|
|||||||
.\" nroff -man [file]
|
.\" nroff -man [file]
|
||||||
.\" $Id$
|
.\" $Id$
|
||||||
.\"
|
.\"
|
||||||
.TH curl_version_info 3 "25 Sep 2002" "libcurl 7.10" "libcurl Manual"
|
.TH curl_version_info 3 "30 Sep 2002" "libcurl 7.10" "libcurl Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
curl_version_info - returns run-time libcurl version info
|
curl_version_info - returns run-time libcurl version info
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B #include <curl/curl.h>
|
.B #include <curl/curl.h>
|
||||||
.sp
|
.sp
|
||||||
.BI "curl_version_info_data *curl_version_info( );"
|
.BI "curl_version_info_data *curl_version_info( CURLversion "type ");"
|
||||||
.ad
|
.ad
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
Returns a pointer to a filled in struct with information about various
|
Returns a pointer to a filled in struct with information about various
|
||||||
run-time features in libcurl.
|
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
|
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
|
or not, instead of using compile-time checks, as dynamic/DLL libraries can be
|
||||||
@ -22,6 +28,7 @@ The curl_version_info_data struct looks like this
|
|||||||
|
|
||||||
.nf
|
.nf
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
CURLversion age; /* 0 - this kind of struct */
|
||||||
const char *version; /* human readable string */
|
const char *version; /* human readable string */
|
||||||
unsigned int version_num; /* numeric representation */
|
unsigned int version_num; /* numeric representation */
|
||||||
const char *host; /* human readable string */
|
const char *host; /* human readable string */
|
||||||
@ -33,6 +40,11 @@ typedef struct {
|
|||||||
} curl_version_info_data;
|
} curl_version_info_data;
|
||||||
.fi
|
.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\fP is just an ascii string for the libcurl version.
|
||||||
|
|
||||||
\fIversion_num\fP is a 6 digit hexadecimal number created like this: <2 digits
|
\fIversion_num\fP is a 6 digit hexadecimal number created like this: <2 digits
|
||||||
|
@ -688,7 +688,8 @@ int curl_formparse(char *, struct curl_httppost **,
|
|||||||
#undef CFINIT
|
#undef CFINIT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
|
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
|
||||||
|
defined(__HP_aCC)
|
||||||
#define CFINIT(name) CURLFORM_ ## name
|
#define CFINIT(name) CURLFORM_ ## name
|
||||||
#else
|
#else
|
||||||
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
|
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
|
||||||
@ -916,7 +917,20 @@ 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.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
CURLVERSION_FIRST,
|
||||||
|
CURLVERSION_LAST /* never actually use this */
|
||||||
|
} CURLversion;
|
||||||
|
|
||||||
|
/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by
|
||||||
|
basicly all programs ever, that want to get version information. It is
|
||||||
|
meant to be a built-in version number for what kind of struct the caller
|
||||||
|
expects. If the struct ever changes, we redfine the NOW to another enum
|
||||||
|
from above. */
|
||||||
|
#define CURLVERSION_NOW CURLVERSION_FIRST
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
CURLversion age; /* age of the returned 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 */
|
const char *host; /* OS/host/cpu/machine when configured */
|
||||||
@ -925,7 +939,7 @@ typedef struct {
|
|||||||
long ssl_version_num; /* number */
|
long ssl_version_num; /* number */
|
||||||
const 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 char *protocols[1];
|
const char **protocols;
|
||||||
} curl_version_info_data;
|
} curl_version_info_data;
|
||||||
|
|
||||||
#define CURL_VERSION_IPV6 (1<<0)
|
#define CURL_VERSION_IPV6 (1<<0)
|
||||||
@ -934,7 +948,7 @@ typedef struct {
|
|||||||
#define CURL_VERSION_LIBZ (1<<3)
|
#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 */
|
||||||
curl_version_info_data *curl_version_info(void);
|
curl_version_info_data *curl_version_info(CURLversion);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -122,39 +122,40 @@ char *curl_version(void)
|
|||||||
|
|
||||||
static const char *protocols[] = {
|
static const char *protocols[] = {
|
||||||
#ifndef CURL_DISABLE_FTP
|
#ifndef CURL_DISABLE_FTP
|
||||||
{ "ftp" },
|
"ftp",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_GOPHER
|
#ifndef CURL_DISABLE_GOPHER
|
||||||
{ "gopher" },
|
"gopher",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_TELNET
|
#ifndef CURL_DISABLE_TELNET
|
||||||
{ "telnet" },
|
"telnet",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_DICT
|
#ifndef CURL_DISABLE_DICT
|
||||||
{ "dict" },
|
"dict",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_LDAP
|
#ifndef CURL_DISABLE_LDAP
|
||||||
{ "ldap" },
|
"ldap",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_HTTP
|
#ifndef CURL_DISABLE_HTTP
|
||||||
{ "http" },
|
"http",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_FILE
|
#ifndef CURL_DISABLE_FILE
|
||||||
{ "file" },
|
"file",
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_SSLEAY
|
#ifdef USE_SSLEAY
|
||||||
#ifndef CURL_DISABLE_HTTP
|
#ifndef CURL_DISABLE_HTTP
|
||||||
{ "https" },
|
"https",
|
||||||
#endif
|
#endif
|
||||||
#ifndef CURL_DISABLE_FTP
|
#ifndef CURL_DISABLE_FTP
|
||||||
{ "ftps" },
|
"ftps",
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
{ NULL }
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static curl_version_info_data version_info = {
|
static curl_version_info_data version_info = {
|
||||||
|
CURLVERSION_FIRST,
|
||||||
LIBCURL_VERSION,
|
LIBCURL_VERSION,
|
||||||
LIBCURL_VERSION_NUM,
|
LIBCURL_VERSION_NUM,
|
||||||
OS, /* as found by configure or set by hand at build-time */
|
OS, /* as found by configure or set by hand at build-time */
|
||||||
@ -178,7 +179,7 @@ static curl_version_info_data version_info = {
|
|||||||
protocols
|
protocols
|
||||||
};
|
};
|
||||||
|
|
||||||
curl_version_info_data *curl_version_info(void)
|
curl_version_info_data *curl_version_info(CURLversion stamp)
|
||||||
{
|
{
|
||||||
#ifdef USE_SSLEAY
|
#ifdef USE_SSLEAY
|
||||||
static char ssl_buffer[80];
|
static char ssl_buffer[80];
|
||||||
@ -194,6 +195,7 @@ curl_version_info_data *curl_version_info(void)
|
|||||||
version_info.libz_version = zlibVersion();
|
version_info.libz_version = zlibVersion();
|
||||||
/* libz left NULL if non-existing */
|
/* libz left NULL if non-existing */
|
||||||
#endif
|
#endif
|
||||||
|
(void)stamp; /* avoid compiler warnings, we don't use this */
|
||||||
|
|
||||||
return &version_info;
|
return &version_info;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user