- Martin Hager reported and fixed a problem with a missing quote in libcurl.m4
(http://curl.haxx.se/bug/view.cgi?id=2951319)
-
+
- Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake.
(http://curl.haxx.se/bug/view.cgi?id=2951269)
Daniel Stenberg (17 Dec 2009)
- David Byron fixed Curl_ossl_cleanup to actually call ENGINE_cleanup when
available.
-
+
- Follow-up fix for the proxy fix I did for Jon Nelson's bug. It turned out I
was a bit too quick and broke test case 1101 with that change. The order of
some of the setups is sensitive. I now changed it slightly again to make
in the DNS cache would linger too long if the request that added it was in
use that long. He also provided the patch that now makes libcurl capable of
still doing a request while the DNS hash entry may get timed out.
-
+
- Christian Schmitz noticed that the progress meter/callback was not properly
used during the FTP connection phase (after the actual TCP connect), while
it of course should be. I also made the speed check get called correctly so
him grief. This is a regression that was introduced in 7.19.1 and I find it
strange it hasn't hit us harder, but I won't persue into figuring out
exactly why.
-
+
- Constantine Sapuntzakis: The current implementation will always set
SO_SNDBUF to CURL_WRITE_SIZE even if the SO_SNDBUF starts out larger. The
patch doesn't do a setsockopt if SO_SNDBUF is already greater than
(http://curl.haxx.se/bug/view.cgi?id=2861587) identifying that libcurl used
the OpenSSL function X509_load_crl_file() wrongly and failed if it would
load a CRL file with more than one certificate within. This is now fixed.
-
+
Daniel Stenberg (16 Sep 2009)
- Sven Anders reported that we introduced a cert verfication flaw for OpenSSL-
powered libcurl in 7.19.6. If there was a X509v3 Subject Alternative Name
Guenter Knauf (14 Jul 2009)
- renamed generated config.h to curl_config.h to avoid any future clashes
with config.h from other projects.
-
+
Daniel Stenberg (9 Jul 2009)
- Eric Wong introduced curlx_nonblock() that the curl tool now (re-)uses for
setting a file descriptor non-blocking. Used by the functionality Eric
Daniel Stenberg (1 Apr 2009)
- Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if a
- strdup() call failed.
+ strdup() call failed.
Daniel Fandrich (31 Mar 2009)
- Properly return an error code in curl_easy_recv (reported by Jim Freeman).
- Kamil Dudka brought a patch that enables 6 additional crypto algorithms when
NSS is used. These ciphers were added in NSS 3.4 and require to be enabled
explicitly.
-
+
Daniel Stenberg (13 Mar 2009)
- Use libssh2_version() to present the libssh2 version in case the libssh2
library is found to support it.
reported by Pierre Brico.
Daniel Stenberg (9 Mar 2009)
-- Frank Hempel found out a bug and provided the fix:
-
+- Frank Hempel found out a bug and provided the fix:
+
curl_easy_duphandle did not necessarily duplicate the CURLOPT_COOKIEFILE
option. It only enabled the cookie engine in the destination handle if
data->cookies is not NULL (where data is the source handle). In case of a
checkouts who don't do cvs update with the -d option won't get the new dirs
and then will get funny outputs that can be a bit hard to understand and
fix.
-
+
Daniel Stenberg (8 Mar 2009)
- Andre Guibert de Bruet found and fixed a code segment in ssluse.c where the
allocation of the memory BIO was not being properly checked.
just to avoid it to fail very early when libgcrypt dislikes the situation,
but that move was bad and the fix should rather be in libgcrypt or
elsewhere.
-
+
Daniel Stenberg (24 Feb 2009)
- Brian J. Murrell found out that Negotiate proxy authentication didn't work.
It happened because the code used the struct for server-based auth all the
necessary to get read in ftp_done().
Daniel Stenberg (19 Feb 2009)
-- Patrik Thunstrom reported a problem and helped me repeat it. It turned out
+- Patrik Thunstrom reported a problem and helped me repeat it. It turned out
libcurl did a superfluous 1000ms wait when doing SFTP downloads!
We read data with libssh2 while doing the "DO" operation for SFTP and then
- Alexey Borzov filed bug report #2535504
(http://curl.haxx.se/bug/view.cgi?id=2535504) pointing out that realms with
- quoted quotation marks in HTTP Digest headers didn't work. I've now added
+ quoted quotation marks in HTTP Digest headers didn't work. I've now added
test case 1095 that verifies my fix.
- Craig A West brought CURLOPT_NOPROXY and the corresponding --noproxy option.
Daniel Stenberg (28 Dec 2008)
- Peter Korsgaard fixed building libcurl with "configure --with-ssl
--disable-verbose".
-
+
- Anthony Bryan fixed more language and spelling flaws in man pages.
Daniel Stenberg (22 Dec 2008)
at connection cleanup, at which time the struct HandleData could be
used by another connection.
Also, the unused char *urlpath member is removed from struct FTP.
-
+
#2 - provide a Curl_reset_reqproto() function that frees
data->reqdata.proto.* on connection setup if needed (that is if the
SessionHandle was used by a different connection).
A long-term goal is of course to somehow get rid of how the reqdata struct
is used, as it is too error-prone.
-
+
- Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out
that specifying a proxy with a trailing slash didn't work (unless it also
contained a port number).
method to GET in the subsequent request (like it does for response code 302
- because that's what many/most browsers do), but with this CURLOPT_POST301
option enabled it will do what the spec says and do the next request using
- the same method again. I.e keep POST after 301.
+ the same method again. I.e keep POST after 301.
The curl tool got this option as --post301
CURLE_FTP_QUOTE_ERROR => CURLE_QUOTE_ERROR
CURLE_TFTP_DISKFULL => CURLE_REMOTE_DISK_FULL
CURLE_TFTP_EXISTS => CURLE_REMOTE_FILE_EXISTS
- CURLE_HTTP_RANGE_ERROR => CURLE_RANGE_ERROR
+ CURLE_HTTP_RANGE_ERROR => CURLE_RANGE_ERROR
The following options were renamed:
- CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD
+ CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD
CURLOPT_FTPAPPEND => CURLOPT_APPEND
CURLOPT_FTPLISTONLY => CURLOPT_DIRLISTONLY
CURLOPT_FTP_SSL => CURLOPT_USE_SSL
Daniel S (1 July 2007)
- Thomas J. Moore provided a patch that introduces Kerberos5 support in
libcurl. This also makes the options change name to --krb (from --krb4) and
- CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still
+ CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still
- Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5
proxy.
chunked encoding (that also lacks "Connection: close"). It now simply
assumes that the connection WILL be closed to signal the end, as that is how
RFC2616 section 4.4 point #5 says we should behave.
-
+
Version 7.16.3 (25 June 2007)
Daniel S (23 June 2007)
- Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
tool reports and it was indeed a legitimate one and it is one fixed. It was
a use of a share without doing the proper locking first.
-
+
Daniel S (20 June 2007)
- Adam Piggott filed bug report #1740263
(http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
- Song Ma filed bug report #1724016
(http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading
glob-ranges for TFTP was broken in CVS. Fixed now.
-
+
- 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
pointed out that the warnf() function in the curl tool didn't properly deal
with the cases when excessively long words were used in the string to chop
Yang Tse (19 March 2007)
- Bryan Henderson fixed the progress function so that it can get called more
frequently allowing same calling frecuency for the client progress callback.
-
+
Dan F (15 March 2007)
- Various memory leaks plugged and NULL pointer fixes made in the ssh code.
server through a proxy and have the remote https server port set using the
CURLOPT_PORT option, protocol gets reset to http from https after the first
request.
-
+
User defined URL was modified internally by libcurl and subsequent reuse of
the easy handle may lead to connection using a different protocol (if not
originally http).
-
+
I found that libcurl hardcoded the protocol to "http" when it tries to
regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as
follows and it's working fine so far
- release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP
define set to hold the exact date and time of when the tarball was built, as
a human readable string using the UTC time zone.
-
+
- Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle
that has an easy handle present in the "closure" list pending closure.
an FTP connection.
This is a major change.
-
+
Daniel (4 September 2006)
- Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a
patch that while not fixing things very nicely, it does make the SOCKS5
given a too long URL.
These overflows happen if you
-
+
1 - pass in a URL with no protocol (like "http://") prefix, using no slash
and the string is 256 bytes or longer. This leads to a single zero byte
overflow of the malloced buffer.
executable, while is just a local directory (I have . in the PATH)
2) I got several warning for head -1 deprecated in favour of head -n 1
-
+
3) ares directory is missing some file (missing is missing :-) ) because
automake and friends is not run.
Daniel (11 May 2005)
- Starting now, libcurl sends a little different set of headers in its default
HTTP requests:
-
+
A) Normal non-proxy HTTP:
- no more "Pragma: no-cache" (this only makes sense to proxies)
Daniel (7 September)
- Jurij Smakov found out that the non-OpenSSL MD5 code was not working on
Alpha (or ia64). Only the OpenSSL-version did. I made a fix I think corrects
- the problem.
+ the problem.
Daniel (5 September)
- Kevin Fisk reported that configure --enable-thread didn't work. I fixed.
- include/curl/curl.h
Added option CURLOPT_FTP_RESPONSE_TIMEOUT
- lib/ftp.c
- Added branch inside Curl_GetFTPResponse to check for
+ Added branch inside Curl_GetFTPResponse to check for
data->set.ftp_response_timeout
- lib/url.c
Modified Curl_setopt to recognize CURLOPT_FTP_RESPONSE_TIMEOUT
- Added option CURLOPT_FTP_CREATE_MISSING_DIRS
This option will force the target file's path to be created if it
does not already exist on the remote system.
-
+
Files affected:
- include/curl/curl.h
Added option CURLOPT_FTP_CREATE_MISSING_DIRS
Modified ftp_perform() to call its change directory function
through a pointer. The pointer points to ftp_cwd by default,
and is modified to point to ftp_force_cwd IFF
- data->set.ftp_create_missing_dirs is not 0.
+ data->set.ftp_create_missing_dirs is not 0.
- lib/url.c
Modified Curl_setopt to recognize CURLOPT_FTP_CREATE_MISSING_DIRS
- lib/urldata.h
Added ftp_create_missing_dirs to struct UserDefined
-
+
- Minor Bugfix for CURLOPT_TIMECONDITION with FTP - if the file was not
present to do the time comparison, it would fail.
Files affected:
return result;
And then by the code that actually did the time comparison.
The code that did the comparison handled the case where the filetime
- was not available (as indicated by info.filetime < 0 or set.timevalue
+ was not available (as indicated by info.filetime < 0 or set.timevalue
< 0), so I replaced the if (result) return result with a switch(result)
- that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the
+ that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the
normal time comparison.
Daniel (3 August)
- I remade the HTTP Digest code to use the MD5-code provided by OpenSSL if
that is present, and only use our own MD5-code if it isn't.
-
+
Daniel (13 June)
- More NTLM help, fixes and patches from Cris Bailiff.
Daniel (9 Jan 2003)
- Fixed tests/memanalyze.pl to work with file names that contain colons (as on
Windows).
-
+
- Kjetil Jacobsen quickly pointed out that lib/share.h was missing...
Version 7.10.3-pre4 (9 Jan 2003)
- Albert Chin helped me get the -no-undefined option corrected in
lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
want it present. Kevin Roth helped me try it out on cygwin.
-
+
- Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
the ../ support got in (7.10.1).
signals to get sent. This is basicly for multi-threaded applications that
now can use timeouts properly, without risking any signals to burst in and
ruin the party.
-
+
Daniel (5 Aug 2002)
- Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
work. When did that code vanish? Anyway, it's back again now and seems to
CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a
multipart that appears as a regular file upload, but the data is provided
with a pointer and length.
-
+
- Nico Baggus made the VMS version use sigsetjmp() too.
- Jörn Hartroth fixed the mingw32 build using the mm lib.
function for version information. This way, curl will report the version of
the SSL library actually running right now, not the one that had its headers
installed when libcurl was built. Mainly intersting when running with shared
- OpenSSL libraries.
+ OpenSSL libraries.
Version 7.9.3-pre2
gethostbyname_r() but can't figure out how to use it, and it should really
figure out how to use it as it was running Linux and we know how that
works...
-
+
Daniel (7 November 2001)
- docs/VERSIONS is a new file in the archive that explains the version number
system we use in the curl project.
- Installed libtool 1.4.1, libtoolized and everything.
Daniel (1 September 2001)
-- Heikki Korpela pointed out that I did not ship the proper libtool stuff in
+- Heikki Korpela pointed out that I did not ship the proper libtool stuff in
the pre-releases, even though that was my intention. libtoolize has now
been re-run.
another one.
- Ingo Wilken patched away two redirect problems more!
-
+
Daniel (10 May 2001)
- Cris Bailiff correctly noted that the space-after-header problem with
Location: is present on several other places in the libcurl sources.
- stunnel.pm was accidentally left out from the release archive, it is now
added (stunnel is needed to run the https-tests in the test suite)
-
+
Daniel (7 May 2001)
- Corrected two minor compiler warnings due to the FILE * to void * conversion
that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
Version 7.6.1-pre1
Daniel (29 January 2001)
-- Yet another Content-Range change. Ok now? Bob Schader checks from his end
+- Yet another Content-Range change. Ok now? Bob Schader checks from his end
and it works for him.
Daniel (27 January 2001)
- While writing test cases for the test suite, I discovered an old limitation
that prevented -o and -T to be used at the same time. I removed this
immediately as this has no relevance in the current libcurl.
-
+
- Chris Faherty fixed a free-twice problem in lib/file.c
- I fixed the perl http server problem in the test suite.
- Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the
getpass_r() function it seems some systems actually have.
-
+
- Venkataramana Mokkapati detected a bug in the cookie parser and corrected
it. If the cookie was set for the full host name (domain=full.host.com),
the cookie was never sent back because of a faulty length comparison between
it). Added a check for RSAglue/rsaref for the cases where libcrypto is found
but libssl isn't. I haven't verified this fix yet though, as I have no
system that requires those libs to build.
-
+
Version 7.4.2 pre3
Daniel (7 November 2000)
- Emmanuel Tychon discovered that curl didn't really like user names only in
the URL. I corrected this and I also fixed the since long living problem
with URL encoded user names and passwords in the URLs. They should work now.
-
+
Daniel (2 November 2000)
- When I added --interface, the new error code that was added with it was
inserted in the wrong place and thus all error codes from 35 and upwards got
and then use the CURLOPT_CAINFO to set the certificate to verify the remote
peer against. After an such an operation with a verification request, the
*_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about
- whether the verification succeeded or not.
+ whether the verification succeeded or not.
Daniel (27 October 2000)
- Georg Horn brought us a splendid patch that solves the long-standing
getpass() function (now known as my_getpass()) was also fixed to not use any
static buffers. This also means we cannot use the "standard" getpass()
function even for those systems that have it, since it isn't thread-safe.
-
+
- Kevin Roth found out that if you'd write a config file with '-v url', the
url would not be used as "default URL" as documented, although if you wrote
it 'url -v' it worked! This has been corrected now.
-u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also
suggests that curl probably should url-decode the password piece of an URL
so that you could pass an encoded @-letter there...
-
+
Daniel (20 October 2000)
- Yet another http server barfed on curl's request that include the port
number in the Host: header always. I now only include the port number if it
- Vladimir Oblomov reported that the -Y and -y options didn't work. They
didn't work for me either. This once again proves we should have that test
suite...
-
+
- I finally changed the error message libcurl returns if you try a https://
URL when the library wasn't build with SSL enabled. It will now return this
error:
as is the -w section in curl.1. I added two options to enable the user to
get information about the received headers' size and the size of the HTTP
request. T. Bharath requested them.
-
+
Daniel (3 October 2000)
- Corrected a sever free() before use in the new add_buffer_send()! ;-)
start with. If curl's average upload speed is faster than buffer size bytes
per second, curl will increase the used buffer size up to max 50Kb. It
should make the progress meter work better.
-
+
Version 7.4 pre1
Daniel (29 September 2000)
- 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)
- Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp.
Adjusted it. Added better info message when setting up the tunnel and the
pasv message when doing the second connect.
-
+
Version 7.3pre1
Daniel (15 September 2000)
- TheArtOfHTTPScripting was corrected all over. I both type and spell really
bad at times!
-
+
Daniel (14 September 2000)
- -p/--proxytunnel was added to 'curl'. It uses the new
CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel
Troy (12 August 1999)
- Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also
a bit rearranged.
-
+
Daniel (12 August 1999)
- I had to copy a good <arpa/telnet.h> include file into the curl source
tree to enable the silly win32 systems to compile. The distribution rights
Daniel (2 August 1999)
- Applied a progress-bar patch from Lars J. Aas. It offers
- a new styled progress bar enabled with -#/--progress-bar.
+ a new styled progress bar enabled with -#/--progress-bar.
T. Yamada <tai at imasy.or.jp> (30 July 1999)
- It breaks with segfault when 1) curl is using .netrc to obtain
start. The fix dated April 6 and posted on the mailing list forced curl to
use v2 at all times using a modern OpenSSL version, but we don't really
want such a crippled solution.
-
+
- Marc Boucher sent me a patch that corrected a math error for the
"Curr.Speed" progress meter.
- Ok, I expanded the tgz-target to update the version string on each occation
I build a release archive!
- I reacted on Angus Mackay's initiative and remade the parameter parser to
- be more getopt compliant. Curl now supports "merged" flags as in
+ be more getopt compliant. Curl now supports "merged" flags as in
curl -lsv ftp.site.com
Do note that I had to move three short-names of the options. Parameters
that needs an additional string such as -x must be stand-alone or the
- SSL through proxy fix
- Added -A to allow User-Agent: changes
- Daniel Stenberg
+ Daniel Stenberg
- Made the -A work when SSL-through-proxy.
Version 4.5
Daniel Stenberg
- Major rewrite of two crucial parts of this code: upload and download.
They are both now using a select() switch, that allows much better
- progress meter and time control.
+ progress meter and time control.
- alarm() usage removed completely
- FTP get can now list directory contents if the path ends with a slash '/'.
Urlget on a ftp-path that doesn't end with a slash means urlget will
Remco van Hooff
- Added a fix to make it compile smoothly on Amiga using the SAS/C
compiler.
-
+
Daniel Stenberg
- Believe it or not, but the STUPID Novell web server seems to require
that the Host: keyword is used, so well I use it and I (re-introduce) the
fetch multipart files like that.
- '-f' is introduced, it means Fail without output in case of HTTP server
errors (return code >=300).
- - Added support for -r, ranges. Specify which part of a document you
+ - Added support for -r, ranges. Specify which part of a document you
want, and only that part is returned. Only with HTTP/1.1-servers.
- Split up the source in 3 parts. Now all pure URL functions are in
urlget.c and stuff that deals with the stand-alone program is in main.c.
Johan Andersson
- The urlget function didn't set the path to url when using proxy.
- Fixed bug with IMC proxy. Now using (almost) complete GET command.
-
+
Daniel Stenberg
- Made it compile on Solaris. Had to reorganize the includes a bit.
(so Win32, Linux, SunOS 4 and Solaris 2 compile fine.)
if(NOT DEFINED ${VARIABLE})
if("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
set(CHECK_TYPE_SIZE_TYPE "${TYPE}")
- set(MACRO_CHECK_TYPE_SIZE_FLAGS
+ set(MACRO_CHECK_TYPE_SIZE_FLAGS
"${CMAKE_REQUIRED_FLAGS}")
foreach(def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H)
if("${def}")
- set(MACRO_CHECK_TYPE_SIZE_FLAGS
+ set(MACRO_CHECK_TYPE_SIZE_FLAGS
"${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
endif("${def}")
endforeach(def)
endforeach(def)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/CMake/CheckTypeSize.c.in"
- "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c"
+ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c"
IMMEDIATE @ONLY)
- file(READ
+ file(READ
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckTypeSize.c"
CHECK_TYPE_SIZE_FILE_CONTENT)
message(STATUS "Check size of ${TYPE}")
if(CMAKE_REQUIRED_LIBRARIES)
- set(CHECK_TYPE_SIZE_ADD_LIBRARIES
+ set(CHECK_TYPE_SIZE_ADD_LIBRARIES
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
endif(CMAKE_REQUIRED_LIBRARIES)
try_run(${VARIABLE} HAVE_${VARIABLE}
OUTPUT_VARIABLE OUTPUT)
if(HAVE_${VARIABLE})
message(STATUS "Check size of ${TYPE} - done")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n")
else(HAVE_${VARIABLE})
message(STATUS "Check size of ${TYPE} - failed")
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSize.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n")
endif(HAVE_${VARIABLE})
endif("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
#ifdef TIME_WITH_SYS_TIME
/* Time with sys/time test */
-
+
#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
endforeach(recv_arg3)
endforeach(recv_arg2)
endforeach(recv_arg1)
- endforeach(recv_retv)
+ endforeach(recv_retv)
else(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown")
string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG1 "${curl_cv_func_recv_args}")
string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*$" "\\1" RECV_TYPE_ARG2 "${curl_cv_func_recv_args}")
#MESSAGE("RECV_TYPE_ARG4 ${RECV_TYPE_ARG4}")
#MESSAGE("RECV_TYPE_RETV ${RECV_TYPE_RETV}")
endif(NOT DEFINED curl_cv_func_recv_args OR "${curl_cv_func_recv_args}" STREQUAL "unknown")
-
+
if("${curl_cv_func_recv_args}" STREQUAL "unknown")
message(FATAL_ERROR "Cannot find proper types to use for recv args")
endif("${curl_cv_func_recv_args}" STREQUAL "unknown")
endforeach(send_arg3)
endforeach(send_arg2)
endforeach(send_arg1)
- endforeach(send_retv)
+ endforeach(send_retv)
else(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown")
string(REGEX REPLACE "^([^,]*),[^,]*,[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG1 "${curl_cv_func_send_args}")
string(REGEX REPLACE "^[^,]*,([^,]*),[^,]*,[^,]*,[^,]*,[^,]*$" "\\1" SEND_TYPE_ARG2 "${curl_cv_func_send_args}")
#MESSAGE("SEND_TYPE_RETV ${SEND_TYPE_RETV}")
#MESSAGE("SEND_QUAL_ARG2 ${SEND_QUAL_ARG2}")
endif(NOT DEFINED curl_cv_func_send_args OR "${curl_cv_func_send_args}" STREQUAL "unknown")
-
+
if("${curl_cv_func_send_args}" STREQUAL "unknown")
message(FATAL_ERROR "Cannot find proper types to use for send args")
endif("${curl_cv_func_send_args}" STREQUAL "unknown")
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
CVS-INFO
#!/bin/bash
-# This script performs all of the steps needed to build a
+# This script performs all of the steps needed to build a
# universal binary libcurl.framework for Mac OS X 10.4 or greater.
VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h`
CFLAGS="-Os -isysroot $SDK32 $ARCHES32 $MINVER32" \
LDFLAGS="-Wl,-syslibroot,$SDK32 $ARCHES32 $MINVER32 -Wl,-headerpad_max_install_names" \
CC=$CC
-
+
echo "----Building 32 bit libcurl..."
make
-
+
echo "----Creating 32 bit framework..."
rm -r libcurl.framework
mkdir -p libcurl.framework/Versions/A/Resources
ln -fs Versions/A/Headers Headers
cd Versions
ln -fs A Current
-
+
if test -d $SDK64; then
popd
make clean
CFLAGS="-Os -isysroot $SDK64 $ARCHES64 $MINVER64" \
LDFLAGS="-Wl,-syslibroot,$SDK64 $ARCHES64 $MINVER64 -Wl,-headerpad_max_install_names" \
CC=$CC
-
+
echo "----Building 64 bit libcurl..."
make
-
+
echo "----Appending 64 bit framework to 32 bit framework..."
cp lib/.libs/libcurl.dylib libcurl.framework/Versions/A/libcurl64
install_name_tool -id @executable_path/../Frameworks/libcurl.framework/Versions/A/libcurl libcurl.framework/Versions/A/libcurl64
#endif
EOF
fi
-
+
lipo -info libcurl.framework/Versions/A/libcurl
echo "libcurl.framework is built and can now be included in other projects."
echo "Copy libcurl.framework to your bundle's Contents/Frameworks folder, ~/Library/Frameworks or /Library/Frameworks."
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
dnl CURL_CHECK_HEADER_WINDOWS
dnl -------------------------------------------------
-dnl Check for compilable and valid windows.h header
+dnl Check for compilable and valid windows.h header
AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [
AC_CACHE_CHECK([for windows.h], [ac_cv_header_windows_h], [
dnl CURL_CHECK_HEADER_WINSOCK
dnl -------------------------------------------------
-dnl Check for compilable and valid winsock.h header
+dnl Check for compilable and valid winsock.h header
AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [
AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl
dnl CURL_CHECK_HEADER_WINSOCK2
dnl -------------------------------------------------
-dnl Check for compilable and valid winsock2.h header
+dnl Check for compilable and valid winsock2.h header
AC_DEFUN([CURL_CHECK_HEADER_WINSOCK2], [
AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl
dnl CURL_CHECK_FUNC_GETNAMEINFO
dnl -------------------------------------------------
-dnl Test if the getnameinfo function is available,
+dnl Test if the getnameinfo function is available,
dnl and check the types of five of its arguments.
dnl If the function succeeds HAVE_GETNAMEINFO will be
dnl defined, defining the types of the arguments in
dnl GETNAMEINFO_TYPE_ARG1, GETNAMEINFO_TYPE_ARG2,
dnl GETNAMEINFO_TYPE_ARG46 and GETNAMEINFO_TYPE_ARG7,
-dnl and also defining the type qualifier of first
+dnl and also defining the type qualifier of first
dnl argument in GETNAMEINFO_QUAL_ARG1.
AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [
if test "$curl_cv_func_getnameinfo_args" = "unknown"; then
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
+#include <winsock2.h>
#ifdef HAVE_WS2TCPIP_H
#include <ws2tcpip.h>
#endif
dnl TYPE_SOCKADDR_STORAGE
dnl -------------------------------------------------
-dnl Check for struct sockaddr_storage. Most IPv6-enabled
+dnl Check for struct sockaddr_storage. Most IPv6-enabled
dnl hosts have it, but AIX 4.3 is one known exception.
AC_DEFUN([TYPE_SOCKADDR_STORAGE],
AC_CHECK_HEADERS(stdio.h sys/types.h sys/socket.h \
netdb.h netinet/in.h arpa/inet.h)
#
- AC_CACHE_CHECK([for working NI_WITHSCOPEID],
+ AC_CACHE_CHECK([for working NI_WITHSCOPEID],
[ac_cv_working_ni_withscopeid], [
AC_RUN_IFELSE([
AC_LANG_PROGRAM([[
dnl CURL_CHECK_FUNC_RECV
dnl -------------------------------------------------
-dnl Test if the socket recv() function is available,
-dnl and check its return type and the types of its
-dnl arguments. If the function succeeds HAVE_RECV
-dnl will be defined, defining the types of the arguments
-dnl in RECV_TYPE_ARG1, RECV_TYPE_ARG2, RECV_TYPE_ARG3
+dnl Test if the socket recv() function is available,
+dnl and check its return type and the types of its
+dnl arguments. If the function succeeds HAVE_RECV
+dnl will be defined, defining the types of the arguments
+dnl in RECV_TYPE_ARG1, RECV_TYPE_ARG2, RECV_TYPE_ARG3
dnl and RECV_TYPE_ARG4, defining the type of the function
dnl return value in RECV_TYPE_RETV.
AC_MSG_CHECKING([for recv])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
if test "$curl_cv_func_recv_args" = "unknown"; then
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
dnl CURL_CHECK_FUNC_SEND
dnl -------------------------------------------------
-dnl Test if the socket send() function is available,
-dnl and check its return type and the types of its
-dnl arguments. If the function succeeds HAVE_SEND
-dnl will be defined, defining the types of the arguments
-dnl in SEND_TYPE_ARG1, SEND_TYPE_ARG2, SEND_TYPE_ARG3
+dnl Test if the socket send() function is available,
+dnl and check its return type and the types of its
+dnl arguments. If the function succeeds HAVE_SEND
+dnl will be defined, defining the types of the arguments
+dnl in SEND_TYPE_ARG1, SEND_TYPE_ARG2, SEND_TYPE_ARG3
dnl and SEND_TYPE_ARG4, defining the type of the function
-dnl return value in SEND_TYPE_RETV, and also defining the
+dnl return value in SEND_TYPE_RETV, and also defining the
dnl type qualifier of second argument in SEND_QUAL_ARG2.
AC_DEFUN([CURL_CHECK_FUNC_SEND], [
AC_MSG_CHECKING([for send])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
if test "$curl_cv_func_send_args" = "unknown"; then
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
AC_MSG_CHECKING([for recvfrom])
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
if test "$curl_cv_func_recvfrom_args" = "unknown"; then
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
AC_CACHE_CHECK([for MSG_NOSIGNAL], [ac_cv_msg_nosignal], [
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
AC_CACHE_CHECK([for struct timeval], [ac_cv_struct_timeval], [
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
-#undef inline
+#undef inline
#ifdef HAVE_WINDOWS_H
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
done
fi
fi
-
-
+
+
if test "x$ca" != "xno"; then
CURL_CA_BUNDLE='"'$ca'"'
'__int32' \
'int' ; do
DO_CURL_OFF_T_CHECK([$t4], [4])
- done
+ done
AC_MSG_RESULT([$curl_typeof_curl_off_t])
fi
if test "$curl_typeof_curl_off_t" = "unknown"; then
$Id$
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
BUGS
2.10 Document
2.11 Test Cases
- 3. Pushing Out Your Changes
+ 3. Pushing Out Your Changes
3.1 Write Access to CVS Repository
3.2 How To Make a Patch
3.3 How to get your changes into the main sources
test case that verifies that it works as documented. If every submitter also
posts a few test cases, it won't end up as a heavy burden on a single person!
-3. Pushing Out Your Changes
+3. Pushing Out Your Changes
3.1 Write Access to CVS Repository
This document reflects my view and understanding of these things. Please tell
me where and how you think I'm wrong, and I'll try to correct my mistakes.
-Background
+Background
The Free Software Foundation has deemed the Original BSD license[1] to be
"incompatible"[2] with GPL[3]. I'd rather say it is the other way around, but
5.12 Can I make libcurl fake or hide my real IP address?
5.13 How do I stop an ongoing transfer?
5.14 Using C++ non-static functions for callbacks?
- 5.15 How do I get an FTP directory listing?
+ 5.15 How do I get an FTP directory listing?
6. License Issues
6.1 I have a GPL program, can I use the libcurl library?
curl ftp://ftp.sunet.se//tmp/
3.18 Can I use curl to send a POST/PUT and not wait for a response?
-
+
No.
But you could easily write your own program using libcurl to do such stunts.
curl_easy_setopt(hcurl, CURLOPT_WRITEFUNCTION, YourClass:staticFunction);
curl_easy_setopt(hcurl, CURLOPT_WRITEDATA, this);
- 5.15 How do I get an FTP directory listing?
+ 5.15 How do I get an FTP directory listing?
If you end the FTP URL you request with a slash, libcurl will provide you
with a directory listing of that given directory. You can also set
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
FEATURES
To get support for SCP and SFTP, build with --with-libssh2 and have
libssh2 0.16 or later installed.
-
+
SPECIAL CASES
-------------
Some versions of uClibc require configuring with CPPFLAGS=-D_GNU_SOURCE=1
If you have any problems linking libraries or finding header files, be sure
to verify that the provided "Makefile.m32" files use the proper paths, and
- adjust as necessary. It is also possible to override these paths with
+ adjust as necessary. It is also possible to override these paths with
environment variables, for example:
set ZLIB_PATH=c:\zlib-1.2.3
+++ src/main.c 24 Jul 2006 21:37:23 -0000
@@ -4286,11 +4286,31 @@
}
-
-
+
+
+#ifdef __ECOS
+#include <cyg/fileio/fileio.h>
+MTAB_ENTRY( testfs_mte1,
+ "",
+ 0);
+#endif
-
+
int main(int argc, char *argv[])
{
int res;
+ }
+#endif
memset(&config, 0, sizeof(struct Configurable));
-
+
config.errors = stderr; /* default errors to stderr */
curl can be compiled on Minix 3 using gcc or ACK (starting with
ver. 3.1.3). Ensure that GNU gawk and bash are both installed and
available in the PATH.
-
+
ACK
---
Increase the heap sizes of the compiler with the command:
GCC
---
Make sure gcc is in your PATH with the command:
-
+
export PATH=/usr/gnu/bin:$PATH
-
+
then configure and compile curl with:
./configure CC=gcc AR=/usr/gnu/bin/gar GREP=grep
VxWorks
========
Build for VxWorks is performed using cross compilation.
- That means you build on Windows machine using VxWorks tools and
+ That means you build on Windows machine using VxWorks tools and
run the built image on the VxWorks device.
-
+
To build libcurl for VxWorks you need:
-
+
- CYGWIN (free, http://cygwin.com/)
- Wind River Workbench (commercial)
3. Adjust environment variables defined in 'Environment' section
of the Makefile.vxworks file to point to your software folders.
4. Build the libcurl by typing 'make -f ./Makefile.vxworks'
-
- As a result the libcurl.a library should be created in the 'lib' folder.
+
+ As a result the libcurl.a library should be created in the 'lib' folder.
To clean the build results type 'make -f ./Makefile.vxworks clean'.
-
+
CROSS COMPILE
=============
CMake is specifed in the file CMakeLists.txt found in the top of the curl
source tree. Once the correct version of CMake is installed you can follow
the instructions below for the platform you are building on.
-
+
CMake builds can be configured either from the command line, or from one
- of CMake's GUI's.
+ of CMake's GUI's.
Command Line CMake
==================
# the Curl source tree. CMake will pick a compiler for you. If you
# want to specifiy the compile, you can set the CC environment
# variable prior to running CMake.
- cmake ../curl
+ cmake ../curl
make
# currently make test and make install are not implemented
#make test
2. Fill in the "Where to build the binaries" combo box with the path
to the directory for your build tree, ideally this should not be the
same as the source tree, but a parallel diretory called curl-build or
- something similar.
+ something similar.
3. Once the source and binary directories are specified, press the
"Configure" button.
- 4. Select the native build tool that you want to use.
+ 4. Select the native build tool that you want to use.
5. At this point you can change any of the options presented in the
GUI. Once you have selected all the options you want, click the
- "Generate" button.
+ "Generate" button.
6. Run the native build tool that you used CMake to genratate.
-
+
DevCpp-Mingw Install & Compilation Sept 2005
==================================
-Reference Emails available at curl@haxx.se:
+Reference Emails available at curl@haxx.se:
Libcurl Install and Use Issues
- Awaiting an Answer for Win 32 Install
+ Awaiting an Answer for Win 32 Install
res = curl_easy_perform(curl); Error
Makefile Issues
-
+
Having previously done a thorough review of what was available that met my
requirements under GPL, I settled for Libcurl as the software of choice for
Method I - DOS Command Line
---------------------------
-
+
Note - The only reason I have included this method is that Method II which is
the preferred method for compiling does not allow for the setting of option
switches (e.g. SSL = 1 or SSL =0). At least that's what they tell me at the
files and close box. Wait till all files are added. This may take 30 seconds
or longer.
-9- Drop the Menu Execute/Click on Compile.
+9- Drop the Menu Execute/Click on Compile.
10- That's it.
2- Don't forget to include #include "curl/curl.h".
e.g.
- #define CURL_STATICLIB
+ #define CURL_STATICLIB
#include <windows.h>
#include "curl/curl.h"
#include <fstream>
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
INTERNALS
lib/timeval.c features replacement functions for systems that don't have
gettimeofday() and a few support functions for timeval convertions.
-
+
A function named curl_version() that returns the full curl version string is
found in lib/version.c.
Library Symbols
===============
-
+
All symbols used internally in libcurl must use a 'Curl_' prefix if they're
used in more than a single file. Single-file symbols must be made static.
Public ("exported") symbols must use a 'curl_' prefix. (There are exceptions,
70. Problem re-using easy handle after call to curl_multi_remove_handle
http://curl.haxx.se/mail/lib-2009-07/0249.html
-
+
68. "More questions about ares behavior".
http://curl.haxx.se/mail/lib-2009-08/0012.html
to VMS file structures and the perceived file sizes stat() returns. A
possible fix would involve sending a "STRU VMS" command.
http://curl.haxx.se/bug/view.cgi?id=1156287
-
+
21. FTP ASCII transfers do not follow RFC959. They don't convert the data
accordingly (not for sending nor for receiving). RFC 959 section 3.1.1.1
clearly describes how this should be done:
Get the first 100 bytes of a document using FTP:
- curl -r 0-99 ftp://www.get.this/README
+ curl -r 0-99 ftp://www.get.this/README
UPLOADING
Upload a local file to the remote site, and use the local file name remote
too:
-
+
curl -T uploadfile -u user:passwd ftp://ftp.upload.com/
Upload a local file to get appended to the remote file:
this:
curl --trace trace.txt www.haxx.se
-
+
DETAILED INFORMATION
To send two files in one post you can do it in two ways:
1. Send multiple files in a single "field" with a single field name:
-
- curl -F "pictures=@dog.gif,cat.gif"
-
- 2. Send two fields with two field names:
- curl -F "docpicture=@dog.gif" -F "catpicture=@cat.gif"
+ curl -F "pictures=@dog.gif,cat.gif"
+
+ 2. Send two fields with two field names:
+
+ curl -F "docpicture=@dog.gif" -F "catpicture=@cat.gif"
To send a field value literally without interpreting a leading '@'
or '<', or an embedded ';type=', use --form-string instead of
formatted one that curl can use, do something like this (assuming netscape,
but IE is likely to work similarly):
- You start with hitting the 'security' menu button in netscape.
+ You start with hitting the 'security' menu button in netscape.
- Select 'certificates->yours' and then pick a certificate in the list
+ Select 'certificates->yours' and then pick a certificate in the list
- Press the 'export' button
+ Press the 'export' button
- enter your PIN code for the certs
+ enter your PIN code for the certs
- select a proper place to save it
+ select a proper place to save it
Run the 'openssl' application to convert the certificate. If you cd to the
openssl installation, you can do it like:
They should be set for protocol-specific proxies. General proxy should be
set with
-
+
ALL_PROXY
A comma-separated list of host names that shouldn't go through any proxy is
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
README.cmake
Curl contains CMake build files that provide a way to build Curl with the
CMake build tool (www.cmake.org). CMake is a cross platform meta build tool
that generates native makefiles and IDE project files. The CMake build
- system can be used to build Curl on any of its supported platforms.
+ system can be used to build Curl on any of its supported platforms.
Read the INSTALL.cmake file for instructions on how to compile curl with
- CMake.
+ CMake.
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
README.netware
Curl has been successfully compiled with gcc / nlmconv on different flavours
of Linux as well as with the official Metrowerks CodeWarrior compiler.
- While not being the main development target, a continously growing share of
+ While not being the main development target, a continously growing share of
curl users are NetWare-based, specially also consuming the lib from PHP.
-
+
The unix-style man pages are tricky to read on windows, so therefore are all
those pages converted to HTML as well as pdf, and included in the release
archives.
Read the INSTALL file for instructions how to compile curl self.
-
+
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
README.win32
- _ _ ____ _
- Project ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ Project ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Character Sets, Languages, and Continuations
RFC 2388 - "Returning Values from Forms: multipart/form-data"
- Use this as an addition to the RFC1867
+ Use this as an addition to the RFC1867
RFC 2396 - "Uniform Resource Identifiers: Generic Syntax and Semantics" This
one obsoletes RFC 1738, but since RFC 1738 is often mentioned
RFC 2617 - HTTP Authentication
RFC 2718 - Guidelines for new URL Schemes
-
+
RFC 2732 - Format for Literal IPv6 Addresses in URL's
-
+
RFC 2818 - HTTP Over TLS (TLS is the successor to SSL)
-
+
RFC 2964 - Use of HTTP State Management
-
+
RFC 2965 - HTTP State Management Mechanism. Cookies. Obsoletes RFC2109
Starting with version 7.19.7 libcurl will check for the NSS version it runs,
and add automatically the 'sql:' prefix to the certdb directory (either the
hardcoded default /etc/pki/nssdb or the directory configured with SSL_DIR
-environment variable) if a version 3.12.0 or later is detected.
+environment variable) if a version 3.12.0 or later is detected.
To check which certdb format your distribution provides examine the default
certdb location /etc/pki/nssdb; the new certdb format can be identified by
the filenames cert9.db, key4.db, pkcs11.txt; filenames of older versions are
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Things that could be nice to do in the future
libcurl built without an asynchronous resolver library uses alarm() to time
out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
- signal handler back into the library with a sigsetjmp, which effectively
+ signal handler back into the library with a sigsetjmp, which effectively
causes libcurl to continue running within the signal handler. This is
non-portable and could cause problems on some platforms. A discussion on the
problem is available at http://curl.haxx.se/mail/lib-2008-09/0197.html
The site might require a different authentication method (check the headers
returned by the server), and then --ntlm, --digest, --negotiate or even
--anyauth might be options that suit you.
-
+
Sometimes your HTTP access is only available through the use of a HTTP
proxy. This seems to be especially common at various companies. A HTTP proxy
may require its own user and password to allow the client to get through to
such pages in the same manner it display all HTTP replies. It does however
feature an option that will make it attempt to follow the Location: pointers.
- To tell curl to follow a Location:
-
+ To tell curl to follow a Location:
+
curl -L www.sitethatredirects.com
If you use curl to POST to a site that immediately redirects you to another
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Version Numbers and Releases
have the libcurl version stored in the curl/curlver.h file using a static
numbering scheme that can be used for comparison. The version number is
defined as:
-
+
#define LIBCURL_VERSION_NUM 0xXXYYZZ
Where XX, YY and ZZ are the main version, release and patch numbers in
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
Set of compiler options (CFLAGS) to use when compiling files that use
libcurl. Currently that is only the include path to the curl include files.
.IP "--checkfor [version]"
-Specify the oldest possible libcurl version string you want, and this
-script will return 0 if the current installation is new enough or it
-returns 1 and outputs a text saying that the current version is not new
+Specify the oldest possible libcurl version string you want, and this
+script will return 0 if the current installation is new enough or it
+returns 1 and outputs a text saying that the current version is not new
enough. (Added in 7.15.4)
.IP "--configure"
Displays the arguments given to configure when building curl.
with the -o option, nothing else. If the -o file name uses no dir or if the
dirs it mentions already exist, no dir will be created.
-To create remote directories when using FTP or SFTP, try
+To create remote directories when using FTP or SFTP, try
\fI--ftp-create-dirs\fP.
.IP "--crlf"
(FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).
#############################################################################
-# _ _ ____ _
-# Project ___| | | | _ \| |
-# / __| | | | |_) | |
-# | (__| |_| | _ <| |___
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# $Id$
static size_t WriteCallback(void *ptr, size_t size, size_t nmemb, void *data)
{
/* we are not interested in the downloaded bytes itself,
- so we only return the size we would have saved ... */
+ so we only return the size we would have saved ... */
return (size_t)(size * nmemb);
}
for (argc--, argv++; *argv; argc--, argv++) {
if (strncasecmp(*argv, "-", 1) == 0) {
if (strncasecmp(*argv, "-H", 2) == 0) {
- fprintf(stderr,
+ fprintf(stderr,
"\rUsage: %s [-m=1|2|5|10|20|50|100] [-t] [-x] [url]\n",
appname);
exit(1);
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * This example shows usage of simple cookie interface.
+ * This example shows usage of simple cookie interface.
*/
#include <stdio.h>
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if (res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n", curl_easy_strerror(res));
- return 1;
+ return 1;
}
/* HTTP-header style cookie */
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if (res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n", curl_easy_strerror(res));
- return 1;
+ return 1;
}
print_cookies(curl);
*/
-/*
+/*
* We use this ZERO_NULL to avoid picky compiler warnings,
* when assigning a NULL pointer to a function pointer var.
*/
static size_t throw_away(void *ptr, size_t size, size_t nmemb, void *data)
{
/* we are not interested in the headers itself,
- so we only return the size we would have saved ... */
+ so we only return the size we would have saved ... */
return (size_t)(size * nmemb);
}
/* No download if the file */
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
/* Ask for filetime */
- curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
+ curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
/* No header output: TODO 14.1 http-style HEAD output for ftp */
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, throw_away);
curl_easy_setopt(curl, CURLOPT_HEADER, 0L);
/*****************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* $Id$
struct curl_slist *headerlist=NULL;
static const char buf[] = "Expect:";
- /* Fill in the file upload field. This makes libcurl load data from
+ /* Fill in the file upload field. This makes libcurl load data from
the given file name when curl_easy_perform() is called. */
curl_formadd(&formpost,
&lastptr,
*/
/*
This is a simple example showing how a program on a non-ASCII platform
- would invoke callbacks to do its own codeset conversions instead of
+ would invoke callbacks to do its own codeset conversions instead of
using the built-in iconv functions in libcurl.
The IBM-1047 EBCDIC codeset is used for this example but the code
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
retreive this info before closing the active connection.
.IP CURLINFO_RTSP_CLIENT_CSEQ
Pass a pointer to a long to receive the next CSeq that will be used by the
-application.
+application.
.IP CURLINFO_RTSP_SERVER_CSEQ
Pass a pointer to a long to receive the next server CSeq that will be expected
-by the application.
+by the application.
\fI(NOTE: listening for server initiated requests is currently
unimplemented).\fP
initializes curl and this call \fBMUST\fP have a corresponding call to
\fIcurl_easy_cleanup(3)\fP when the operation is complete.
-If you did not already call \fIcurl_global_init(3)\fP,
+If you did not already call \fIcurl_global_init(3)\fP,
\fIcurl_easy_init(3)\fP does it automatically.
This may be lethal in multi-threaded cases, since \fIcurl_global_init(3)\fP is
not thread-safe, and it may result in resource problems because there is
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\"
.TH curl_easy_send 3 "29 April 2008" "libcurl 7.18.2" "libcurl Manual"
.SH NAME
-curl_easy_send - sends raw data over an "easy" connection
+curl_easy_send - sends raw data over an "easy" connection
.SH SYNOPSIS
.B #include <curl/easy.h>
.sp
by the library. You should keep the associated storage available until
libcurl no longer needs it. Failing to do so will cause very odd behavior
or even crashes. libcurl will need it until you call \fIcurl_easy_cleanup(3)\fP
-or you set the same option again to use a different pointer.
+or you set the same option again to use a different pointer.
Use \fICURLOPT_VERBOSE\fP and \fICURLOPT_DEBUGFUNCTION\fP to better
debug/trace why errors happen.
/* Add simple name/content section */
curl_formadd(&post, &last, CURLFORM_COPYNAME, "name",
- CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
+ CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
/* Add simple name/content/contenttype section */
curl_formadd(&post, &last, CURLFORM_COPYNAME, "htmlcode",
The curl_formget_callback will be executed for each part of the HTTP POST
chain. The void *arg pointer will be the one passed as second argument to
-curl_formget(). The character buffer passed to it must not be freed. The
+curl_formget(). The character buffer passed to it must not be freed. The
callback should return the buffer length passed to it on success.
.SH RETURN VALUE
0 means everything was ok, non-zero means an error occurred
.\" You can view this file with:
.\" nroff -man [file]
-.\" $Id:
+.\" $Id$
.\"
.TH curl_free 3 "12 Aug 2003" "libcurl 7.10" "libcurl Manual"
.SH NAME
.nf
#include <curl/curl.h>
-CURLMcode curl_multi_socket_action(CURLM * multi_handle,
+CURLMcode curl_multi_socket_action(CURLM * multi_handle,
curl_socket_t sockfd, int ev_bitmask,
int *running_handles);
.fi
.RE
.IP CURLSHOPT_UNSHARE
This option does the opposite of \fICURLSHOPT_SHARE\fP. It specifies that
-the specified \fIparameter\fP will no longer be shared. Valid values are
+the specified \fIparameter\fP will no longer be shared. Valid values are
the same as those for \fICURLSHOPT_SHARE\fP.
.IP CURLSHOPT_USERDATA
The \fIparameter\fP allows you to specify a pointer to data that will be passed
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
http://www.gnu.org/software/gnutls/manual/html_node/Multi_002dthreaded-applications.html
NSS
-
+
is claimed to be thread-safe already without anything required.
yassl
to the CURLOPT_USERPWD option like this:
curl_easy_setopt(easyhandle, CURLOPT_PROXYUSERPWD, "myname:thesecret");
-
+
There's a long time UNIX "standard" way of storing ftp user names and
passwords, namely in the $HOME/.netrc file. The file should be made private
so that only the user may read it (see also the "Security Considerations"
.IP "Dangerous URLs"
SCP URLs can contain raw commands within the scp: URL, which is a side effect
-of how the SCP protocol is designed. e.g.
+of how the SCP protocol is designed. e.g.
scp://user:pass@host/a;date >/tmp/test;
Apps must not allow unsanitized SCP: URLs to be passed in for downloads.
Instead, the app should monitor the amount of data received within the
write or progress callback and abort once the limit is reached.
-A malicious HTTP server could cause an infinite redirection loop, causing a
+A malicious HTTP server could cause an infinite redirection loop, causing a
denial-of-service. This can be mitigated by using the CURLOPT_MAXREDIRS
option.
CURLOPT_FTPASCII 7.1 7.11.1 7.15.4
CURLOPT_FTPLISTONLY 7.1 7.16.4
CURLOPT_FTPPORT 7.1
-CURLOPT_FTPSSLAUTH 7.12.2
+CURLOPT_FTPSSLAUTH 7.12.2
CURLOPT_FTP_ACCOUNT 7.13.1
CURLOPT_FTP_ALTERNATIVE_TO_USER 7.15.5
CURLOPT_FTP_CREATE_MISSING_DIRS 7.10.7
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Include files for libcurl, external users.
/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */
/* ================================================================ */
-/*
+/*
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
* these to be visible and exported by the external libcurl interface API,
* while also making them visible to the library internals, simply including
#ifndef __STDC_HEADERS_H
#define __STDC_HEADERS_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
int strcasecmp(const char *, const char *);
int strncasecmp(const char *, const char *, size_t);
-#endif
+#endif /* __STDC_HEADERS_H */
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
+# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
# If we're going to rename the final executable, determine the name now.
- if [ x"$transformarg" = x ]
+ if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
- dstfile=`basename $dst $transformbasename |
+ dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
- if [ x"$dstfile" = x ]
+ if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
nonblock.c
hash.c
http.c
- if2ip.c
+ if2ip.c
mprintf.c
multi.c
sendf.c
#
# Here's the simplified rule guide on how to change -version-info:
# (current version is C:R:A)
-#
+#
# 1. if there are only source changes, use C:R+1:A
# 2. if interfaces were added use C+1:0:A+1
# 3. if interfaces were removed, then use C+1:0:0
# Compile options:
linkopts = -o libcurl
-compileropts = -mpoke-function-name -IUtilLib: -mthrowback
+compileropts = -mpoke-function-name -IUtilLib: -mthrowback
# Project target:
libcurl: $(objs)
# ----------------------------------------------------------------------
-# Compiler
+# Compiler
# ----------------------------------------------------------------------
CC := ccppc
AR := arppc
LINK := ccppc
CFLAGS := -D__GNUC__ -D__ppc__ -msoft-float -fno-builtin -mcpu=604 -mlongcall -DCPU=PPC604 -D_GNU_TOOL -Wall -W -Winline $(USER_CFLAGS)
-LDFLAGS := -nostdlib -Wl,-i -Wl,-X
+LDFLAGS := -nostdlib -Wl,-i -Wl,-X
INCLUDE_FLAG := -I
C_DEBUGFLAG := -g
C_OPTFLAG := -O2
$Id$
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
How To Build libcurl to Use c-ares For Asynch Name Resolves
===========================================================
-c-ares:
+c-ares:
http://daniel.haxx.se/projects/c-ares/
NOTE
$Id$
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Source Code Functions Apps Might Use
Content Encoding Support for libcurl
-* About content encodings:
+* About content encodings:
HTTP/1.1 [RFC 2616] specifies that a client may request that a server encode
its response. This is usually used to compress a response using one of a set
* The libcurl interface:
-To cause libcurl to request a content encoding use:
+To cause libcurl to request a content encoding use:
- curl_easy_setopt(curl, CURLOPT_ENCODING, <string>)
+ curl_easy_setopt(curl, CURLOPT_ENCODING, <string>)
where <string> is the intended value of the Accept-Encoding header.
$Id$
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
How To Track Down Suspected Memory Leaks in libcurl
-#ifndef __ARPA_TELNET_H
-#define __ARPA_TELNET_H
+#ifndef HEADER_CURL_ARPA_TELNET_H
+#define HEADER_CURL_ARPA_TELNET_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
#define CURL_TELOPT_OK(x) ((x) <= CURL_TELOPT_MAXIMUM)
#define CURL_TELOPT(x) telnetoptions[x]
-#define CURL_NTELOPTS 40
+#define CURL_NTELOPTS 40
/*
* First some defines
*/
-#define CURL_xEOF 236 /* End Of File */
+#define CURL_xEOF 236 /* End Of File */
#define CURL_SE 240 /* Sub negotiation End */
#define CURL_NOP 241 /* No OPeration */
#define CURL_DM 242 /* Data Mark */
#define CURL_TELCMD_OK(x) ( ((unsigned int)(x) >= CURL_TELCMD_MINIMUM) && \
((unsigned int)(x) <= CURL_TELCMD_MAXIMUM) )
#define CURL_TELCMD(x) telnetcmds[(x)-CURL_TELCMD_MINIMUM]
-#endif
-#endif
+
+#endif /* CURL_DISABLE_TELNET */
+
+#endif /* HEADER_CURL_ARPA_TELNET_H */
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
#endif
-/*
+/*
* Curl_addrinfo is our internal struct definition that we use to allow
* consistent internal handling of this data. We use this even when the
* system provides an addrinfo structure definition. And we use this for
-#ifndef __CURL_MD5_H
-#define __CURL_MD5_H
+#ifndef HEADER_CURL_MD5_H
+#define HEADER_CURL_MD5_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
void Curl_md5it(unsigned char *output,
const unsigned char *input);
-#endif
+#endif /* HEADER_CURL_MD5_H */
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
#include <curl/curl.h>
-/*
+/*
* When including the folowing three headers, it is mandatory to define either
* SECURITY_WIN32 or SECURITY_KERNEL, indicating who is compiling the code.
*/
struct curl_actual_call {
unsigned int (*func)(void *);
- void *arg;
+ void *arg;
};
static void *curl_thread_create_thunk(void *arg)
# * | (__| |_| | _ <| |___
# * \___|\___/|_| \_\_____|
# *
-# * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+# * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
# *
# * This software is licensed as described in the file COPYING, which
# * you should have received as part of this distribution. The terms
# *
# * $Id$
# ***************************************************************************
-# This shell script creates a fresh ca-bundle.crt file for use with libcurl.
+# This shell script creates a fresh ca-bundle.crt file for use with libcurl.
# It extracts all ca certs it finds in the local Firefox database and converts
# them all into PEM format.
#
-db=`ls -1d $HOME/.mozilla/firefox/*default`
+db=`ls -1d $HOME/.mozilla/firefox/*default`
out=$1
if test -z "$out"; then
-#ifndef __GETINFO_H
-#define __GETINFO_H
+#ifndef HEADER_CURL_GETINFO_H
+#define HEADER_CURL_GETINFO_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...);
CURLcode Curl_initinfo(struct SessionHandle *data);
-#endif
+#endif /* HEADER_CURL_GETINFO_H */
if(!ai)
infof(conn->data, "Curl_ipv4_resolve_r failed for %s\n", hostname);
- return ai;
+ return ai;
}
#endif /* CURLRES_SYNCH */
#endif /* CURLRES_IPV4 */
return Curl_ip2addr(AF_INET, &in, hostname, port);
#if defined(HAVE_GETADDRINFO_THREADSAFE)
- else {
+ else {
struct addrinfo hints;
char sbuf[NI_MAXSERV];
char *sbufptr = NULL;
-#ifndef __HTTP_NEGOTIATE_H
-#define __HTTP_NEGOTIATE_H
-
+#ifndef HEADER_CURL_HTTP_NEGOTIATE_H
+#define HEADER_CURL_HTTP_NEGOTIATE_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
#ifdef HAVE_GSSAPI
/* this is for Negotiate header input */
-int Curl_input_negotiate(struct connectdata *conn, bool proxy, const char *header);
+int Curl_input_negotiate(struct connectdata *conn, bool proxy,
+ const char *header);
/* this is for creating Negotiate header output */
CURLcode Curl_output_negotiate(struct connectdata *conn, bool proxy);
void Curl_cleanup_negotiate(struct SessionHandle *data);
-#endif
+#endif /* HAVE_GSSAPI */
-#endif
+#endif /* HEADER_CURL_HTTP_NEGOTIATE_H */
# * | (__| |_| | _ <| |___
# * \___|\___/|_| \_\_____|
# *
-# * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+# * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
# *
# * This software is licensed as described in the file COPYING, which
# * you should have received as part of this distribution. The terms
# *
# * $Id$
# ***************************************************************************
-# This Perl script creates a fresh ca-bundle.crt file for use with libcurl.
+# This Perl script creates a fresh ca-bundle.crt file for use with libcurl.
# It downloads certdata.txt from Mozilla's source tree (see URL below),
# then parses certdata.txt and extracts CA Root Certificates into PEM format.
# These are then processed with the OpenSSL commandline tool to produce the
use MIME::Base64;
use LWP::UserAgent;
use strict;
-use vars qw($opt_b $opt_h $opt_i $opt_l $opt_n $opt_q $opt_t $opt_u $opt_v);
+use vars qw($opt_b $opt_h $opt_i $opt_l $opt_n $opt_q $opt_t $opt_u $opt_v);
my $url = 'http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1';
# If the OpenSSL commandline is not in search path you can configure it here!
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
bool done=FALSE;
char netrcbuffer[256];
int netrcbuffsize = (int)sizeof(netrcbuffer);
-
+
while(!done && fgets(netrcbuffer, netrcbuffsize, file)) {
tok=strtok_r(netrcbuffer, " \t\n", &tok_buf);
while(!done && tok) {
-#ifndef __NETRC_H
-#define __NETRC_H
+#ifndef HEADER_CURL_NETRC_H
+#define HEADER_CURL_NETRC_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
* in the netrc.
* If login[0] != 0, search for password within machine and login.
*/
-#endif
+
+#endif /* HEADER_CURL_NETRC_H */
-#ifndef __SETUP_OS400_H
-#define __SETUP_OS400_H
+#ifndef HEADER_CURL_SETUP_OS400_H
+#define HEADER_CURL_SETUP_OS400_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
gss_flags_t req_flags,
OM_uint32 time_req,
gss_channel_bindings_t
- input_chan_bindings,
+ input_chan_bindings,
gss_buffer_t input_token,
gss_OID * actual_mech_type,
gss_buffer_t output_token,
#define recvfrom Curl_os400_recvfrom
-#endif /* __SETUP_OS400_H */
+#endif /* HEADER_CURL_SETUP_OS400_H */
-#ifndef __LIB_CURL_SETUP_H
-#define __LIB_CURL_SETUP_H
+#ifndef HEADER_CURL_LIB_SETUP_H
+#define HEADER_CURL_LIB_SETUP_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
#include "setup_once.h"
#endif
-#endif /* __LIB_CURL_SETUP_H */
+#endif /* HEADER_CURL_LIB_SETUP_H */
-#ifndef __SPEEDCHECK_H
-#define __SPEEDCHECK_H
+#ifndef HEADER_CURL_SPEEDCHECK_H
+#define HEADER_CURL_SPEEDCHECK_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
CURLcode Curl_speedcheck(struct SessionHandle *data,
struct timeval now);
-#endif
+#endif /* HEADER_CURL_SPEEDCHECK_H */
-#ifndef __CURL_STRDUP_H
-#define __CURL_STRDUP_H
+#ifndef HEADER_CURL_STRDUP_H
+#define HEADER_CURL_STRDUP_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
extern char *curlx_strdup(const char *str);
#endif
-#endif
-
+#endif /* HEADER_CURL_STRDUP_H */
-#ifndef __CURL_STRTOK_H
-#define __CURL_STRTOK_H
+#ifndef HEADER_CURL_STRTOK_H
+#define HEADER_CURL_STRTOK_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
#include <string.h>
#endif
-#endif
-
+#endif /* HEADER_CURL_STRTOK_H */
-#ifndef _CURL_STRTOOFFT_H
-#define _CURL_STRTOOFFT_H
+#ifndef HEADER_CURL_STRTOOFFT_H
+#define HEADER_CURL_STRTOOFFT_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* to implement string conversion to our curl_off_t integral data type.
*
* Notice that curl_off_t might be 64 or 32 bit wide, and that it might use
- * an undelying data type which might be 'long', 'int64_t', 'long long' or
+ * an undelying data type which might be 'long', 'int64_t', 'long long' or
* '__int64' and more remotely other data types.
*
* On systems where the size of curl_off_t is greater than the size of 'long'
#define CURL_LLONG_MAX CURL_OFF_T_C(0x7FFFFFFFFFFFFFFF)
#define CURL_LLONG_MIN (-CURL_LLONG_MAX - CURL_OFF_T_C(1))
-#endif
-
+#endif /* HEADER_CURL_STRTOOFFT_H */
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# Replace version number in header file:
sed 's/#define CURL_VERSION .*/#define CURL_VERSION "'$curlversion'"/g' $CHEADER >$CHEADER.dist
-# Generate VC8 and VC9 versions from the VC6 Makefile versions
+# Generate VC8 and VC9 versions from the VC6 Makefile versions
for ver in vc8 vc9; do
make -f Makefile.dist $ver
mv src/Makefile.$ver src/Makefile.$ver.dist
curl spec files, plus additions to make it AIX Toolbox compatible.
The AIX Toolbox setup (installs into /opt/freeware, with symlinks in
-/usr/bin,/usr/lib,/usr/include) are based on IBM's aixtoolbox spec
+/usr/bin,/usr/lib,/usr/include) are based on IBM's aixtoolbox spec
file written by David Clissold <cliss@austin.ibm.com>, see
ftp://ftp.software.ibm.com/aixtoolbox/SPECS/curl-7.9.3-2.spec
This spec file is designed to be a drop-in replacement for the
-old spec file found at the above link. Thus, like the old spec file
-this version is also a unified ssl/non-ssl version. To get non-ssl
-RPMs just pass --define 'nossl 1' to the command line when building
-the RPM, e.g.
+old spec file found at the above link. Thus, like the old spec file
+this version is also a unified ssl/non-ssl version. To get non-ssl
+RPMs just pass --define 'nossl 1' to the command line when building
+the RPM, e.g.
rpm -bb --define 'nossl 1' curl.spec
Default is to build with ssl support.
-Lastly, the spec file expects the Curl source distribution file to be
+Lastly, the spec file expects the Curl source distribution file to be
in .tar.bz2 format.
The nifty cURL header of this README is a ripoff of the vms/readme file.
%package devel
Summary: Development files for the curl libary
Group: Development/Libraries
-%if %{SSL} == 1
-Requires: openssl >= 0.9.5
-%endif
+%if %{SSL} == 1
+Requires: openssl >= 0.9.5
+%endif
Requires: curl = %{version}
Provides: curl-devel
%description devel
-libcurl is the core engine of curl; this packages contains all the
+libcurl is the core engine of curl; this packages contains all the
libs, headers, and manual pages to develop applications using libcurl.
%define DEFCC xlc
then
if test "X`type %{DEFCC} 2>/dev/null`" != 'X'; then
export CC=%{DEFCC}
- else
+ else
export CC=gcc
fi
fi
%if %{SSL} == 1
%{_datadir}/curl/curl-ca-bundle.crt
%endif
-%doc CHANGES COPYING README RELEASE-NOTES
+%doc CHANGES COPYING README RELEASE-NOTES
%doc docs/BUGS docs/CONTRIBUTE docs/FAQ docs/FEATURES docs/HISTORY
-%doc docs/INSTALL docs/KNOWN_BUGS
+%doc docs/INSTALL docs/KNOWN_BUGS
%doc docs/MANUAL docs/RESOURCES docs/THANKS docs/VERSIONS docs/TODO
%doc docs/TheArtOfHttpScripting
%if %{SSL} == 1
%prep
-%setup -q -n %{tarball}-%{version}
+%setup -q -n %{tarball}-%{version}
%build
cd %{curlroot} && (if [ -f configure.in ]; then mv -f configure.in configure.in.rpm; fi)
%configure
cd %{curlroot} && (if [ -f configure.in.rpm ]; then mv -f configure.in.rpm configure.in; fi)
-make
+make
%install
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
%build
%configure --without-ssl --prefix=%{prefix}
-make
+make
%install
rm -rf $RPM_BUILD_ROOT
Symbian/readme.txt \
TPF/curl.mak \
TPF/maketpf.env_curl \
- TPF/maketpf.env_curllib
+ TPF/maketpf.env_curllib
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
PACKAGES
The hierarchy for these directories is something like this:
packages/[OS]/[FORMAT]/
-
+
Currently, we have Win32 and Linux for [OS]. There might be different formats
for the same OS so for Linux we have RPM as format.
We might need to add some differentiation for CPU as well, as there is
Linux-RPMs for several CPUs. However, it might not be necessary since the
packaging should be pretty much the same no matter what CPU that is used.
-
+
For each unique OS-FORMAT pair, there's a directory to "fill"! I'd like to
see a single README with as much details as possible, and then I'd like some
template files for the package process.
-//
+//
// curl file transfer utility command-line utility
//
// Use this file with buildrom to add curl to a device ROM
-//
+//
#ifndef CURL_IBY
#define CURL_IBY
#ifdef ENABLE_SSL
USERINCLUDE /epoc32/include/osextensions/stdapis
// Older versions of the SDK need this instead:
-//USERINCLUDE /epoc32/include/stdapis/openssl
+//USERINCLUDE /epoc32/include/stdapis/openssl
#endif
SYSTEMINCLUDE ../../../include /epoc32/include/stdapis /epoc32/include
file transfers. The author has no current plans to do so.
This means that integration with standard Symbian OS programs can be
-tricky, since libcurl isn't designed with Symbian's native asynchronous
+tricky, since libcurl isn't designed with Symbian's native asynchronous
message passing idioms in mind. However, it may be possible to use libcurl
in an active object-based application through libcurl's multi interface.
The port is most easily used when porting POSIX applications to Symbian
################################################################################
# Define the directories where the shared objects reside
-################################################################################
+################################################################################
+
ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib)
################################################################################
################################################################################
# Define the directories where the shared objects reside
-################################################################################
+################################################################################
+
ROOTLIBDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/lib)
################################################################################
-# Define the directories where the loadables (XXXXVV) are to be written
+# Define the directories where the loadables (XXXXVV) are to be written
################################################################################
ROOTLOADDIRS := $(foreach d,$(TPF_ROOT),$d/opensource/curl/output/load)
################################################################################
# Define the location of the export files used by the LD postprocessor
-# - currently expected that .exp files will also live in lib dir
-################################################################################
+# - currently expected that .exp files will also live in lib dir
+################################################################################
+
ROOTEXPDIRS := $(foreach d,$(TPF_ROOT_LM),$d/opensource/curl/output/exp)
################################################################################
# Read the README file for details on using this Makefile
#
# NOTE: As I'm not particularly familiar with Makefiles, this was the
-# best I could come up with. It should probably be enhanced someday
+# best I could come up with. It should probably be enhanced someday
# to actually use the correct target and pre-requisite names, etc...
# If anyone else wants to volunteer, feel free ;-)
#
-Curl is a tool for transferring files with URL syntax, supporting
+Curl is a tool for transferring files with URL syntax, supporting
FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE and LDAP.
- Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
- FTP uploading, kerberos, HTTP form based upload, proxies,
+ Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
+ FTP uploading, kerberos, HTTP form based upload, proxies,
cookies, user+password authentication, file transfer resume,
http proxy tunneling and a busload of other useful tricks.
http://mail.gnu.org/pipermail/libtool/2001-September/005549.html
The copy of ltmain.sh that is distributed with cURL includes this patch.
- As of curl 7.9.1, the official source compiles (under Cygwin) and tests
+ As of curl 7.9.1, the official source compiles (under Cygwin) and tests
100% cleanly OOTB (Out Of The Box)
---NO SSL RELEASE---
where n is the cygwin release number (e.g. the "1" in curl-7.9-1),
and "CYGBUILD=n" is optional (n defaults to 1 if not specified)
-
+
Assuming everything worked, you'll find your binary tarballs in
$(buildtop)/packages/Win32/cygwin/
$ cd curl-7.9-1; mkdir CYGWIN-PATCHES
$ cp packages/Win32/cygwin/README CYGWIN-PATCHES/curl-7.9-1.README
4. if applicable, document any changes in the README file
- 5. create a patch which, when applied
- (using `patch -p1 < curl-7.9-$(REL).patch`)
+ 5. create a patch which, when applied
+ (using `patch -p1 < curl-7.9-$(REL).patch`)
will remove any changes you've made to the pristine source:
$ cd ..
$ diff -Nrup curl-7.9-1 curl-7.9 > curl-7.9-1.patch
@ curl
sdesc: "a client that groks URLs"
ldesc: "Curl is a tool for transferring files with URL syntax,
- supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE
- and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
- FTP uploading, kerberos, HTTP form based upload, proxies,
+ supporting FTP, FTPS, HTTP, HTTPS, TELNET, DICT, FILE
+ and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT,
+ FTP uploading, kerberos, HTTP form based upload, proxies,
cookies, user+password authentication, file transfer resume,
http proxy tunneling and a busload of other useful tricks."
category: Web Libs
$! $Id$
-$! BUILD_VMS.COM
+$! BUILD_VMS.COM
$!
$! I've taken the original build_vms.com, supplied by Nico Baggus, if
$! memory serves me correctly, and made some modifications.
$! 6-FEB-2004, MSK, put in various SSL support bits
$! 9-MAR-2004, MSK, the config-vms.h* files are now copied to the lib and
$! src directories as curl_config.h.
-$! 15-MAR-2004, MSK, All of the curlmsg*.* files have also been moved to
-$! this build directory. They will be copied to the src
-$! directory before build. The .msg file will be compiled
-$! to get the .obj for messages, but the .h and .sdl files
-$! are not automatically created since they partly rely on
+$! 15-MAR-2004, MSK, All of the curlmsg*.* files have also been moved to
+$! this build directory. They will be copied to the src
+$! directory before build. The .msg file will be compiled
+$! to get the .obj for messages, but the .h and .sdl files
+$! are not automatically created since they partly rely on
$! the freeware SDL tool.
$! 8-FEB-2005, MSK, merged the two config-vms.h* files into one that uses
$! USE_SSLEAY to define if the target has SSL support built
$ on error then goto Common_Exit
$ on control_y then goto Common_Exit
$!
-$ ctrl_y = 1556
+$ ctrl_y = 1556
$ proc = f$environment( "PROCEDURE")
$ proc_dev_dir = -
f$parse( proc, , , "DEVICE")+ f$parse( proc, , , "DIRECTORY")
$!
$ goto Common_Exit
$!
-$! Subroutine to build everything with a filetype passed in via P2 in
-$! the directory passed in via P1 and put it in the object library named
+$! Subroutine to build everything with a filetype passed in via P2 in
+$! the directory passed in via P1 and put it in the object library named
$! via P3. Exclude items in P4.
$!
$build: subroutine
$ exit 'sts'
$ endsubroutine ! Build
$!
-$! Based on the file TYPE, do the right compile command.
+$! Based on the file TYPE, do the right compile command.
$! Only C and MSG supported.
$!
$compile: subroutine
#define HAVE_SYS_TYPES_H 1
/* Define if you have the <termios.h> header file. */
-#undef HAVE_TERMIOS_H
+#undef HAVE_TERMIOS_H
/* Define if you have the <time.h> header file. */
#define HAVE_TIME_H 1
#define CURL_SSL_CRL_BADFILE 251757210
#define CURL_SSL_ISSUER_ERROR 251757218
#define CURL_CURL_LAST 251757226
-
+
#pragma __member_alignment __restore
#endif /* HEADER_CURLMSG_H */
! $Id$
-!
-! These VMS error codes are generated by taking apart the curl.h
-! file and putting all the CURLE_* enum stuff into this file,
-! CURLMSG.MSG. An .SDL file is created from this file with
+!
+! These VMS error codes are generated by taking apart the curl.h
+! file and putting all the CURLE_* enum stuff into this file,
+! CURLMSG.MSG. An .SDL file is created from this file with
! MESSAGE/SDL. The .H file is created using the freeware SDL tool
! against the .SDL file with SDL/ALPHA/LANG=CC command.
!
-! With the exception of CURLE_OK, all of the messages are at
-! the error severity level. With the exception of
-! PEER_FAILED_VERIF, which is a shortened form of
-! PEER_FAILED_VERIFICATION, these are the same names as the
+! With the exception of CURLE_OK, all of the messages are at
+! the error severity level. With the exception of
+! PEER_FAILED_VERIF, which is a shortened form of
+! PEER_FAILED_VERIFICATION, these are the same names as the
! CURLE_ ones in include/curl.h. The Message Utility manual states
-! "The combined length of the prefix and the message symbol name cannot
+! "The combined length of the prefix and the message symbol name cannot
! exceed 31 characters." With a prefix of five that leaves us with 26
! for the message name.
-!
+!
! If you update this file also update curlmsg_vms.h so that they are in sync
-!
+!
.TITLE CURLMSG Message files
.FACILITY CURL,1793 /PREFIX=CURL_
.BASE 1
-
+
MODULE $CURDEF;
-
+
/*
/* This SDL File Generated by VAX-11 Message V04-00 on 3-SEP-2008 13:33:54.09
/*
/* $ID: CURLMSG.MSG,V 1.7 2008-05-30 23:51:09 CURLVMS EXP $
-/*
-/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H
-/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE,
-/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH
+/*
+/* THESE VMS ERROR CODES ARE GENERATED BY TAKING APART THE CURL.H
+/* FILE AND PUTTING ALL THE CURLE_* ENUM STUFF INTO THIS FILE,
+/* CURLMSG.MSG. AN .SDL FILE IS CREATED FROM THIS FILE WITH
/* MESSAGE/SDL. THE .H FILE IS CREATED USING THE FREEWARE SDL TOOL
/* AGAINST THE .SDL FILE WITH SDL/ALPHA/LANG=CC COMMAND.
/*
-/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT
-/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF
-/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF
-/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE
+/* WITH THE EXCEPTION OF CURLE_OK, ALL OF THE MESSAGES ARE AT
+/* THE ERROR SEVERITY LEVEL. WITH THE EXCEPTION OF
+/* PEER_FAILED_VERIF, WHICH IS A SHORTENED FORM OF
+/* PEER_FAILED_VERIFICATION, THESE ARE THE SAME NAMES AS THE
/* CURLE_ ONES IN INCLUDE/CURL.H. THE MESSAGE UTILITY MANUAL STATES
-/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT
+/* "THE COMBINED LENGTH OF THE PREFIX AND THE MESSAGE SYMBOL NAME CANNOT
/* EXCEED 31 CHARACTERS." WITH A PREFIX OF FIVE THAT LEAVES US WITH 26
/* FOR THE MESSAGE NAME.
-/*
+/*
/* IF YOU UPDATE THIS FILE ALSO UPDATE CURLMSG_VMS.H SO THAT THEY ARE IN SYNC
-/*
+/*
CONSTANT
"FACILITY" EQUALS 3841 PREFIX "CURL" TAG ""
,"OK" EQUALS %X0F018009 PREFIX "CURL" TAG ""
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
Perl
$getpath ="";
$getdocument = $3;
}
-
+
}
elsif ($inurl=~ /^([^:]+):\/\/(.*)/ ) {
$getprotocol = $1;
return "GOOD";
}
else {
-
+
if($head && ($error >= 500)) {
# This server doesn't like HEAD!
@doc = `$linkcheckfull \"$check\"`;
$tag = $1;
if($tag =~ /^<!--/) {
- # this is a comment tag, ignore it
+ # this is a comment tag, ignore it
}
else {
if($tag =~ /(src|href|background|archive) *= *(\"[^\"]\"|[^ )>]*)/i) {
if($url eq "") {
# if the link was nothing than a #-link it may now have
# been emptied completely so then we skip the rest
- next getlinkloop;
+ next getlinkloop;
}
if($done{$url}) {
$getpath ="";
$getdocument = $3;
}
-
+
}
elsif ($inurl=~ /^([^:]+):\/\/(.*)/ ) {
$getprotocol = $1;
return "GOOD";
}
else {
-
+
if($head && ($error >= 500)) {
# This server doesn't like HEAD!
@doc = `$linkcheckfull \"$check\"`;
my $tag = $1;
if($tag =~ /^<!--/) {
- # this is a comment tag, ignore it
+ # this is a comment tag, ignore it
}
else {
if($tag =~ /(src|href|background|archive) *= *(\"[^\"]\"|[^ \)>]*)/i) {
if($url eq "") {
# if the link was nothing than a #-link it may now have
# been emptied completely so then we skip the rest
- next;
+ next;
}
if($done{$url}) {
#print "path = $getpath\n";
#print "document = $getdocument\n";
#exit;
-
+
#
# Extracts all links from the given HTML buffer
#
if($external) {
next;
}
-
+
# this is a link on the same server:
if($url =~ /^\//) {
# from root
else {
# from the scanned page's dir
my $nyurl=$url;
-
+
if(length($getpath) &&
($getpath !~ /\/$/) &&
($nyurl !~ /^\//)) {
my $count = $done{$url};
$allcount += $count;
-
+
print "$success $count <".$tagtype{$url}."> $link $url\n";
if("BAD" eq $success) {
$rooturls{$link}++; # check this if not checked already
}
}
-
+
}
}
$tag = $1;
if($tag =~ /^<!--/) {
- # this is a comment tag, ignore it
+ # this is a comment tag, ignore it
}
else {
if(!$form &&
}
$action= $tag;
$action=~ s/.*action *= *(\'|\"|)([^ \"\'>]*).*/$2/gi;
-
+
$method=uc($method);
-
+
$enctype=$tag;
if ($enctype =~ /enctype *=/) {
$enctype=~ s/.*enctype *= *(\'|\"|)([^ \"\'>]*).*/$2/gi;
-
+
if($enctype eq "multipart/form-data") {
$enctype="multipart form upload [use -F]"
}
elsif($form &&
($tag =~ /^< *(input|select)/i)) {
$mtag = $1;
-
+
($name, $value)=namevalue($tag);
if($mtag =~ /select/i) {
}
elsif($name eq "") {
# let's read the value parameter
-
+
print "Button: \"$value\" ($type)\n";
push @alts, "$value";
}
elsif($form &&
($tag =~ /^< *textarea/i)) {
my ($name, $value)=namevalue($tag);
-
+
print "Textarea: NAME=\"$name\"\n";
}
elsif($select) {
$getpath ="";
$getdocument = $3;
}
-
+
}
elsif ($inurl=~ /^([^:]+):\/\/(.*)/ ) {
$getprotocol = $1;
$tag = $1;
if($tag =~ /^<!--/) {
- # this is a comment tag, ignore it
+ # this is a comment tag, ignore it
}
else {
if($tag =~ /(src|href|background|archive) *= *(\"[^\"]\"|[^ )>]*)/i) {
if($url eq "") {
# if the link was nothing than a #-link it may now have
# been emptied completely so then we skip the rest
- next getlinkloop;
+ next getlinkloop;
}
if($done{$url}) {
#SET_TARGET_PROPERTIES(${EXE_NAME} LIBRARY_OUTPUT_DIRECTORY "blah blah blah")
# Add the postfix to the executable since it is not added automatically as for modules and shared libraries
-set_target_properties(${EXE_NAME} PROPERTIES
+set_target_properties(${EXE_NAME} PROPERTIES
DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
if(MSVC)
# ./src/Makefile.inc
-
+
# libcurl has sources that provide functions named curlx_* that aren't part of
# the official API, but we re-use the code here to avoid duplication.
CURLX_ONES = $(top_srcdir)/lib/strtoofft.c \
# Compile options:
linkopts = ../lib/libcurl openldap:libraries/libldap/libldap -o curl
-compileropts = -mpoke-function-name -IUtilLib: -mthrowback
+compileropts = -mpoke-function-name -IUtilLib: -mthrowback
# Project target:
curl: $(objs)
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
previous one as well */
i = i - (i>=1?2:1);
}
-#ifndef __SYMBIAN32__
+#ifndef __SYMBIAN32__
/* since echo is disabled, print a newline */
fputs("\n", stderr);
#endif
if (buffer[i-1] == '\b') {
/* remove this letter and if this is not the first key,
remove the previous one as well */
- if (i > 1) {
+ if (i > 1) {
printf("\b \b");
i = i - 2;
} else {
-#ifndef __HOMEDIR_H
-#define __HOMEDIR_H
+#ifndef HEADER_CURL_HOMEDIR_H
+#define HEADER_CURL_HOMEDIR_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
char *homedir(void);
-#endif
+#endif /* HEADER_CURL_HOMEDIR_H */
-#ifndef __HUGEHELP_H
-#define __HUGEHELP_H
+#ifndef HEADER_CURL_HUGEHELP_H
+#define HEADER_CURL_HUGEHELP_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
* $Id$
***************************************************************************/
void hugehelp(void);
-#endif
+
+#endif /* HEADER_CURL_HUGEHELP_H */
close(GZIP);
system("gzip --best --no-name dumpit");
-
+
open(GZIP, "<dumpit.gz") ||
die "can't read the dumpit.gz file, try without -c";
binmode GZIP;
-#ifndef __SRC_CURL_SETUP_H
-#define __SRC_CURL_SETUP_H
+#ifndef HEADER_CURL_SRC_SETUP_H
+#define HEADER_CURL_SRC_SETUP_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
# endif
#endif
-/*
+/*
* Include header files for windows builds before redefining anything.
- * Use this preproessor block only to include or exclude windows.h,
- * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * Use this preproessor block only to include or exclude windows.h,
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
* to any other further and independent block. Under Cygwin things work
* just as under linux (e.g. <sys/socket.h>) and the winsock headers should
* never be included when __CYGWIN__ is defined. configure script takes
#include "setup_once.h"
#endif
-#endif /* __SRC_CURL_SETUP_H */
+#endif /* HEADER_CURL_SRC_SETUP_H */
-#ifndef __VERSION_H
-#define __VERSION_H
+#ifndef HEADER_CURL_VERSION_H
+#define HEADER_CURL_VERSION_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") "
-#endif
+#endif /* HEADER_CURL_VERSION_H */
-#ifndef __WRITEENV_H
-#define __WRITEENV_H
+#ifndef HEADER_CURL_WRITEENV_H
+#define HEADER_CURL_WRITEENV_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
void ourWriteEnv(CURL *curl);
-#endif
+#endif /* HEADER_CURL_WRITEENV_H */
-#ifndef __WRITEOUT_H
-#define __WRITEOUT_H
+#ifndef HEADER_CURL_WRITEOUT_H
+#define HEADER_CURL_WRITEOUT_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
void ourWriteOut(CURL *curl, const char *out);
-#endif
+#endif /* HEADER_CURL_WRITEOUT_H */
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
The cURL Test Suite
TODO:
* Add tests for TELNET, LDAP, DICT...
- * SOCKS4/5 test deficiencies - no proxy authentication tests as SSH (the
+ * SOCKS4/5 test deficiencies - no proxy authentication tests as SSH (the
test mechanism) doesn't support them
# (c) CopyRight EdelWeb for EdelKey and OpenEvidence, 2000-2004, 2009
# Author: Peter Sylvester
-# "libre" for integration with curl
+# "libre" for integration with curl
OPENSSL=openssl
if [ -f /usr/local/ssl/bin/openssl ] ; then
GETSERIAL="\$t = time ;\$d = \$t . substr(\$t+$$ ,-4,4)-1;print \$d"
SERIAL=`/usr/bin/env perl -e "$GETSERIAL"`
-echo SERIAL=$SERIAL PREFIX=$PREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
+echo SERIAL=$SERIAL PREFIX=$PREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
echo "openssl req -config $PREFIX-ca.prm -newkey rsa:$KEYSIZE -keyout $PREFIX-ca.key -out $PREFIX-ca.csr"
$OPENSSL req -config $PREFIX-ca.prm -newkey rsa:$KEYSIZE -keyout $PREFIX-ca.key -out $PREFIX-ca.csr
echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL.ca-cacert -sha1 "
-$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL-ca.cacert -sha1
+$OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-ca.prm -days $DURATION -req -signkey $PREFIX-ca.key -in $PREFIX-ca.csr -out $PREFIX-$SERIAL-ca.cacert -sha1
echo "openssl x509 -text -hash -out $PREFIX-ca.cacert -in $PREFIX-$SERIAL-ca.cacert -nameopt multiline"
$OPENSSL x509 -text -hash -out $PREFIX-ca.cacert -in $PREFIX-$SERIAL-ca.cacert -nameopt multiline
echo "openssl x509 -in $PREFIX-ca.cacert -outform der -out $PREFIX-ca.der "
-$OPENSSL x509 -in $PREFIX-ca.cacert -outform der -out $PREFIX-ca.der
+$OPENSSL x509 -in $PREFIX-ca.cacert -outform der -out $PREFIX-ca.der
echo "openssl x509 -in $PREFIX-ca.cacert -text -out $PREFIX-ca.crt -nameopt multiline"
# (c) CopyRight EdelWeb for EdelKey and OpenEvidence, 2000-2004, 2009
# Author: Peter Sylvester
-# "libre" for integration with curl
+# "libre" for integration with curl
OPENSSL=openssl
if [ -f /usr/local/ssl/bin/openssl ] ; then
SERIAL=`/usr/bin/env perl -e "$GETSERIAL"`
fi
-echo SERIAL=$SERIAL PREFIX=$PREFIX CAPREFIX=$CAPREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
+echo SERIAL=$SERIAL PREFIX=$PREFIX CAPREFIX=$CAPREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
if [ "$DHP." = YES. ] ; then
echo "openssl dhparam -2 -out $PREFIX-sv.dhp $KEYSIZE"
fi
echo "openssl rsa -in $PREFIX-sv.key -out $PREFIX-sv.key"
-$OPENSSL rsa -in $PREFIX-sv.key -out $PREFIX-sv.key -passin pass:secret
+$OPENSSL rsa -in $PREFIX-sv.key -out $PREFIX-sv.key -passin pass:secret
echo pseudo secrets generated
read
echo "$OPENSSL pkcs12 -export -des3 -out $PREFIX-sv.p12 -caname $CAPREFIX -name $PREFIX -inkey $PREFIX-sv.key -in $PREFIX-sv.crt -certfile $CAPREFIX-ca.crt "
- $OPENSSL pkcs12 -export -des3 -out $PREFIX-sv.p12 -caname $CAPREFIX -name $PREFIX -inkey $PREFIX-sv.key -in $PREFIX-sv.crt -certfile $CAPREFIX-ca.crt
+ $OPENSSL pkcs12 -export -des3 -out $PREFIX-sv.p12 -caname $CAPREFIX -name $PREFIX -inkey $PREFIX-sv.key -in $PREFIX-sv.crt -certfile $CAPREFIX-ca.crt
read
fi
$OPENSSL x509 -noout -text -hash -in $PREFIX-sv.crt -nameopt multiline
echo "openssl x509 -in $PREFIX-sv.crt -outform der -out $PREFIX-sv.der "
-$OPENSSL x509 -in $PREFIX-sv.crt -outform der -out $PREFIX-sv.der
+$OPENSSL x509 -in $PREFIX-sv.crt -outform der -out $PREFIX-sv.der
read
# all together now
touch $PREFIX-sv.dhp
cat $PREFIX-sv.prm $PREFIX-sv.key $PREFIX-sv.crt $PREFIX-sv.dhp >$PREFIX-sv.pem
-chmod o-r $PREFIX-sv.prm
+chmod o-r $PREFIX-sv.prm
echo "$PREFIX-sv.pem done"
-
+
'NLST' => \&NLST_ftp,
'PASV' => \&PASV_ftp,
'EPSV' => \&PASV_ftp,
- 'RETR' => \&RETR_ftp,
+ 'RETR' => \&RETR_ftp,
'SIZE' => \&SIZE_ftp,
'REST' => \&REST_ftp,
'STOR' => \&STOR_ftp,
}
################
-################ SMTP commands
+################ SMTP commands
################
# what set by "RCPT"
}
sysread \*SFREAD, $line, $size;
-
+
$ulsize += $size;
print FILE $line if(!$nosave);
}
################
-################ IMAP commands
+################ IMAP commands
################
# global to allow the command functions to read it
}
sendcontrol "$cmdid OK FETCH completed\r\n";
-
+
return 0;
}
################
-################ POP3 commands
+################ POP3 commands
################
sub RETR_pop3 {
# end with the magic 5-byte end of mail marker
sendcontrol "\r\n.\r\n";
-
+
return 0;
}
################
-################ FTP commands
+################ FTP commands
################
my $rest=0;
sub REST_ftp {
my %hash = getpartattr("reply", "data$testpart");
if($size || $hash{'sendzero'}) {
-
+
if($rest) {
# move read pointer forward
$size -= $rest;
}
sysread DREAD, $line, $size;
-
+
#print STDERR " GOT: $size bytes\n";
$ulsize += $size;
# Find out what port we listen on
my $i;
print DWRITE "PORT\n";
-
+
# READ the response code
sysread_or_die(\*DREAD, \$i, 5);
if($i =~ /^([0-9a-fA-F]{4})\n/) {
$size = hex($1);
}
-
+
# READ the response data
sysread_or_die(\*DREAD, \$i, $size);
-
+
# The data is in the format
# IPvX/NNN
while(1) {
#
# We read 'sockfilt' commands.
- #
+ #
my $input;
logmsg "Awaiting input\n";
$| = 1;
killsockfilters($proto, $ipvnum, $idnum, $verbose, 'data');
-
+
&customize(); # read test control instructions
sendcontrol @welcome;
# data
sysread SFREAD, $_, $size;
-
+
ftpmsg $_;
-
+
# Remove trailing CRLF.
s/[\n\r]+$//;
$FTPCMD=$1;
$FTPARG=$2;
}
-
+
logmsg "< \"$full\"\n";
if($verbose) {
logmsg "$FTPCMD wasn't handled!\n";
sendcontrol "500 $FTPCMD is not dealt with!\r\n";
}
-
+
} # while(1)
logmsg "====> Client disconnected\n";
my $file1="$logdir/check-generated";
my $file2="$logdir/check-expected";
-
+
open(TEMP, ">$file1");
for(@$firstref) {
print TEMP $_;
set_target_properties(${TEST_NAME}
PROPERTIES PROJECT_LABEL "${TARGET_LABEL_PREFIX}${TEST_NAME}")
- # Add the postfix to the executable since it is
+ # Add the postfix to the executable since it is
# not added automatically as for modules and shared libraries
- set_target_properties(${TEST_NAME}
+ set_target_properties(${TEST_NAME}
PROPERTIES DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
if(MSVC)
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
-I$(top_builddir)/include \
-I$(top_srcdir)/include \
-I$(top_builddir)/lib \
- -I$(top_srcdir)/lib
+ -I$(top_srcdir)/lib
endif
EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \
while (running) {
res = (int)curl_multi_perform(m, &running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
do {
ret = curl_multi_perform(multi, &still_running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
timeout.tv_sec = 1;
timeout.tv_usec = 0;
- if (tutil_tvdiff(tutil_tvnow(), ml_start) >
+ if (tutil_tvdiff(tutil_tvnow(), ml_start) >
MAIN_LOOP_HANG_TIMEOUT) {
ml_timedout = TRUE;
break;
mp_start = tutil_tvnow();
do {
ret = curl_multi_perform(multi, &still_running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
/*
* verify that soft limit is higher than NUM_NEEDED,
- * which is the number of file descriptors we would
+ * which is the number of file descriptors we would
* try to open plus SAFETY_MARGIN to not exhaust the
* file descriptor pool
*/
/* create a bunch of file descriptors */
- for (num_open.rlim_cur = 1;
- num_open.rlim_cur < num_open.rlim_max;
+ for (num_open.rlim_cur = 1;
+ num_open.rlim_cur < num_open.rlim_max;
num_open.rlim_cur++) {
fd[num_open.rlim_cur] = dup(fd[0]);
return TEST_ERR_MAJOR_BAD;
}
- /* run the test with the bunch of open file descriptors
+ /* run the test with the bunch of open file descriptors
and close them all once the test is over */
if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
interval.tv_sec = 1;
interval.tv_usec = 0;
- if (tutil_tvdiff(tutil_tvnow(), ml_start) >
+ if (tutil_tvdiff(tutil_tvnow(), ml_start) >
MAIN_LOOP_HANG_TIMEOUT) {
ml_timedout = TRUE;
break;
while (res == CURLM_CALL_MULTI_PERFORM) {
res = (int)curl_multi_perform(m, &running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
interval.tv_sec = 1;
interval.tv_usec = 0;
- if (tutil_tvdiff(tutil_tvnow(), ml_start) >
+ if (tutil_tvdiff(tutil_tvnow(), ml_start) >
MAIN_LOOP_HANG_TIMEOUT) {
ml_timedout = TRUE;
break;
while (res == CURLM_CALL_MULTI_PERFORM) {
res = (int)curl_multi_perform(m, &running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
interval.tv_sec = 1;
interval.tv_usec = 0;
- if (tutil_tvdiff(tutil_tvnow(), ml_start) >
+ if (tutil_tvdiff(tutil_tvnow(), ml_start) >
MAIN_LOOP_HANG_TIMEOUT) {
ml_timedout = TRUE;
break;
while (res == CURLM_CALL_MULTI_PERFORM) {
res = (int)curl_multi_perform(m, &running);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
for (;;) {
code = curl_multi_perform(multi, &handles);
- if (tutil_tvdiff(tutil_tvnow(), mp_start) >
+ if (tutil_tvdiff(tutil_tvnow(), mp_start) >
MULTI_PERFORM_HANG_TIMEOUT) {
mp_timedout = TRUE;
break;
/*
* test 537 is all about testing libcurl functionality
* when the system has nearly exhausted the number of
- * available file descriptors. Test 537 will try to run
+ * available file descriptors. Test 537 will try to run
* with a very small number of file descriptors available.
* This implies that any file descriptor which is open
* when the test runs will have a number in the high range
/* create a bunch of file descriptors */
- for (num_open.rlim_cur = 1;
- num_open.rlim_cur < num_open.rlim_max;
+ for (num_open.rlim_cur = 1;
+ num_open.rlim_cur < num_open.rlim_max;
num_open.rlim_cur++) {
fd[num_open.rlim_cur] = dup(fd[0]);
return TEST_ERR_MAJOR_BAD;
}
- /* run the test with the bunch of open file descriptors
+ /* run the test with the bunch of open file descriptors
and close them all once the test is over */
if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
if(!res) {
/* we are connected, now get a HTTP document the raw way */
- const char *request =
+ const char *request =
#ifdef CURL_DOES_CONVERSIONS
/* ASCII representation with escape sequences for non-ASCII platforms */
"\x47\x45\x54\x20\x2f\x35\x35\x36\x20\x48\x54\x54\x50\x2f\x31\x2e"
CURL *easyh = NULL;
struct curl_hash *hp = NULL;
int result = 0;
-
+
if(!strcmp(URL, "check")) {
/* test harness script verifying if this test can run */
return 0; /* sure, run this! */
#!/usr/bin/env perl
# Determine if curl-config --protocols/--features matches the
# curl --version protocols/features
-if ( $#ARGV != 2 )
+if ( $#ARGV != 2 )
{
print "Usage: $0 curl-config-script curl-version-output-file features|protocols\n";
exit 3;
#!/usr/bin/env perl
# Determine if curl-config --version matches the curl --version
-if ( $#ARGV != 2 )
+if ( $#ARGV != 2 )
{
print "Usage: $0 curl-config-script curl-version-output-file version|vernum\n";
exit 3;
#!/usr/bin/env perl
# Determine if the given curl executable supports the 'openssl' SSL engine
-if ( $#ARGV != 0 )
+if ( $#ARGV != 0 )
{
print "Usage: $0 curl-executable\n";
exit 3;
#!/usr/bin/env perl
# Perform simple file and directory manipulation in a portable way
-if ( $#ARGV <= 0 )
+if ( $#ARGV <= 0 )
{
print "Usage: $0 mkdir|rmdir|rm|move|gone path1 [path2] [more commands...]\n";
exit 1;
# Prepare a directory with known files and clean up afterwards
use Time::Local;
-if ( $#ARGV < 1 )
+if ( $#ARGV < 1 )
{
print "Usage: $0 prepare|postprocess dir [logfile]\n";
exit 1;
#!/usr/bin/env perl
# Check that the length of a given URL is correct
-if ( $#ARGV != 1 )
+if ( $#ARGV != 1 )
{
print "Usage: $0 string length\n";
exit 3;
newtotal($totalmem);
$reallocs++;
-
+
$getmem{$oldaddr}="";
$getmem{$newaddr}="$source:$linenum";
}
$totalmem += $size;
if($trace) {
- printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n",
+ printf("STRDUP: $size bytes at %s, makes totally: %d bytes\n",
$getmem{$addr}, $totalmem);
}
}
else {
print "Not recognized input line: $function\n";
- }
+ }
}
# FD url.c:1282 socket() = 5
elsif($_ =~ /^FD ([^ ]*):(\d*) (.*)/) {
printf("FREEADDRINFO ($source:$linenum)\n");
}
}
-
+
}
else {
print "Not recognized prefix line: $line\n";
###########################################################################
# Experimental hooks are available to run tests remotely on machines that
-# are able to run curl but are unable to run the test harness.
+# are able to run curl but are unable to run the test harness.
# The following sections need to be modified:
#
# $HOSTIP, $HOST6IP - Set to the address of the host running the test suite
exit;
}
shift @ARGV;
-}
+}
if(@testthis && ($testthis[0] ne "")) {
$TESTCASES=join(" ", @testthis);
)
if(CURL_USE_ARES)
include_directories(${CARES_INCLUDE_DIR})
- endif()
- # resolve test needs this
+ endif()
+ # resolve test needs this
setup_curl_dependencies(${TEST_NAME})
#TARGET_LINK_LIBRARIES( ${TEST_NAME} libcurl )
# files on Win32 targets it is necessary to build the test servers
# with CURL_STATICLIB defined, independently of how libcurl is built.
if(NOT CURL_STATICLIB)
- set_target_properties(${TEST_NAME} PROPERTIES
+ set_target_properties(${TEST_NAME} PROPERTIES
COMPILE_DEFINITIONS CURL_STATICLIB) # ${UPPER_TEST_NAME}
endif()
- set_target_properties(${TEST_NAME} PROPERTIES
+ set_target_properties(${TEST_NAME} PROPERTIES
PROJECT_LABEL "${TARGET_LABEL_PREFIX}${TEST_NAME}")
- # Add the postfix to the executable since it is not added
+ # Add the postfix to the executable since it is not added
# automatically as for modules and shared libraries
set_target_properties(${TEST_NAME} PROPERTIES
DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
endfunction()
-transform_makefile_inc("Makefile.inc"
+transform_makefile_inc("Makefile.inc"
"${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
opts1="--configure=--enable-debug"
opts2="--configure=--enable-ipv6"
-# run first test
+# run first test
$testprog $opts1 | $mail
# run second test
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# us use OpenSSL. OpenSSL produces numerous valgrind
# errors of this kind, rendering it impossible for us to
# detect (valid) reports on actual curl or libcurl code.
-
+
if(!$sslenabled) {
$uninitedvar = 1;
$error++;