1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

7.3 commit

This commit is contained in:
Daniel Stenberg 2000-09-28 10:26:44 +00:00
parent 221f1c2ca2
commit 13962adcb5
13 changed files with 228 additions and 133 deletions

14
CHANGES
View File

@ -8,6 +8,18 @@
Version 7.3 Version 7.3
Daniel (28 September 2000)
- Removed the base64_krb.[ch] files. They've now replaced the former
base64.[ch] files.
Daniel (26 September 2000)
- Updated some docs.
- I changed the OpenSSL fix to work with older versions as well. The posted
patch was only working with 0.9.6 and no older ones.
Version 7.3-pre8
Daniel (25 September 2000) Daniel (25 September 2000)
- Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and - Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and
showed us what needed to get patched in order to make it build properly showed us what needed to get patched in order to make it build properly
@ -33,7 +45,7 @@ Daniel (21 September 2000)
Daniel (20 September 2000) Daniel (20 September 2000)
- Richard Prescott solved another name lookup buffer size problem. I took this - Richard Prescott solved another name lookup buffer size problem. I took this
opportunity to rewrite the GetHost() function. With these large buffer opportunity to rewrite the GetHost() function. With these large buffer
sizes, I think keeping them as local arrays quickly turn ugly. I know use sizes, I think keeping them as local arrays quickly turn ugly. I now use
malloc() to get the buffer memory. Thanks to this, I now can realloc() to a malloc() to get the buffer memory. Thanks to this, I now can realloc() to a
large buffer in case of demand (errno == ERANGE) in case a solution like large buffer in case of demand (errno == ERANGE) in case a solution like
that would become necessary. I still want to avoid that kind of nastiness. that would become necessary. I still want to avoid that kind of nastiness.

View File

@ -33,3 +33,6 @@
/* Define if you need the _REENTRANT define for some functions */ /* Define if you need the _REENTRANT define for some functions */
#undef NEED_REENTRANT #undef NEED_REENTRANT
/* Define if you have the Kerberos4 libraries (including -ldes) */
#undef KRB4

View File

@ -49,6 +49,9 @@
/* Define if you need the _REENTRANT define for some functions */ /* Define if you need the _REENTRANT define for some functions */
#undef NEED_REENTRANT #undef NEED_REENTRANT
/* Define if you have the Kerberos4 libraries (including -ldes) */
#undef KRB4
/* The number of bytes in a long double. */ /* The number of bytes in a long double. */
#undef SIZEOF_LONG_DOUBLE #undef SIZEOF_LONG_DOUBLE
@ -94,6 +97,9 @@
/* Define if you have the inet_ntoa_r function. */ /* Define if you have the inet_ntoa_r function. */
#undef HAVE_INET_NTOA_R #undef HAVE_INET_NTOA_R
/* Define if you have the krb_get_our_ip_for_realm function. */
#undef HAVE_KRB_GET_OUR_IP_FOR_REALM
/* Define if you have the localtime_r function. */ /* Define if you have the localtime_r function. */
#undef HAVE_LOCALTIME_R #undef HAVE_LOCALTIME_R
@ -124,6 +130,9 @@
/* Define if you have the stricmp function. */ /* Define if you have the stricmp function. */
#undef HAVE_STRICMP #undef HAVE_STRICMP
/* Define if you have the strlcpy function. */
#undef HAVE_STRLCPY
/* Define if you have the strstr function. */ /* Define if you have the strstr function. */
#undef HAVE_STRSTR #undef HAVE_STRSTR
@ -145,6 +154,9 @@
/* Define if you have the <crypto.h> header file. */ /* Define if you have the <crypto.h> header file. */
#undef HAVE_CRYPTO_H #undef HAVE_CRYPTO_H
/* Define if you have the <des.h> header file. */
#undef HAVE_DES_H
/* Define if you have the <dlfcn.h> header file. */ /* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H #undef HAVE_DLFCN_H
@ -160,6 +172,9 @@
/* Define if you have the <io.h> header file. */ /* Define if you have the <io.h> header file. */
#undef HAVE_IO_H #undef HAVE_IO_H
/* Define if you have the <krb.h> header file. */
#undef HAVE_KRB_H
/* Define if you have the <malloc.h> header file. */ /* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H #undef HAVE_MALLOC_H
@ -256,6 +271,9 @@
/* Define if you have the nsl library (-lnsl). */ /* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL #undef HAVE_LIBNSL
/* Define if you have the resolv library (-lresolv). */
#undef HAVE_LIBRESOLV
/* Define if you have the resolve library (-lresolve). */ /* Define if you have the resolve library (-lresolve). */
#undef HAVE_LIBRESOLVE #undef HAVE_LIBRESOLVE

View File

@ -2,7 +2,7 @@ dnl $Id$
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
AC_INIT(lib/urldata.h) AC_INIT(lib/urldata.h)
AM_CONFIG_HEADER(config.h src/config.h) AM_CONFIG_HEADER(config.h src/config.h)
AM_INIT_AUTOMAKE(curl,"7.3-pre8") AM_INIT_AUTOMAKE(curl,"7.3")
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
dnl dnl

View File

@ -141,6 +141,7 @@ FAQ
Solaris (native cc compiler) Solaris (native cc compiler)
HPUX (native cc compiler) HPUX (native cc compiler)
SGI IRIX (native cc compiler) SGI IRIX (native cc compiler)
SCO UNIX (native cc compiler)
When configuring curl, I specify --with-ssl. OpenSSL is installed in When configuring curl, I specify --with-ssl. OpenSSL is installed in
/usr/local/ssl Configure reports SSL in /usr/local/ssl, but fails to find /usr/local/ssl Configure reports SSL in /usr/local/ssl, but fails to find

View File

@ -2,7 +2,7 @@
.\" nroff -man [file] .\" nroff -man [file]
.\" Written by daniel@haxx.se .\" Written by daniel@haxx.se
.\" .\"
.TH curl_easy_init 3 "22 May 2000" "Curl 7.0" "libcurl Manual" .TH curl_easy_init 3 "26 September 2000" "Curl 7.0" "libcurl Manual"
.SH NAME .SH NAME
curl_easy_init - Start a libcurl "easy" session curl_easy_init - Start a libcurl "easy" session
.SH SYNOPSIS .SH SYNOPSIS
@ -16,6 +16,9 @@ that you shall use as input to the other easy-functions. The init calls
intializes curl and this call MUST have a corresponding call to intializes curl and this call MUST have a corresponding call to
.I curl_easy_cleanup .I curl_easy_cleanup
when the operation is complete. when the operation is complete.
On win32 systems, you need to init the winsock stuff manually, libcurl will
not do that for you. WSAStartup() and WSACleanup() should be used accordingly.
.SH RETURN VALUE .SH RETURN VALUE
If this function returns NULL, something went wrong and you cannot use the If this function returns NULL, something went wrong and you cannot use the
other curl functions. other curl functions.

View File

@ -442,7 +442,7 @@ char *curl_getenv(char *variable);
char *curl_version(void); char *curl_version(void);
/* This is the version number */ /* This is the version number */
#define LIBCURL_VERSION "7.3-pre6" #define LIBCURL_VERSION "7.3"
#define LIBCURL_VERSION_NUM 0x070300 #define LIBCURL_VERSION_NUM 0x070300
/* linked-list structure for the CURLOPT_QUOTE option */ /* linked-list structure for the CURLOPT_QUOTE option */

View File

@ -2,7 +2,7 @@
# $Id$ # $Id$
# #
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign
lib_LTLIBRARIES = libcurl.la lib_LTLIBRARIES = libcurl.la
@ -23,7 +23,8 @@ download.c getdate.h ldap.c ssluse.c version.c \
download.h getenv.c ldap.h ssluse.h \ download.h getenv.c ldap.h ssluse.h \
escape.c getenv.h mprintf.c telnet.c \ escape.c getenv.h mprintf.c telnet.c \
escape.h getpass.c netrc.c telnet.h \ escape.h getpass.c netrc.c telnet.h \
writeout.c writeout.h highlevel.c strequal.c strequal.h easy.c writeout.c writeout.h highlevel.c strequal.c strequal.h easy.c \
security.h security.c krb4.c
# Say $(srcdir), so GNU make does not report an ambiguity with the .y.c rule. # Say $(srcdir), so GNU make does not report an ambiguity with the .y.c rule.
$(srcdir)/getdate.c: getdate.y $(srcdir)/getdate.c: getdate.y

View File

@ -77,7 +77,7 @@ RANLIB = @RANLIB@
VERSION = @VERSION@ VERSION = @VERSION@
YACC = @YACC@ YACC = @YACC@
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign
lib_LTLIBRARIES = libcurl.la lib_LTLIBRARIES = libcurl.la
@ -86,7 +86,7 @@ lib_LTLIBRARIES = libcurl.la
INCLUDES = -I$(top_srcdir)/include INCLUDES = -I$(top_srcdir)/include
libcurl_la_SOURCES = arpa_telnet.h file.c getpass.h netrc.h timeval.c base64.c file.h hostip.c progress.c timeval.h base64.h formdata.c hostip.h progress.h cookie.c formdata.h http.c sendf.c cookie.h ftp.c http.h sendf.h url.c dict.c ftp.h if2ip.c speedcheck.c url.h dict.h getdate.c if2ip.h speedcheck.h urldata.h download.c getdate.h ldap.c ssluse.c version.c download.h getenv.c ldap.h ssluse.h escape.c getenv.h mprintf.c telnet.c escape.h getpass.c netrc.c telnet.h writeout.c writeout.h highlevel.c strequal.c strequal.h easy.c libcurl_la_SOURCES = arpa_telnet.h file.c getpass.h netrc.h timeval.c base64.c file.h hostip.c progress.c timeval.h base64.h formdata.c hostip.h progress.h cookie.c formdata.h http.c sendf.c cookie.h ftp.c http.h sendf.h url.c dict.c ftp.h if2ip.c speedcheck.c url.h dict.h getdate.c if2ip.h speedcheck.h urldata.h download.c getdate.h ldap.c ssluse.c version.c download.h getenv.c ldap.h ssluse.h escape.c getenv.h mprintf.c telnet.c escape.h getpass.c netrc.c telnet.h writeout.c writeout.h highlevel.c strequal.c strequal.h easy.c security.h security.c krb4.c
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h ../src/config.h CONFIG_HEADER = ../config.h ../src/config.h
@ -104,7 +104,7 @@ libcurl_la_OBJECTS = file.lo timeval.lo base64.lo hostip.lo progress.lo \
formdata.lo cookie.lo http.lo sendf.lo ftp.lo url.lo dict.lo if2ip.lo \ formdata.lo cookie.lo http.lo sendf.lo ftp.lo url.lo dict.lo if2ip.lo \
speedcheck.lo getdate.lo download.lo ldap.lo ssluse.lo version.lo \ speedcheck.lo getdate.lo download.lo ldap.lo ssluse.lo version.lo \
getenv.lo escape.lo mprintf.lo telnet.lo getpass.lo netrc.lo \ getenv.lo escape.lo mprintf.lo telnet.lo getpass.lo netrc.lo \
writeout.lo highlevel.lo strequal.lo easy.lo writeout.lo highlevel.lo strequal.lo easy.lo security.lo krb4.lo
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)

View File

@ -295,7 +295,7 @@ CURLcode http(struct connectdata *conn)
!data->auth_host || !data->auth_host ||
strequal(data->auth_host, data->hostname)) { strequal(data->auth_host, data->hostname)) {
sprintf(data->buffer, "%s:%s", data->user, data->passwd); sprintf(data->buffer, "%s:%s", data->user, data->passwd);
if(base64Encode(data->buffer, 0, /* size zero makes it do strlen() */ if(base64_encode(data->buffer, strlen(data->buffer),
&authorization) >= 0) { &authorization) >= 0) {
data->ptr_userpwd = maprintf( "Authorization: Basic %s\015\012", data->ptr_userpwd = maprintf( "Authorization: Basic %s\015\012",
authorization); authorization);

View File

@ -1392,7 +1392,8 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect)
if(data->bits.proxy_user_passwd) { if(data->bits.proxy_user_passwd) {
char *authorization; char *authorization;
sprintf(data->buffer, "%s:%s", data->proxyuser, data->proxypasswd); sprintf(data->buffer, "%s:%s", data->proxyuser, data->proxypasswd);
if(base64Encode(data->buffer, 0, &authorization) >= 0) { if(base64_encode(data->buffer, strlen(data->buffer),
&authorization) >= 0) {
data->ptr_proxyuserpwd = data->ptr_proxyuserpwd =
maprintf("Proxy-authorization: Basic %s\015\012", authorization); maprintf("Proxy-authorization: Basic %s\015\012", authorization);
free(authorization); free(authorization);

View File

@ -87,15 +87,15 @@ puts (
" sent to stdout to be in text mode for win32 systems.\n" " sent to stdout to be in text mode for win32 systems.\n"
"\n" "\n"
" -c/--continue\n" " -c/--continue\n"
" Continue/Resume a previous file transfer. This\n" " Deprecated. Use '-C -' instead. Continue/Resume a pre­\n"
" instructs curl to continue appending data on the file\n" " vious file transfer. This instructs curl to continue\n"
" where it was previously left, possibly because of a\n" " appending data on the file where it was previously\n"
" broken connection to the server. There must be a named\n" " left, possibly because of a broken connection to the\n"
" physical file to append to for this to work. Note:\n" " server. There must be a named physical file to append\n"
" Upload resume is depening on a command named SIZE not\n" " to for this to work. Note: Upload resume is depening\n"
" always present in all ftp servers! Upload resume is for\n" " on a command named SIZE not always present in all ftp\n"
" FTP only. HTTP resume is only possible with HTTP/1.1\n" " servers! Upload resume is for FTP only. HTTP resume is\n"
" or later servers.\n" " only possible with HTTP/1.1 or later servers.\n"
"\n" "\n"
" -C/--continue-at <offset>\n" " -C/--continue-at <offset>\n"
" Continue/Resume a previous file transfer at the given\n" " Continue/Resume a previous file transfer at the given\n"
@ -214,20 +214,34 @@ puts (
" (HTTP) Include the HTTP-header in the output. The HTTP-\n" " (HTTP) Include the HTTP-header in the output. The HTTP-\n"
" header includes things like server-name, date of the\n" " header includes things like server-name, date of the\n"
" document, HTTP-version and more...\n" " document, HTTP-version and more...\n"
" --interface <name>\n"
" Perform an operation using a specified interface. You\n"
" can enter interface name, IP address or host name. An\n"
" example could look like:\n"
"\n"
" curl --interface eth0:1 http://www.netscape.com/\n"
"\n"
" -I/--head\n" " -I/--head\n"
" (HTTP/FTP) Fetch the HTTP-header only! HTTP-servers\n" " (HTTP/FTP) Fetch the HTTP-header only! HTTP-servers\n"
" feature the command HEAD which this uses to get nothing\n" " feature the command HEAD which this uses to get nothing\n"
" but the header of a document. When used on a FTP file,\n" " but the header of a document. When used on a FTP file,\n"
" curl displays the file size only.\n" " curl displays the file size only.\n"
"\n" "\n"
" --krb4 <level>\n"
" (FTP) Enable kerberos4 authentication and use. The\n"
);
puts(
" level must be entered and should be one of 'clear',\n"
" 'safe', 'confidential' or 'private'. Should you use a\n"
" level that is not one of these, 'private' will instead\n"
" be used.\n"
"\n"
" -K/--config <config file>\n" " -K/--config <config file>\n"
" Specify which config file to read curl arguments from.\n" " Specify which config file to read curl arguments from.\n"
" The config file is a text file in which command line\n" " The config file is a text file in which command line\n"
" arguments can be written which then will be used as if\n" " arguments can be written which then will be used as if\n"
" they were written on the actual command line. If the\n" " they were written on the actual command line. If the\n"
" first column of a config line is a '#' character, the\n" " first column of a config line is a '#' character, the\n"
);
puts(
" rest of the line will be treated as a comment.\n" " rest of the line will be treated as a comment.\n"
"\n" "\n"
" Specify the filename as '-' to make curl read the file\n" " Specify the filename as '-' to make curl read the file\n"
@ -302,6 +316,15 @@ puts (
" we get. (Only the file part of the remote file is used,\n" " we get. (Only the file part of the remote file is used,\n"
" the path is cut off.)\n" " the path is cut off.)\n"
"\n" "\n"
" -p/--proxytunnel\n"
" When an HTTP proxy is used, this option will cause non-\n"
" HTTP protocols to attempt to tunnel through the proxy\n"
" instead of merely using it to do HTTP-like operations.\n"
" The tunnel approach is made with the HTTP proxy CONNECT\n"
" request and requires that the proxy allows direct con­\n"
" nect to the remote port number curl wants to tunnel\n"
" through to.\n"
"\n"
" -P/--ftpport <address>\n" " -P/--ftpport <address>\n"
" (FTP) Reverses the initiator/listener roles when con­\n" " (FTP) Reverses the initiator/listener roles when con­\n"
" necting with ftp. This switch makes Curl use the PORT\n" " necting with ftp. This switch makes Curl use the PORT\n"
@ -320,6 +343,7 @@ puts (
"\n" "\n"
" - (any single-letter string) to make it pick\n" " - (any single-letter string) to make it pick\n"
" the machine's default\n" " the machine's default\n"
"\n"
" -q If used as the first parameter on the command line, the\n" " -q If used as the first parameter on the command line, the\n"
" $HOME/.curlrc file will not be read and used as a con­\n" " $HOME/.curlrc file will not be read and used as a con­\n"
" fig file.\n" " fig file.\n"
@ -347,8 +371,8 @@ puts (
"\n" "\n"
" -500 specifies the last 500 bytes\n" " -500 specifies the last 500 bytes\n"
"\n" "\n"
" 9500 specifies the bytes from offset 9500 and for­\n" " 9500 specifies the bytes from offset 9500 and\n"
" ward\n" " forward\n"
"\n" "\n"
" 0-0,-1 specifies the first and last byte only(*)(H)\n" " 0-0,-1 specifies the first and last byte only(*)(H)\n"
"\n" "\n"
@ -372,146 +396,147 @@ puts (
" -s/--silent\n" " -s/--silent\n"
" Silent mode. Don't show progress meter or error mes­\n" " Silent mode. Don't show progress meter or error mes­\n"
" sages. Makes Curl mute.\n" " sages. Makes Curl mute.\n"
"\n"
" -S/--show-error\n" " -S/--show-error\n"
" When used with -s it makes curl show error message if\n" " When used with -s it makes curl show error message if\n"
" it fails.\n" " it fails.\n"
"\n" "\n"
" -t/--upload\n" " -t/--upload\n"
" Transfer the stdin data to the specified file. Curl\n" " Deprecated. Use '-T -' instead. Transfer the stdin\n"
" will read everything from stdin until EOF and store\n" " data to the specified file. Curl will read everything\n"
" with the supplied name. If this is used on a http(s)\n" " from stdin until EOF and store with the supplied name.\n"
" server, the PUT command will be used.\n" " If this is used on a http(s) server, the PUT command\n"
" will be used.\n"
"\n" "\n"
" -T/--upload-file <file>\n" " -T/--upload-file <file>\n"
" Like -t, but this transfers the specified local file.\n" " Like -t, but this transfers the specified local file.\n"
" If there is no file part in the specified URL, Curl\n" " If there is no file part in the specified URL, Curl\n"
" will append the local file name. NOTE that you must use\n" " will append the local file name. NOTE that you must use\n"
" a trailing / on the last directory to really prove to\n" " a trailing / on the last directory to really prove to\n"
" Curl that there is no file name or curl will think that\n" " Curl that there is no file name or curl will think that\n"
" your last directory name is the remote file name to\n" " your last directory name is the remote file name to\n"
" use. That will most likely cause the upload operation\n" " use. That will most likely cause the upload operation\n"
" to fail. If this is used on a http(s) server, the PUT\n" " to fail. If this is used on a http(s) server, the PUT\n"
" command will be used.\n" " command will be used.\n"
"\n" "\n"
" -u/--user <user:password>\n" " -u/--user <user:password>\n"
" Specify user and password to use when fetching. See\n" " Specify user and password to use when fetching. See\n"
" README.curl for detailed examples of how to use this.\n" " README.curl for detailed examples of how to use this.\n"
" If no password is specified, curl will ask for it\n" " If no password is specified, curl will ask for it\n"
" interactively.\n" " interactively.\n"
"\n"
" -U/--proxy-user <user:password>\n" " -U/--proxy-user <user:password>\n"
" Specify user and password to use for Proxy authentica­\n" " Specify user and password to use for Proxy authentica­\n"
" tion. If no password is specified, curl will ask for it\n" " tion. If no password is specified, curl will ask for it\n"
" interactively.\n" " interactively.\n"
"\n" "\n"
" -v/--verbose\n" " -v/--verbose\n"
" Makes the fetching more verbose/talkative. Mostly\n" " Makes the fetching more verbose/talkative. Mostly\n"
" usable for debugging. Lines starting with '>' means\n" " usable for debugging. Lines starting with '>' means\n"
" data sent by curl, '<' means data received by curl that\n" " data sent by curl, '<' means data received by curl that\n"
" is hidden in normal cases and lines starting with '*'\n" " is hidden in normal cases and lines starting with '*'\n"
" means additional info provided by curl.\n" " means additional info provided by curl.\n"
"\n" "\n"
" -V/--version\n" " -V/--version\n"
" Displays the full version of curl, libcurl and other\n" " Displays the full version of curl, libcurl and other\n"
" 3rd party libraries linked with the executable.\n" " 3rd party libraries linked with the executable.\n"
"\n" "\n"
" -w/--write-out <format>\n" " -w/--write-out <format>\n"
" Defines what to display after a completed and success­\n" " Defines what to display after a completed and success­\n"
" ful operation. The format is a string that may contain\n" " ful operation. The format is a string that may contain\n"
" plain text mixed with any number of variables. The\n" " plain text mixed with any number of variables. The\n"
" string can be specified as \"string\", to get read from a\n" " string can be specified as \"string\", to get read from a\n"
" particular file you specify it \"@filename\" and to tell\n" " particular file you specify it \"@filename\" and to tell\n"
" curl to read the format from stdin you write \"@-\".\n" " curl to read the format from stdin you write \"@-\".\n"
"\n" "\n"
" The variables present in the output format will be\n" " The variables present in the output format will be sub­\n"
" substituted by the value or text that curl thinks fit,\n" " stituted by the value or text that curl thinks fit, as\n"
" as described below. All variables are specified like\n" " described below. All variables are specified like\n"
" %{variable_name} and to output a normal % you just\n" " %{variable_name} and to output a normal % you just\n"
" write them like %%. You can output a newline by using\n" " write them like %%. You can output a newline by using\n"
" \\n, a carrige return with \\r and a tab space with \\t.\n" " \\n, a carrige return with \\r and a tab space with \\t.\n"
"\n" "\n"
" NOTE: The %-letter is a special letter in the\n" " NOTE: The %-letter is a special letter in the\n"
" win32-environment, where all occurrences of % must be\n" " win32-environment, where all occurrences of % must be\n"
" doubled when using this option.\n" " doubled when using this option.\n"
"\n" "\n"
" Available variables are at this point:\n" " Available variables are at this point:\n"
"\n" "\n"
" url_effective The URL that was fetched last. This is\n" " url_effective The URL that was fetched last. This is\n"
" mostly meaningful if you've told curl to\n" " mostly meaningful if you've told curl to\n"
" follow location: headers.\n" " follow location: headers.\n"
"\n" "\n"
" http_code The numerical code that was found in the\n" " http_code The numerical code that was found in the\n"
);
puts(
" last retrieved HTTP(S) page.\n" " last retrieved HTTP(S) page.\n"
"\n" "\n"
" time_total The total time, in seconds, that the\n" " time_total The total time, in seconds, that the\n"
" full operation lasted. The time will be\n" " full operation lasted. The time will be\n"
" displayed with millisecond resolution.\n" " displayed with millisecond resolution.\n"
"\n" "\n"
" time_namelookup\n" " time_namelookup\n"
" The time, in seconds, it took from the\n" " The time, in seconds, it took from the\n"
" start until the name resolving was com­\n" " start until the name resolving was com­\n"
" pleted.\n" " pleted.\n"
"\n" " time_connect The time, in seconds, it took from the\n"
" time_connect The time, in seconds, it took from the\n" " start until the connect to the remote\n"
" start until the connect to the remote\n"
" host (or proxy) was completed.\n" " host (or proxy) was completed.\n"
"\n" "\n"
" time_pretransfer\n" " time_pretransfer\n"
" The time, in seconds, it took from the\n" " The time, in seconds, it took from the\n"
" start until the file transfer is just\n" " start until the file transfer is just\n"
" about to begin. This includes all pre-\n" " about to begin. This includes all pre-\n"
" transfer commands and negotiations that\n" " transfer commands and negotiations that\n"
" are specific to the particular proto­\n" " are specific to the particular proto­\n"
" col(s) involved.\n" " col(s) involved.\n"
);
puts(
"\n" "\n"
" size_download The total amount of bytes that were\n" " size_download The total amount of bytes that were\n"
" downloaded.\n" " downloaded.\n"
"\n" "\n"
" size_upload The total amount of bytes that were\n" " size_upload The total amount of bytes that were\n"
" uploaded.\n" " uploaded.\n"
"\n" "\n"
" speed_download The average download speed that curl\n" " speed_download The average download speed that curl\n"
" measured for the complete download.\n" " measured for the complete download.\n"
"\n" "\n"
" speed_upload The average upload speed that curl mea­\n" " speed_upload The average upload speed that curl mea­\n"
" sured for the complete download.\n" " sured for the complete download.\n"
"\n"
" -x/--proxy <proxyhost[:port]>\n" " -x/--proxy <proxyhost[:port]>\n"
" Use specified proxy. If the port number is not speci­\n" " Use specified proxy. If the port number is not speci­\n"
" fied, it is assumed at port 1080.\n" " fied, it is assumed at port 1080.\n"
"\n" "\n"
" -X/--request <command>\n" " -X/--request <command>\n"
" (HTTP) Specifies a custom request to use when communi­\n" " (HTTP) Specifies a custom request to use when communi­\n"
" cating with the HTTP server. The specified request\n" " cating with the HTTP server. The specified request\n"
" will be used instead of the standard GET. Read the HTTP\n" " will be used instead of the standard GET. Read the HTTP\n"
" 1.1 specification for details and explanations.\n" " 1.1 specification for details and explanations.\n"
"\n" "\n"
" (FTP) Specifies a custom FTP command to use instead of\n" " (FTP) Specifies a custom FTP command to use instead of\n"
" LIST when doing file lists with ftp.\n" " LIST when doing file lists with ftp.\n"
"\n" "\n"
" -y/--speed-time <time>\n" " -y/--speed-time <time>\n"
" If a download is slower than speed-limit bytes per sec­\n" " If a download is slower than speed-limit bytes per sec­\n"
" ond during a speed-time period, the download gets\n" " ond during a speed-time period, the download gets\n"
" aborted. If speed-time is used, the default speed-limit\n" " aborted. If speed-time is used, the default speed-limit\n"
" will be 1 unless set with -y.\n" " will be 1 unless set with -y.\n"
"\n" "\n"
" -Y/--speed-limit <speed>\n" " -Y/--speed-limit <speed>\n"
" If a download is slower than this given speed, in bytes\n" " If a download is slower than this given speed, in bytes\n"
" per second, for speed-time seconds it gets aborted.\n" " per second, for speed-time seconds it gets aborted.\n"
" speed-time is set with -Y and is 30 if not set.\n" " speed-time is set with -Y and is 30 if not set.\n"
"\n" "\n"
" -z/--time-cond <date expression>\n" " -z/--time-cond <date expression>\n"
" (HTTP) Request to get a file that has been modified\n" " (HTTP) Request to get a file that has been modified\n"
" later than the given time and date, or one that has\n" " later than the given time and date, or one that has\n"
" been modified before that time. The date expression can\n" " been modified before that time. The date expression can\n"
" be all sorts of date strings or if it doesn't match any\n" " be all sorts of date strings or if it doesn't match any\n"
" internal ones, it tries to get the time from a given\n" " internal ones, it tries to get the time from a given\n"
" file name instead! See the GNU date(1) or curl_get­\n" " file name instead! See the GNU date(1) or curl_get­\n"
" date(3) man pages for date expression details.\n" " date(3) man pages for date expression details.\n"
"\n" "\n"
" Start the date expression with a dash (-) to make it\n" " Start the date expression with a dash (-) to make it\n"
" request for a document that is older than the given\n" " request for a document that is older than the given\n"
" date/time, default is a document that is newer than the\n" " date/time, default is a document that is newer than the\n"
" specified date/time.\n" " specified date/time.\n"
"\n" "\n"
@ -524,15 +549,15 @@ puts (
" ing with a remote SSL server.\n" " ing with a remote SSL server.\n"
"\n" "\n"
" -#/--progress-bar\n" " -#/--progress-bar\n"
" Make curl display progress information as a progress\n" " Make curl display progress information as a progress\n"
" bar instead of the default statistics.\n" " bar instead of the default statistics.\n"
"\n" "\n"
" --crlf\n" " --crlf\n"
" (FTP) Convert LF to CRLF in upload. Useful for MVS\n" " (FTP) Convert LF to CRLF in upload. Useful for MVS\n"
" (OS/390).\n" " (OS/390).\n"
"\n" "\n"
" --stderr <file>\n" " --stderr <file>\n"
" Redirect all writes to stderr to the specified file\n" " Redirect all writes to stderr to the specified file\n"
" instead. If the file name is a plain '-', it is instead\n" " instead. If the file name is a plain '-', it is instead\n"
" written to stdout. This option has no point when you're\n" " written to stdout. This option has no point when you're\n"
" using a shell with decent redirecting capabilities.\n" " using a shell with decent redirecting capabilities.\n"
@ -555,7 +580,7 @@ puts (
" Sets proxy server to use for GOPHER.\n" " Sets proxy server to use for GOPHER.\n"
"\n" "\n"
" ALL_PROXY [protocol://]<host>[:port]\n" " ALL_PROXY [protocol://]<host>[:port]\n"
" Sets proxy server to use if no protocol-specific proxy\n" " Sets proxy server to use if no protocol-specific proxy\n"
" is set.\n" " is set.\n"
"\n" "\n"
" NO_PROXY <comma-separated list of hosts>\n" " NO_PROXY <comma-separated list of hosts>\n"
@ -563,12 +588,12 @@ puts (
" If set to a asterisk '*' only, it matches all hosts.\n" " If set to a asterisk '*' only, it matches all hosts.\n"
"\n" "\n"
" COLUMNS <integer>\n" " COLUMNS <integer>\n"
" The width of the terminal. This variable only affects\n" " The width of the terminal. This variable only affects\n"
" curl when the --progress-bar option is used.\n" " curl when the --progress-bar option is used.\n"
"\n" "\n"
"EXIT CODES\n" "EXIT CODES\n"
" There exists a bunch of different error codes and their cor­\n" " There exists a bunch of different error codes and their cor­\n"
" responding error messages that may appear during bad condi­\n" " responding error messages that may appear during bad condi­\n"
" tions. At the time of this writing, the exit codes are:\n" " tions. At the time of this writing, the exit codes are:\n"
"\n" "\n"
" 1 Unsupported protocol. This build of curl has no support\n" " 1 Unsupported protocol. This build of curl has no support\n"
@ -578,40 +603,40 @@ puts (
"\n" "\n"
" 3 URL malformat. The syntax was not correct.\n" " 3 URL malformat. The syntax was not correct.\n"
"\n" "\n"
" 4 URL user malformatted. The user-part of the URL syntax\n" " 4 URL user malformatted. The user-part of the URL syntax\n"
" was not correct.\n" " was not correct.\n"
" 5 Couldn't resolve proxy. The given proxy host could not\n" "\n"
" 5 Couldn't resolve proxy. The given proxy host could not\n"
" be resolved.\n" " be resolved.\n"
"\n" "\n"
" 6 Couldn't resolve host. The given remote host was not\n" " 6 Couldn't resolve host. The given remote host was not\n"
" resolved.\n" " resolved.\n"
"\n" "\n"
" 7 Failed to connect to host.\n" " 7 Failed to connect to host.\n"
"\n" "\n"
" 8 FTP weird server reply. The server sent data curl\n" " 8 FTP weird server reply. The server sent data curl\n"
" couldn't parse.\n" " couldn't parse.\n"
"\n" "\n"
" 9 FTP access denied. The server denied login.\n" " 9 FTP access denied. The server denied login.\n"
"\n" "\n"
" 10 FTP user/password incorrect. Either one or both were\n" " 10 FTP user/password incorrect. Either one or both were\n"
" not accepted by the server.\n" " not accepted by the server.\n"
"\n" "\n"
" 11 FTP weird PASS reply. Curl couldn't parse the reply\n" " 11 FTP weird PASS reply. Curl couldn't parse the reply\n"
" sent to the PASS request.\n" " sent to the PASS request.\n"
"\n" "\n"
" 12 FTP weird USER reply. Curl couldn't parse the reply\n" " 12 FTP weird USER reply. Curl couldn't parse the reply\n"
" sent to the USER request.\n" " sent to the USER request.\n"
"\n" "\n"
" 13 FTP weird PASV reply, Curl couldn't parse the reply\n" " 13 FTP weird PASV reply, Curl couldn't parse the reply\n"
" sent to the PASV request.\n" " sent to the PASV request.\n"
"\n" "\n"
" 14 FTP weird 227 formay. Curl couldn't parse the 227-line\n" " 14 FTP weird 227 formay. Curl couldn't parse the 227-line\n"
" the server sent.\n" " the server sent.\n"
"\n"
" 15 FTP can't get host. Couldn't resolve the host IP we got\n" " 15 FTP can't get host. Couldn't resolve the host IP we got\n"
" in the 227-line.\n" " in the 227-line.\n"
"\n" "\n"
" 16 FTP can't reconnect. Couldn't connect to the host we\n" " 16 FTP can't reconnect. Couldn't connect to the host we\n"
" got in the 227-line.\n" " got in the 227-line.\n"
"\n" "\n"
" 17 FTP couldn't set binary. Couldn't change transfer\n" " 17 FTP couldn't set binary. Couldn't change transfer\n"
@ -621,51 +646,51 @@ puts (
"\n" "\n"
" 19 FTP couldn't RETR file. The RETR command failed.\n" " 19 FTP couldn't RETR file. The RETR command failed.\n"
"\n" "\n"
" 20 FTP write error. The transfer was reported bad by the\n" " 20 FTP write error. The transfer was reported bad by the\n"
" server.\n" " server.\n"
"\n" "\n"
" 21 FTP quote error. A quote command returned error from\n" " 21 FTP quote error. A quote command returned error from\n"
" the server.\n" " the server.\n"
"\n" "\n"
" 22 HTTP not found. The requested page was not found. This\n" " 22 HTTP not found. The requested page was not found. This\n"
" return code only appears if --fail is used.\n" " return code only appears if --fail is used.\n"
"\n" "\n"
" 23 Write error. Curl couldn't write data to a local\n" " 23 Write error. Curl couldn't write data to a local\n"
" filesystem or similar.\n" " filesystem or similar.\n"
"\n"
" 24 Malformat user. User name badly specified.\n" " 24 Malformat user. User name badly specified.\n"
"\n" "\n"
" 25 FTP couldn't STOR file. The server denied the STOR\n" " 25 FTP couldn't STOR file. The server denied the STOR\n"
" operation.\n" " operation.\n"
"\n" "\n"
" 26 Read error. Various reading problems.\n" " 26 Read error. Various reading problems.\n"
"\n" "\n"
" 27 Out of memory. A memory allocation request failed.\n" " 27 Out of memory. A memory allocation request failed.\n"
"\n" "\n"
" 28 Operation timeout. The specified time-out period was\n" " 28 Operation timeout. The specified time-out period was\n"
" reached according to the conditions.\n" " reached according to the conditions.\n"
"\n" "\n"
" 29 FTP couldn't set ASCII. The server returned an unknown\n" " 29 FTP couldn't set ASCII. The server returned an unknown\n"
" reply.\n" " reply.\n"
"\n" "\n"
" 30 FTP PORT failed. The PORT command failed.\n" " 30 FTP PORT failed. The PORT command failed.\n"
"\n" "\n"
" 31 FTP couldn't use REST. The REST command failed.\n" " 31 FTP couldn't use REST. The REST command failed.\n"
"\n" "\n"
" 32 FTP couldn't use SIZE. The SIZE command failed. The\n" " 32 FTP couldn't use SIZE. The SIZE command failed. The\n"
" command is an extension to the original FTP spec RFC\n" " command is an extension to the original FTP spec RFC\n"
" 959.\n" " 959.\n"
"\n" "\n"
" 33 HTTP range error. The range \"command\" didn't work.\n" " 33 HTTP range error. The range \"command\" didn't work.\n"
"\n" "\n"
" 34 HTTP post error. Internal post-request generation\n" " 34 HTTP post error. Internal post-request generation\n"
" error.\n" " error.\n"
"\n"
" 35 SSL connect error. The SSL handshaking failed.\n" " 35 SSL connect error. The SSL handshaking failed.\n"
"\n" "\n"
" 36 FTP bad download resume. Couldn't continue an earlier\n" " 36 FTP bad download resume. Couldn't continue an earlier\n"
" aborted download.\n" " aborted download.\n"
"\n" "\n"
" 37 FILE couldn't read file. Failed to open the file. Per­\n" " 37 FILE couldn't read file. Failed to open the file. Per­\n"
" missions?\n" " missions?\n"
"\n" "\n"
" 38 LDAP cannot bind. LDAP bind operation failed.\n" " 38 LDAP cannot bind. LDAP bind operation failed.\n"
@ -674,15 +699,16 @@ puts (
"\n" "\n"
" 40 Library not found. The LDAP library was not found.\n" " 40 Library not found. The LDAP library was not found.\n"
"\n" "\n"
" 41 Function not found. A required LDAP function was not\n" " 41 Function not found. A required LDAP function was not\n"
" found.\n" " found.\n"
"\n" "\n"
" XX There will appear more error codes here in future\n" " XX There will appear more error codes here in future\n"
" releases. The existing ones are meant to never change.\n" " releases. The existing ones are meant to never change.\n"
"\n" "\n"
"BUGS\n" "BUGS\n"
" If you do find any (or have other suggestions), mail Daniel\n" " If you do find any (or have other suggestions), mail Daniel\n"
" Stenberg <Daniel.Stenberg@haxx.se>.\n" " Stenberg <Daniel.Stenberg@haxx.se>.\n"
"\n"
"AUTHORS / CONTRIBUTORS\n" "AUTHORS / CONTRIBUTORS\n"
" - Daniel Stenberg <Daniel.Stenberg@haxx.se>\n" " - Daniel Stenberg <Daniel.Stenberg@haxx.se>\n"
" - Rafael Sagula <sagula@inf.ufrgs.br>\n" " - Rafael Sagula <sagula@inf.ufrgs.br>\n"
@ -722,6 +748,8 @@ puts (
" - Paul Marquis <pmarquis@iname.com>\n" " - Paul Marquis <pmarquis@iname.com>\n"
" - Ellis Pritchard <ellis@citria.com>\n" " - Ellis Pritchard <ellis@citria.com>\n"
" - Damien Adant <dams@usa.net>\n" " - Damien Adant <dams@usa.net>\n"
);
puts(
" - Chris <cbayliss@csc.come>\n" " - Chris <cbayliss@csc.come>\n"
" - Marco G. Salvagno <mgs@whiz.cjb.net>\n" " - Marco G. Salvagno <mgs@whiz.cjb.net>\n"
" - Paul Marquis <pmarquis@iname.com>\n" " - Paul Marquis <pmarquis@iname.com>\n"
@ -733,6 +761,10 @@ puts (
" - Fred Noz <FNoz@siac.com>\n" " - Fred Noz <FNoz@siac.com>\n"
" - Caolan McNamara <caolan@csn.ul.ie>\n" " - Caolan McNamara <caolan@csn.ul.ie>\n"
" - Albert Chin-A-Young <china@thewrittenword.com>\n" " - Albert Chin-A-Young <china@thewrittenword.com>\n"
" - Stephen Kick <skick@epicrealm.com>\n"
" - Martin Hedenfalk <mhe@stacken.kth.se>\n"
" - Richard Prescott\n"
"\n"
"WWW\n" "WWW\n"
" http://curl.haxx.se\n" " http://curl.haxx.se\n"
"\n" "\n"
@ -762,8 +794,6 @@ puts (
" Get a gopher document from funet's gopher server:\n" " Get a gopher document from funet's gopher server:\n"
"\n" "\n"
" curl gopher://gopher.funet.fi\n" " curl gopher://gopher.funet.fi\n"
);
puts(
"\n" "\n"
" Get a web page from a server using port 8000:\n" " Get a web page from a server using port 8000:\n"
"\n" "\n"
@ -885,9 +915,11 @@ puts (
"\n" "\n"
" curl -T localfile -a ftp://ftp.upload.com/remotefile\n" " curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
"\n" "\n"
" NOTE: Curl does not support ftp upload through a proxy! The reason for this\n" " Curl also supports ftp upload through a proxy, but only if the proxy is\n"
" is simply that proxies are seldomly configured to allow this and that no\n" " configured to allow that kind of tunneling. If it does, you can run curl in\n"
" author has supplied code that makes it possible!\n" " a fashion similar to:\n"
"\n"
" curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n"
"\n" "\n"
" HTTP\n" " HTTP\n"
"\n" "\n"
@ -1031,6 +1063,8 @@ puts (
" A HTTP request has the option to include information about the browser\n" " A HTTP request has the option to include information about the browser\n"
" that generated the request. Curl allows it to be specified on the command\n" " that generated the request. Curl allows it to be specified on the command\n"
" line. It is especially useful to fool or trick stupid servers or CGI\n" " line. It is especially useful to fool or trick stupid servers or CGI\n"
);
puts(
" scripts that only accept certain browsers.\n" " scripts that only accept certain browsers.\n"
"\n" "\n"
" Example:\n" " Example:\n"
@ -1058,8 +1092,6 @@ puts (
" headers that looks like 'Set-Cookie: <data>' where the data part then\n" " headers that looks like 'Set-Cookie: <data>' where the data part then\n"
" typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n" " typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
" like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n" " like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
);
puts(
" path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n" " path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
" cookie should expire (\"expire=DATE\"), for what domain to use it\n" " cookie should expire (\"expire=DATE\"), for what domain to use it\n"
" (\"domain=NAME\") and if it should be used on secure connections only\n" " (\"domain=NAME\") and if it should be used on secure connections only\n"
@ -1228,13 +1260,14 @@ puts (
" connect to the client on the given (as parameters to the PORT command) IP\n" " connect to the client on the given (as parameters to the PORT command) IP\n"
" number and port.\n" " number and port.\n"
"\n" "\n"
" The -P flag to curl allows for different options. Your machine may have\n" " The -P flag to curl supports a few different options. Your machine may have\n"
" several IP-addresses and/or network interfaces and curl allows you to select\n" " several IP-addresses and/or network interfaces and curl allows you to select\n"
" which of them to use. Default address can also be used:\n" " which of them to use. Default address can also be used:\n"
"\n" "\n"
" curl -P - ftp.download.com\n" " curl -P - ftp.download.com\n"
"\n" "\n"
" Download with PORT but use the IP address of our 'le0' interface:\n" " Download with PORT but use the IP address of our 'le0' interface (this does\n"
" not work on windows):\n"
"\n" "\n"
" curl -P le0 ftp.download.com\n" " curl -P le0 ftp.download.com\n"
"\n" "\n"
@ -1242,6 +1275,16 @@ puts (
"\n" "\n"
" curl -P 192.168.0.10 ftp.download.com\n" " curl -P 192.168.0.10 ftp.download.com\n"
"\n" "\n"
"NETWORK INTERFACE\n"
"\n"
" Get a web page from a server using a specified port for the interface:\n"
"\n"
" curl --interface eth0:1 http://www.netscape.com/\n"
"\n"
" or\n"
"\n"
" curl --interface 192.168.1.10 http://www.netscape.com/\n"
"\n"
"HTTPS\n" "HTTPS\n"
"\n" "\n"
" Secure HTTP requires SSL libraries to be installed and used when curl is\n" " Secure HTTP requires SSL libraries to be installed and used when curl is\n"
@ -1281,6 +1324,8 @@ puts (
" curl -2 https://secure.site.com/\n" " curl -2 https://secure.site.com/\n"
"\n" "\n"
" Otherwise, curl will first attempt to use v3 and then v2.\n" " Otherwise, curl will first attempt to use v3 and then v2.\n"
);
puts(
"\n" "\n"
" To use OpenSSL to convert your favourite browser's certificate into a PEM\n" " To use OpenSSL to convert your favourite browser's certificate into a PEM\n"
" formatted one that curl can use, do something like this (assuming netscape,\n" " formatted one that curl can use, do something like this (assuming netscape,\n"
@ -1328,8 +1373,6 @@ puts (
"TIME CONDITIONS\n" "TIME CONDITIONS\n"
"\n" "\n"
" HTTP allows a client to specify a time condition for the document it\n" " HTTP allows a client to specify a time condition for the document it\n"
);
puts(
" requests. It is If-Modified-Since or If-Unmodified-Since. Curl allow you to\n" " requests. It is If-Modified-Since or If-Unmodified-Since. Curl allow you to\n"
" specify them with the -z/--time-cond flag.\n" " specify them with the -z/--time-cond flag.\n"
"\n" "\n"
@ -1439,13 +1482,26 @@ puts (
"\n" "\n"
" curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n" " curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n"
"\n" "\n"
"KERBEROS4 FTP TRANSFER\n"
"\n"
" Curl supports kerberos4 for FTP transfers. You need the kerberos package\n"
" installed and used at curl build time for it to be used.\n"
"\n"
" First, get the krb-ticket the normal way, like with the kauth tool. Then use\n"
" curl in way similar to:\n"
"\n"
" curl --krb4 private ftp://krb4site.com -u username:fakepwd\n"
"\n"
" There's no use for a password on the -u switch, but a blank one will make\n"
" curl ask for one and you already entered the real password to kauth.\n"
"\n"
"MAILING LIST\n" "MAILING LIST\n"
"\n" "\n"
" We have an open mailing list to discuss curl, its development and things\n" " We have an open mailing list to discuss curl, its development and things\n"
" relevant to this.\n" " relevant to this.\n"
"\n" "\n"
" To subscribe, mail curl-request@contactor.se with \"subscribe <your email\n" " To subscribe, mail curl-request@contactor.se with \"subscribe <fill in your\n"
" address>\" in the body.\n" " email address>\" in the body.\n"
"\n" "\n"
" To post to the list, mail curl@contactor.se.\n" " To post to the list, mail curl@contactor.se.\n"
"\n" "\n"

View File

@ -1,3 +1,3 @@
#define CURL_NAME "curl" #define CURL_NAME "curl"
#define CURL_VERSION "7.2" #define CURL_VERSION "7.3"
#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") " #define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") "