summaryrefslogtreecommitdiff
path: root/Build/source/libs/curl/docs
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/curl/docs')
-rw-r--r--Build/source/libs/curl/docs/BUGS63
-rw-r--r--Build/source/libs/curl/docs/CONTRIBUTE113
-rw-r--r--Build/source/libs/curl/docs/FAQ669
-rw-r--r--Build/source/libs/curl/docs/FEATURES94
-rw-r--r--Build/source/libs/curl/docs/INSTALL466
-rw-r--r--Build/source/libs/curl/docs/INTERNALS381
-rw-r--r--Build/source/libs/curl/docs/KNOWN_BUGS14
-rw-r--r--Build/source/libs/curl/docs/MANUAL818
-rw-r--r--Build/source/libs/curl/docs/Makefile.am32
-rw-r--r--Build/source/libs/curl/docs/Makefile.in430
-rw-r--r--Build/source/libs/curl/docs/README.win3222
-rw-r--r--Build/source/libs/curl/docs/RESOURCES125
-rw-r--r--Build/source/libs/curl/docs/THANKS81
-rw-r--r--Build/source/libs/curl/docs/TODO204
-rw-r--r--Build/source/libs/curl/docs/TheArtOfHttpScripting378
-rw-r--r--Build/source/libs/curl/docs/VERSIONS64
-rw-r--r--Build/source/libs/curl/docs/curl-config.162
-rw-r--r--Build/source/libs/curl/docs/curl-config.html128
-rw-r--r--Build/source/libs/curl/docs/curl.1820
-rw-r--r--Build/source/libs/curl/docs/curl.html1082
-rw-r--r--Build/source/libs/curl/docs/examples/Makefile.am13
-rw-r--r--Build/source/libs/curl/docs/examples/Makefile.example42
-rw-r--r--Build/source/libs/curl/docs/examples/Makefile.in236
-rw-r--r--Build/source/libs/curl/docs/examples/README22
-rw-r--r--Build/source/libs/curl/docs/examples/curlgtk.c95
-rw-r--r--Build/source/libs/curl/docs/examples/ftpget.c83
-rw-r--r--Build/source/libs/curl/docs/examples/ftpgetresp.c61
-rw-r--r--Build/source/libs/curl/docs/examples/ftpupload.c88
-rw-r--r--Build/source/libs/curl/docs/examples/getinmemory.c80
-rw-r--r--Build/source/libs/curl/docs/examples/http-post.c35
-rw-r--r--Build/source/libs/curl/docs/examples/httpput.c100
-rw-r--r--Build/source/libs/curl/docs/examples/multithread.c70
-rw-r--r--Build/source/libs/curl/docs/examples/persistant.c53
-rw-r--r--Build/source/libs/curl/docs/examples/postit2.c92
-rw-r--r--Build/source/libs/curl/docs/examples/sepheaders.c76
-rw-r--r--Build/source/libs/curl/docs/examples/simple.c28
-rw-r--r--Build/source/libs/curl/docs/examples/simplessl.c118
-rw-r--r--Build/source/libs/curl/docs/examples/win32sockets.c49
-rw-r--r--Build/source/libs/curl/docs/libcurl/Makefile.am68
-rw-r--r--Build/source/libs/curl/docs/libcurl/Makefile.in347
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.325
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.337
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.3114
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.html182
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_init.325
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_init.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_perform.346
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_perform.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_setopt.3627
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_easy_setopt.html810
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_escape.326
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_escape.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formadd.3165
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formadd.html234
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formfree.327
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formfree.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formparse.318
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_formparse.html70
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_getdate.380
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_getdate.html132
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_getenv.332
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_getenv.html78
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_global_cleanup.327
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_global_cleanup.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_global_init.349
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_global_init.html130
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_mprintf.388
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_mprintf.html126
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_slist_append.329
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_slist_append.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_slist_free_all.322
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_slist_free_all.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_strequal.330
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_strequal.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_strnequal.31
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_strnequal.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_unescape.327
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_unescape.html74
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_version.327
-rw-r--r--Build/source/libs/curl/docs/libcurl/curl_version.html76
-rw-r--r--Build/source/libs/curl/docs/libcurl/index.html38
-rw-r--r--Build/source/libs/curl/docs/libcurl/libcurl.3132
-rw-r--r--Build/source/libs/curl/docs/libcurl/libcurl.html185
85 files changed, 12417 insertions, 0 deletions
diff --git a/Build/source/libs/curl/docs/BUGS b/Build/source/libs/curl/docs/BUGS
new file mode 100644
index 00000000000..c4f52cf72bf
--- /dev/null
+++ b/Build/source/libs/curl/docs/BUGS
@@ -0,0 +1,63 @@
+$Id: BUGS,v 1.4 2002/01/10 07:38:53 bagder Exp $
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+BUGS
+
+ Curl and libcurl have grown substantially since the beginning. At the time
+ of writing (mid March 2001), there are 23000 lines of source code, and by
+ the time you read this it has probably grown even more.
+
+ Of course there are lots of bugs left. And lots of misfeatures.
+
+ To help us make curl the stable and solid product we want it to be, we need
+ bug reports and bug fixes. If you can't fix a bug yourself and submit a fix
+ for it, try to report an as detailed report as possible to the curl mailing
+ list to allow one of us to have a go at a solution. You should also post
+ your bug/problem at curl's bug tracking system over at
+
+ http://sourceforge.net/bugs/?group_id=976
+
+ When reporting a bug, you should include information that will help us
+ understand what's wrong, what you expected to happen and how to repeat the
+ bad behavior. You therefore need to supply your operating system's name and
+ version number (uname -a under a unix is fine), what version of curl you're
+ using (curl -V is fine), what URL you were working with and anything else
+ you think matters.
+
+ Since curl deals with networks, it often helps us a lot if you include a
+ protocol debug dump with your bug report. The output you get by using the -v
+ flag. Usually, you also get more info by using -i so that is likely to be
+ useful when reporting bugs as well.
+
+ If curl crashed, causing a core dump (in unix), there is hardly any use to
+ send that huge file to anyone of us. Unless we have an exact same system
+ setup as you, we can't do much with it. What we instead ask of you is to get
+ a stack trace and send that (much smaller) output to us instead!
+
+ The address and how to subscribe to the mailing list is detailed in the
+ MANUAL file.
+
+HOW TO GET A STACK TRACE
+
+ First, you must make sure that you compile all sources with -g and that you
+ don't 'strip' the final executable. Try to avoid optimizing the code as
+ well, remove -O, -O2 etc from the compiler options.
+
+ Run the program until it dumps core.
+
+ Run your debugger on the core file, like '<debugger> curl core'. <debugger>
+ should be replaced with the name of your debugger, in most cases that will
+ be 'gdb', but 'dbx' and others also occur.
+
+ When the debugger has finished loading the core file and presents you a
+ prompt, enter 'where' (without the quotes) and press return.
+
+ The list that is presented is the stack trace. If everything worked, it is
+ supposed to contain the chain of functions that were called when curl
+ crashed. Include the stack trace with your detailed bug report. It'll help a
+ lot.
+
diff --git a/Build/source/libs/curl/docs/CONTRIBUTE b/Build/source/libs/curl/docs/CONTRIBUTE
new file mode 100644
index 00000000000..242927a7b0d
--- /dev/null
+++ b/Build/source/libs/curl/docs/CONTRIBUTE
@@ -0,0 +1,113 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+To Think About When Contributing Source Code
+
+ This document is intended to offer some guidelines that can be useful to keep
+ in mind when you decide to write a contribution to the project. This concerns
+ new features as well as corrections to existing flaws or bugs.
+
+Join the Community
+
+ Skip over to http://curl.haxx.se/mail/ and join the appropriate mailing
+ list(s). Read up on details before you post questions. Read this file before
+ you start sending patches!
+
+The License Issue
+
+ When contributing with code, you agree to put your changes and new code under
+ the same license curl and libcurl is already using unless stated otherwise.
+
+ If you add a larger piece of code, you can opt to make that file or set of
+ files to use a different license as long as they don't enforce any changes to
+ the rest of the package and they make sense. Such "separate parts" can not be
+ GPL (as we don't want the GPL virus to attack users of libcurl) but they must
+ use "GPL compatible" licenses.
+
+What To Read
+
+ Source code, the man pages, the INTERALS document, the TODO, the most recent
+ CHANGES. Just lurking on the libcurl mailing list is gonna give you a lot of
+ insights on what's going on right now.
+
+Naming
+
+ Try using a non-confusing naming scheme for your new functions and variable
+ names. It doesn't necessarily have to mean that you should use the same as in
+ other places of the code, just that the names should be logical,
+ understandable and be named according to what they're used for. File-local
+ functions should be made static.
+
+Indenting
+
+ Please try using the same indenting levels and bracing method as all the
+ other code already does. It makes the source code a lot easier to follow if
+ all of it is written using the same style. We don't ask you to like it, we
+ just ask you to follow the tradition! ;-)
+
+Commenting
+
+ Comment your source code extensively. Commented code is quality code and
+ enables future modifications much more. Uncommented code much more risk being
+ completely replaced when someone wants to extend things, since other persons'
+ source code can get quite hard to read.
+
+General Style
+
+ Keep your functions small. If they're small you avoid a lot of mistakes and
+ you don't accidentally mix up variables.
+
+Non-clobbering All Over
+
+ When you write new functionality or fix bugs, it is important that you don't
+ fiddle all over the source files and functions. Remember that it is likely
+ that other people have done changes in the same source files as you have and
+ possibly even in the same functions. If you bring completely new
+ functionality, try writing it in a new source file. If you fix bugs, try to
+ fix one bug at a time and send them as separate patches.
+
+Separate Patches Doing Different Things
+
+ It is annoying when you get a huge patch from someone that is said to fix 511
+ odd problems, but discussions and opinions don't agree with 510 of them - or
+ 509 of them were already fixed in a different way. Then the patcher needs to
+ extract the single interesting patch from somewhere within the huge pile of
+ source, and that gives a lot of extra work. Preferably, all fixes that
+ correct different problems should be in their own patch with an attached
+ description exactly what they correct so that all patches can be selectively
+ applied by the maintainer or other interested parties.
+
+Patch Against Recent Sources
+
+ Please try to get the latest available sources to make your patches
+ against. It makes the life of the developers so much easier. The very best is
+ if you get the most up-to-date sources from the CVS repository, but the
+ latest release archive is quite OK as well!
+
+Document
+
+ Writing docs is dead boring and one of the big problems with many open source
+ projects. Someone's gotta do it. It makes it a lot easier if you submit a
+ small description of your fix or your new features with every contribution so
+ that it can be swiftly added to the package documentation.
+
+Write Access to CVS Repository
+
+ If you are a frequent contributor, or have another good reason, you can of
+ course get write access to the CVS repository and then you'll be able to
+ check-in all your changes straight into the CVS tree instead of sending all
+ changes by mail as patches. Just ask if this is what you'd want. You will be
+ required to have posted a few quality patches first, before you can be
+ granted write access.
+
+Test Cases
+
+ Since the introduction of the test suite, we can quickly verify that the main
+ features are working as they're supposed to. To maintain this situation and
+ improve it, all new features and functions that are added need to be tested
+ in the test suite. Every feature that is added should get at least one valid
+ test case that verifies that it works as documented. If every submitter also
+ post a few test cases, it won't end up as a heavy burden on a single person!
diff --git a/Build/source/libs/curl/docs/FAQ b/Build/source/libs/curl/docs/FAQ
new file mode 100644
index 00000000000..dce534f2e41
--- /dev/null
+++ b/Build/source/libs/curl/docs/FAQ
@@ -0,0 +1,669 @@
+Updated: January 22, 2002 (http://curl.haxx.se/docs/faq.shtml)
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+FAQ
+
+ 1. Philosophy
+ 1.1 What is cURL?
+ 1.2 What is libcurl?
+ 1.3 What is cURL not?
+ 1.4 When will you make curl do XXXX ?
+ 1.5 Who makes cURL?
+ 1.6 What do you get for making cURL?
+ 1.7 What about CURL from curl.com?
+
+ 2. Install Related Problems
+ 2.1 configure doesn't find OpenSSL even when it is installed
+ 2.1.1. native linker doesn't find openssl
+ 2.1.2. only the libssl lib is missing
+ 2.2 Does curl work/build with other SSL libraries?
+ 2.3 Where can I find a copy of LIBEAY32.DLL?
+ 2.4 Does cURL support Socks (RFC 1928) ?
+
+ 3. Usage Problems
+ 3.1 curl: (1) SSL is disabled, https: not supported
+ 3.2 How do I tell curl to resume a transfer?
+ 3.3 Why doesn't my posting using -F work?
+ 3.4 How do I tell curl to run custom FTP commands?
+ 3.5 How can I disable the Pragma: nocache header?
+ 3.6 Does curl support javascript, ASP, XML, XHTML or HTML version Y?
+ 3.7 Can I use curl to delete/rename a file through FTP?
+ 3.8 How do I tell curl to follow HTTP redirects?
+ 3.9 How do I use curl in my favourite programming language?
+ 3.10 What about SOAP, WebDAV, XML-RPC or similar protocols over HTTP?
+ 3.11 How do I POST with a different Content-Type?
+ 3.12 Why do FTP specific features over HTTP proxy fail?
+
+ 4. Running Problems
+ 4.1 Problems connecting to SSL servers.
+ 4.2 Why do I get problems when I use & or % in the URL?
+ 4.3 How can I use {, }, [ or ] to specify multiple URLs?
+ 4.4 Why do I get downloaded data even though the web page doesn't exist?
+ 4.5 Why do I get return code XXX from a HTTP server?
+ 4.5.1 "400 Bad Request"
+ 4.5.2 "401 Unauthorized"
+ 4.5.3 "403 Forbidden"
+ 4.5.4 "404 Not Found"
+ 4.5.5 "405 Method Not Allowed"
+ 4.5.6 "301 Moved Permanently"
+ 4.6 Can you tell me what error code 142 means?
+ 4.7 How do I keep user names and passwords secret in Curl command lines?
+ 4.8 I found a bug!
+ 4.9 Curl can't authenticate to the server that requires NTLM?
+
+ 5. libcurl Issues
+ 5.1 Is libcurl thread-safe?
+ 5.2 How can I receive all data into a large memory chunk?
+ 5.3 How do I fetch multiple files with libcurl?
+ 5.4 Does libcurl do Winsock initing on win32 systems?
+ 5.5 Does CURLOPT_FILE and CURLOPT_INFILE work on win32 ?
+ 5.6 What about Keep-Alive or persistent connections?
+
+ 6. License Issues
+ 6.1 I have a GPL program, can I use the libcurl library?
+ 6.2 I have a closed-source program, can I use the libcurl library?
+ 6.3 I have a BSD licensed program, can I use the libcurl library?
+ 6.4 I have a program that uses LGPL libraries, can I use libcurl?
+ 6.5 Can I modify curl/libcurl for my program and keep the changes secret?
+ 6.6 Can you please change the curl/libcurl license to XXXX?
+
+==============================================================================
+
+1. Philosophy
+
+ 1.1 What is cURL?
+
+ cURL (or simply just 'curl') is a command line tool for getting or sending
+ files using URL syntax. The name is a play on 'Client for URLs', originally
+ with URL spelled in uppercase to make it obvious it deals with URLs. The
+ fact it can also be pronounced 'see URL' also helped.
+
+ Curl supports a range of common Internet protocols, currently including
+ HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and FILE.
+
+ We spell it cURL or just curl. We pronounce it with an initial k sound:
+ [kurl].
+
+ 1.2 What is libcurl?
+
+ libcurl is a reliable and portable library which provides you with an easy
+ interface to a range of common Internet protocols.
+
+ You can use libcurl for free in your application even if it is commercial
+ or closed-source.
+
+ 1.3 What is cURL not?
+
+ Curl is *not* a wget clone even though that is a very common misconception.
+ Never, during curl's development, have we intended curl to replace wget or
+ compete on its market. Curl is targeted at single-shot file transfers.
+
+ Curl is not a web site mirroring program. If you wanna use curl to mirror
+ something: fine, go ahead and write a script that wraps around curl to make
+ it reality (like curlmirror.pl does).
+
+ Curl is not an FTP site mirroring program. Sure, get and send FTP with curl
+ but if you want systematic and sequential behavior you should write a
+ script (or write a new program that interfaces libcurl) and do it.
+
+ Curl is not a PHP tool, even though it works perfectly well when used from
+ or with PHP.
+
+ Curl is not a single-OS program. Curl exists, compiles, builds and runs
+ under a wide range of operating systems, including all modern Unixes (and a
+ bunch of older ones too), Windows, Amiga, BeOS, OS/2, OS X, QNX etc.
+
+ 1.4 When will you make curl do XXXX ?
+
+ We love suggestions of what to change in order to make curl and libcurl
+ better. We do however believe in a few rules when it comes to the future of
+ curl:
+
+ * Curl is to remain a command line tool. If you want GUIs or fancy scripting
+ capabilities, you're free to write another tool that uses libcurl and that
+ offers this. There's no point in having a single tool that does every
+ imaginable thing. That's also one of the great advantages of having the
+ core of curl as a library.
+
+ * We do not add things to curl that other small and available tools already
+ do very fine at the side. Curl's output is fine to pipe into another
+ program or redirect to another file for the next program to interpret.
+
+ * We focus on protocol related issues and improvements. If you wanna do more
+ magic with the supported protocols than curl currently does, chances are
+ big we will agree. If you wanna add more protocols, we may very well
+ agree.
+
+ * If you want someone else to make all the work while you wait for us to
+ implement it for you, that is not a very friendly attitude. We spend a
+ considerable time already on maintaining and developing curl. In order to
+ get more out of us, you should consider trading in some of your time and
+ efforts in return.
+
+ * If you write the code, chances are bigger that it will get into curl
+ faster.
+
+ 1.5 Who makes cURL?
+
+ cURL and libcurl are not made by any single individual. Sure, Daniel
+ Stenberg writes the major parts, but various people's submissions are
+ important and crucial. Anyone can post their changes and improvements and
+ have them inserted in the main sources (of course on the condition that
+ developers agree on that the fixes are good).
+
+ The list of contributors in the docs/THANKS file is only a small part of all
+ the people that every day provide us with bug reports, suggestions, ideas
+ and source code.
+
+ curl is developed by a community, with Daniel at the wheel.
+
+ 1.6 What do you get for making cURL?
+
+ Project cURL is entirely free and open. No person gets paid in any way for
+ developing curl. We all do this voluntarily on our spare time.
+
+ We get some help from companies. Contactor Data hosts the curl web site and
+ the main mailing list, Haxx owns the curl web site's domain and
+ sourceforge.net hosts several project tools we take advantage from like the
+ bug tracker, mailing lists and more.
+
+ If you want to support our project with a donation or similar, one way of
+ doing that would be to buy "gift certificates" at useful online shopping
+ sites, such as amazon.com or thinkgeek.com. Another way would be to sponsor
+ us through a banner-program or by simply helping us coding, documenting,
+ testing etc.
+
+ 1.7 What about CURL from curl.com?
+
+ During the summer 2001, curl.com has been busy advertising their client-side
+ programming language for the web, named CURL.
+
+ We are in no way associated with curl.com or their CURL programming
+ language.
+
+ Our project name curl has been in effective use since 1998. We were not the
+ first computer related project to use the name "curl" and do not claim any
+ first-hand rights to the name.
+
+ We recognize that we will be living in parallel with curl.com and wish them
+ every success.
+
+2. Install Related Problems
+
+ 2.1. configure doesn't find OpenSSL even when it is installed
+
+ This may be because of several reasons.
+
+ 2.1.1. native linker doesn't find openssl
+
+ Affected platforms:
+ Solaris (native cc compiler)
+ HPUX (native cc compiler)
+ SGI IRIX (native cc compiler)
+ SCO UNIX (native cc compiler)
+
+ When configuring curl, I specify --with-ssl. OpenSSL is installed in
+ /usr/local/ssl Configure reports SSL in /usr/local/ssl, but fails to find
+ CRYPTO_lock in -lcrypto
+
+ Cause: The cc for this test places the -L/usr/local/ssl/lib AFTER
+ -lcrypto, so ld can't find the library. This is due to a bug in the GNU
+ autoconf tool.
+
+ Workaround: Specifying "LDFLAGS=-L/usr/local/ssl/lib" in front of
+ ./configure places the -L/usr/local/ssl/lib early enough in the command
+ line to make things work
+
+ Solution submitted by: Bob Allison <allisonb@users.sourceforge.net>
+
+ 2.1.2. only the libssl lib is missing
+
+ If all include files and the libcrypto lib is present, with only the
+ libssl being missing according to configure, this is mostly likely because
+ a few functions are left out from the libssl.
+
+ If the function names missing include RSA or RSAREF you can be certain
+ that this is because libssl requires the RSA and RSAREF libs to build.
+
+ See the INSTALL file section that explains how to add those libs to
+ configure. Make sure that you remove the config.cache file before you
+ rerun configure with the new flags.
+
+ 2.2. Does curl work/build with other SSL libraries?
+
+ Curl has been written to use OpenSSL, although there should not be much
+ problems using a different library. If anyone does "port" curl to use a
+ different SSL library, we are of course very interested in getting the
+ patch!
+
+ 2.3. Where can I find a copy of LIBEAY32.DLL?
+
+ That is an OpenSSL binary built for Windows.
+
+ Curl uses OpenSSL to do the SSL stuff. The LIBEAY32.DLL is what curl needs
+ on a windows machine to do https://. Check out the curl web site to find
+ accurate and up-to-date pointers to recent OpenSSL DLLs and other binary
+ packages.
+
+ 2.4. Does cURL support Socks (RFC 1928) ?
+
+ No. Nobody has wanted it that badly yet. We appreciate patches that bring
+ this functionality.
+
+
+3. Usage problems
+
+ 3.1. curl: (1) SSL is disabled, https: not supported
+
+ If you get this output when trying to get anything from a https:// server,
+ it means that the configure script couldn't find all libs and include files
+ it requires for SSL to work. If the configure script fails to find them,
+ curl is simply built without SSL support.
+
+ To get the https:// support into a curl that was previously built but that
+ reports that https:// is not supported, you should dig through the document
+ and logs and check out why the configure script doesn't find the SSL libs
+ and/or include files.
+
+ Also, check out the other paragraph in this FAQ labeled "configure doesn't
+ find OpenSSL even when it is installed".
+
+ 3.2. How do I tell curl to resume a transfer?
+
+ Curl supports resumed transfers both ways on both FTP and HTTP.
+
+ Try the -C option.
+
+ 3.3. Why doesn't my posting using -F work?
+
+ You can't simply use -F or -d at your choice. The web server that will
+ receive your post assumes one of the formats. If the form you're trying to
+ "fake" sets the type to 'multipart/form-data', then and only then you must
+ use the -F type. In all the most common cases, you should use -d which then
+ causes a posting with the type 'application/x-www-form-urlencoded'.
+
+ This is described in some detail in the MANUAL and TheArtOfHttpScripting
+ documents, and if you don't understand it the first time, read it again
+ before you post questions about this to the mailing list. Also, try reading
+ through the mailing list archives for old postings and questions regarding
+ this.
+
+ 3.4. How do I tell curl to run custom FTP commands?
+
+ You can tell curl to perform optional commands both before and/or after a
+ file transfer. Study the -Q/--quote option.
+
+ Since curl is used for file transfers, you don't use curl to just perform
+ FTP commands without transferring anything. Therefore you must always specify
+ a URL to transfer to/from even when doing custom FTP commands.
+
+ 3.5. How can I disable the Pragma: nocache header?
+
+ You can change all internally generated headers by adding a replacement with
+ the -H/--header option. By adding a header with empty contents you safely
+ disable that one. Use -H "Pragma:" to disable that specific header.
+
+ 3.6. Does curl support javascript, ASP, XML, XHTML or HTML version Y?
+
+ To curl, all contents are alike. It doesn't matter how the page was
+ generated. It may be ASP, PHP, Perl, shell-script, SSI or plain
+ HTML-files. There's no difference to curl and it doesn't even know what kind
+ of language that generated the page.
+
+ Javascript is slightly different since that is code embedded in the HTML
+ that is sent for the client to interpret and curl has no javascript
+ interpreter.
+
+ 3.7. Can I use curl to delete/rename a file through FTP?
+
+ Yes. You specify custom FTP commands with -Q/--quote.
+
+ One example would be to delete a file after you have downloaded it:
+
+ curl -O ftp://download.com/coolfile -Q '-DELE coolfile'
+
+ 3.8 How do I tell curl to follow HTTP redirects?
+
+ Curl does not follow so-called redirects by default. The Location: header
+ that informs the client about this is only interpreted if you're using the
+ -L/--location option. As in:
+
+ curl -L http://redirector.com
+
+ 3.9 How do I use curl in my favourite programming language?
+
+ There exist many language interfaces/bindings for curl that integrates it
+ better with various languages. If you are fluid in a script language, you
+ may very well opt to use such an interface instead of using the command line
+ tool.
+
+ At the time of writing, there are bindings for the five language mentioned
+ above, but chances are there are even more by the time you read this. Or you
+ may be able you write your own wrapper for a not-yet supported language!
+
+ Find out more about which languages that support curl directly, and how to
+ install and use them, in the libcurl section of the curl web site:
+
+ http://curl.haxx.se/libcurl/
+
+ In December 2001, there are interfaces available for the following
+ languages: C/C++, Cocoa, Dylan, Java, Perl, PHP, Python, Rexx, Ruby, Scheme
+ and Tcl. By the time you read this, additional ones may have appeared!
+
+ 3.10 What about SOAP, WebDAV, XML-RPC or similar protocols over HTTP?
+
+ Curl adheres to the HTTP spec, which basically means you can play with *any*
+ protocol that is built on top of HTTP. Protocols such as SOAP, WEBDAV and
+ XML-RPC are all such ones. You can use -X to set custom requests and -H to
+ set custom headers (or replace internally generated ones).
+
+ Using libcurl or PHP's curl modules is just as fine and you'd just use the
+ proper library options to do the same.
+
+ 3.11 How do I POST with a different Content-Type?
+
+ You can always replace the internally generated headers with -H/--header.
+ To make a simple HTTP POST with text/xml as content-type, do something like:
+
+ curl -d "datatopost" -H "Content-Type: text/xml" [URL]
+
+ 3.12 Why do FTP specific features over HTTP proxy fail?
+
+ Because when you use a HTTP proxy, the protocol spoken on the network will
+ be HTTP, even if you specify a FTP URL. This effectively means that you
+ normally can't use FTP specific features such as ftp upload and ftp quote
+ etc.
+
+ There is one exception to this rule, and that is if you can "tunnel through"
+ the given HTTP proxy. Proxy tunneling is enabled with a special option (-p)
+ and is generally not available as proxy admins usually disable tunneling to
+ other ports than 443 (which is used for HTTPS access through proxies).
+
+4. Running Problems
+
+ 4.1. Problems connecting to SSL servers.
+
+ It took a very long time before we could sort out why curl had problems to
+ connect to certain SSL servers when using SSLeay or OpenSSL v0.9+. The
+ error sometimes showed up similar to:
+
+ 16570:error:1407D071:SSL routines:SSL2_READ:bad mac decode:s2_pkt.c:233:
+
+ It turned out to be because many older SSL servers don't deal with SSLv3
+ requests properly. To correct this problem, tell curl to select SSLv2 from
+ the command line (-2/--sslv2).
+
+ There has also been examples where the remote server didn't like the SSLv2
+ request and instead you had to force curl to use SSLv3 with -3/--sslv3.
+
+ 4.2. Why do I get problems when I use & or % in the URL?
+
+ In general unix shells, the & letter is treated special and when used, it
+ runs the specified command in the background. To safely send the & as a part
+ of a URL, you should quote the entire URL by using single (') or double (")
+ quotes around it.
+
+ An example that would invoke a remote CGI that uses &-letters could be:
+
+ curl 'http://www.altavista.com/cgi-bin/query?text=yes&q=curl'
+
+ In win32, the standard DOS shell treats the %-letter specially and you may
+ need to quote the string properly when % is used in it.
+
+ Also note that if you want the literal %-letter to be part of the data you
+ pass in a POST using -d/--data you must encode it as '%25'.
+
+ 4.3. How can I use {, }, [ or ] to specify multiple URLs?
+
+ Because those letters have a special meaning to the shell, and to be used in
+ a URL specified to curl you must quote them.
+
+ An example that downloads two URLs (sequentially) would do:
+
+ curl '{curl,www}.haxx.se'
+
+ To be able to use those letters as actual parts of the URL (without using
+ them for the curl URL "globbing" system), use the -g/--globoff option (curl
+ 7.6 and later):
+
+ curl -g 'www.site.com/weirdname[].html'
+
+ 4.4. Why do I get downloaded data even though the web page doesn't exist?
+
+ Curl asks remote servers for the page you specify. If the page doesn't exist
+ at the server, the HTTP protocol defines how the server should respond and
+ that means that headers and a "page" will be returned. That's simply how
+ HTTP works.
+
+ By using the --fail option you can tell curl explicitly to not get any data
+ if the HTTP return code doesn't say success.
+
+ 4.5 Why do I get return code XXX from a HTTP server?
+
+ RFC2616 clearly explains the return codes. This is a short transcript. Go
+ read the RFC for exact details:
+
+ 4.5.1 "400 Bad Request"
+
+ The request could not be understood by the server due to malformed
+ syntax. The client SHOULD NOT repeat the request without modifications.
+
+ 4.5.2 "401 Unauthorized"
+
+ The request requires user authentication.
+
+ 4.5.3 "403 Forbidden"
+
+ The server understood the request, but is refusing to fulfill it.
+ Authorization will not help and the request SHOULD NOT be repeated.
+
+ 4.5.4 "404 Not Found"
+
+ The server has not found anything matching the Request-URI. No indication
+ is given of whether the condition is temporary or permanent.
+
+ 4.5.5 "405 Method Not Allowed"
+
+ The method specified in the Request-Line is not allowed for the resource
+ identified by the Request-URI. The response MUST include an Allow header
+ containing a list of valid methods for the requested resource.
+
+ 4.5.6 "301 Moved Permanently"
+
+ If you get this return code and an HTML outpt similar to this:
+
+ <H1>Moved Permanently</H1> The document has moved <A
+ HREF="http://same_url_now_with_a_trailing_slash/">here</A>.
+
+ it might be because you request a directory URL but without the trailing
+ slash. Try the same operation again _with_ the trailing URL, or use the
+ -L/--location option to follow the redirection.
+
+ 4.6. Can you tell me what error code 142 means?
+
+ All error codes that are larger than the highest documented error code means
+ that curl has exited due to a crash. This is a serious error, and we
+ appreciate a detailed bug report from you that describes how we could go
+ ahead and repeat this!
+
+ 4.7. How do I keep user names and passwords secret in Curl command lines?
+
+ This problem has two sides:
+
+ The first part is to avoid having clear-text passwords in the command line
+ so that they don't appear in 'ps' outputs and similar. That is easily
+ avoided by using the "-K" option to tell curl to read parameters from a
+ file or stdin to which you can pass the secret info.
+
+ To keep the passwords in your account secret from the rest of the world is
+ not a task that curl addresses. You could of course encrypt them somehow to
+ at least hide them from being read by human eyes, but that is not what
+ anyone would call security.
+
+ Also note that regular HTTP and FTP passwords are sent in clear across the
+ network. All it takes for anyone to fetch them is to listen on the network.
+ Eavesdropping is very easy.
+
+ 4.8 I found a bug!
+
+ It is not a bug if the behavior is documented. Read the docs first.
+
+ If it is a problem with a binary you've downloaded or a package for your
+ particular platform, try contacting the person who built the package/archive
+ you have.
+
+ If there is a bug, post a bug report in the Curl Bug Track System over at
+ http://sourceforge.net/bugs/?group_id=976
+
+ Always include as many details you can think of, including curl version,
+ operating system name and version and complete instructions how to repeat
+ the bug.
+
+ 4.9. Curl can't authenticate to the server that requires NTLM?
+
+ NTLM is a Microsoft proprietary protocol. Unfortunately, curl does not
+ currently support that. Proprietary formats are evil. You should not use
+ such ones.
+
+5. libcurl Issues
+
+ 5.1. Is libcurl thread-safe?
+
+ Yes.
+
+ We have written the libcurl code specificly adjusted for multi-threaded
+ programs. libcurl will use thread-safe functions instead of non-safe ones if
+ your system has such.
+
+ We would appreciate some kind of report or README file from those who have
+ used libcurl in a threaded environment.
+
+ 5.2 How can I receive all data into a large memory chunk?
+
+ [ See also the examples/getinmemory.c source ]
+
+ You are in full control of the callback function that gets called every time
+ there is data received from the remote server. You can make that callback do
+ whatever you want. You do not have to write the received data to a file.
+
+ One solution to this problem could be to have a pointer to a struct that you
+ pass to the callback function. You set the pointer using the
+ curl_easy_setopt(CURLOPT_FILE) function. Then that pointer will be passed to
+ the callback instead of a FILE * to a file:
+
+ /* imaginary struct */
+ struct MemoryStruct {
+ char *memory;
+ size_t size;
+ };
+
+ /* imaginary callback function */
+ size_t
+ WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
+ {
+ register int realsize = size * nmemb;
+ struct MemoryStruct *mem = (struct MemoryStruct *)data;
+
+ mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1);
+ if (mem->memory) {
+ memcpy(&(mem->memory[mem->size]), ptr, realsize);
+ mem->size += realsize;
+ mem->memory[mem->size] = 0;
+ }
+ return realsize;
+ }
+
+ 5.3 How do I fetch multiple files with libcurl?
+
+ Starting with version 7.7, curl and libcurl will have excellent support for
+ transferring multiple files. You should just repeatedly set new URLs with
+ curl_easy_setopt() and then transfer it with curl_easy_perform(). The handle
+ you get from curl_easy_init() is not only reusable starting with libcurl
+ 7.7, but also you're encouraged to reuse it if you can, as that will enable
+ libcurl to use persistent connections.
+
+ For libcurl prior to 7.7, there was no multiple file support. The only
+ available way to do multiple requests was to init/perform/cleanup for each
+ transfer.
+
+ 5.4 Does libcurl do Winsock initialization on win32 systems?
+
+ Yes (since 7.8.1) if told to in the curl_global_init() call.
+
+ 5.5 Does CURLOPT_FILE and CURLOPT_INFILE work on win32 ?
+
+ Yes, but you cannot open a FILE * and pass the pointer to a DLL and have
+ that DLL use the FILE *. If you set CURLOPT_FILE you must also use
+ CURLOPT_WRITEFUNCTION as well to set a function that writes the file, even
+ if that simply writes the data to the specified FILE*. Similarly, if you use
+ CURLOPT_INFILE you must also specify CURLOPT_READFUNCTION.
+
+ (Provided by Joel DeYoung and Bob Schader)
+
+ 5.6 What about Keep-Alive or persistent connections?
+
+ Starting with version 7.7, curl and libcurl will have excellent support for
+ persistent connections when transferring several files from the same server.
+ Curl will attempt to reuse connections for all URLs specified on the same
+ command line/config file, and libcurl will reuse connections for all
+ transfers that are made using the same libcurl handle.
+
+ Previous versions had no persistent connection support.
+
+6. License Issues
+
+ Curl and libcurl are released under a MIT/X derivate license *or* the MPL,
+ the Mozilla Public License. To get a really good answer to your license
+ conflict questions, you should study the MPL and MIT/X licenses and the
+ license you are about to use and check for clashes yourself. This section is
+ just a brief summary for the cases we get the most questions. (Parts of this
+ section was much enhanced by Bjorn Reese.)
+
+ 6.1. I have a GPL program, can I use the libcurl library?
+
+ Yes!
+
+ Since libcurl may be distributed under the MIT/X derivate license, it can be
+ used together with GPL in any software.
+
+ 6.2. I have a closed-source program, can I use the libcurl library?
+
+ Yes!
+
+ libcurl does not put any restrictions on the program that uses the library.
+
+ 6.3. I have a BSD licensed program, can I use the libcurl library?
+
+ Yes!
+
+ libcurl does not put any restrictions on the program that uses the library.
+
+ 6.4. I have a program that uses LGPL libraries, can I use libcurl?
+
+ Yes!
+
+ The LGPL license doesn't clash with other licenses.
+
+ 6.5. Can I modify curl/libcurl for my program and keep the changes secret?
+
+ Yes!
+
+ The MIT/X derivate license practically allows you to do almost anything with
+ the sources, on the condition that the copyright texts in the sources are
+ left intact.
+
+ 6.6. Can you please change the curl/libcurl license to XXXX?
+
+ No.
+
+ We have carefully picked this license after years of development and
+ discussions and a large amount of people have contributed with source code
+ knowing that this is the license we use. This license puts the restrictions
+ we want on curl/libcurl and it does not spread to other programs or
+ libraries that use it. The recent dual license modification should make it
+ possible for everyone to use libcurl or curl in their projects, no matter
+ what license they already have in use.
diff --git a/Build/source/libs/curl/docs/FEATURES b/Build/source/libs/curl/docs/FEATURES
new file mode 100644
index 00000000000..2bdbba6d645
--- /dev/null
+++ b/Build/source/libs/curl/docs/FEATURES
@@ -0,0 +1,94 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+FEATURES
+
+Misc
+ - full URL syntax
+ - custom maximum download time
+ - custom least download speed acceptable
+ - custom output result after completion
+ - multiple URLs
+ - guesses protocol from host name unless specified
+ - uses .netrc
+ - progress bar/time specs while downloading
+ - "standard" proxy environment variables support
+ - config file support
+ - compiles on win32 (reported built on 29 operating systems)
+ - redirectable stderr
+ - use selected network interface for outgoing traffic
+ - IPv6 support
+ - persistant connections
+
+HTTP
+ - HTTP/1.1 compliant
+ - GET
+ - PUT
+ - HEAD
+ - POST
+ - multipart POST
+ - authentication
+ - resume (both GET and PUT)
+ - follow redirects
+ - maximum amount of redirects to follow
+ - custom HTTP request
+ - cookie get/send fully parsed
+ - understands the netscape cookie file format
+ - custom headers (that can replace/remove internally generated headers)
+ - custom user-agent string
+ - custom referer string
+ - range
+ - proxy authentication
+ - time conditions
+ - via http-proxy
+ - retrieve file modification date
+
+HTTPS (*1)
+ - (all the HTTP features)
+ - using certificates
+ - verify server certificate
+ - via http-proxy
+
+FTP
+ - download
+ - authentication
+ - kerberos security
+ - active/passive using PORT, EPRT, PASV or EPSV
+ - single file size information (compare to HTTP HEAD)
+ - 'type=' URL support
+ - dir listing
+ - dir listing names-only
+ - upload
+ - upload append
+ - upload via http-proxy as HTTP PUT
+ - download resume
+ - upload resume
+ - custom ftp commands (before and/or after the transfer)
+ - simple "range" support
+ - via http-proxy
+ - all operations can be tunneled through a http-proxy
+ - customizable to retrieve file modification date
+
+TELNET
+ - connection negotiation
+ - custom telnet options
+ - stdin/stdout I/O
+
+LDAP (*2)
+ - full LDAP URL support
+
+DICT
+ - extended DICT URL support
+
+GOPHER
+ - GET
+ - via http-proxy
+
+FILE
+ - URL support
+
+ *1 = requires OpenSSL
+ *2 = requires OpenLDAP
diff --git a/Build/source/libs/curl/docs/INSTALL b/Build/source/libs/curl/docs/INSTALL
new file mode 100644
index 00000000000..7d8ce5c1489
--- /dev/null
+++ b/Build/source/libs/curl/docs/INSTALL
@@ -0,0 +1,466 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+ How To Compile
+
+Curl has been compiled and built on numerous different operating systems.
+
+Most systems build curl the same way (unix-style). Continue reading below for
+more details if you're one of them.
+
+If you're using Windows (95/98/NT/ME/2000/XP or similar), VMS, RISC OS or OS/2
+or cross-compile, you should continue reading from one the paragraphs further
+down.
+
+UNIX
+====
+
+ A normal unix installation is made in three or four steps (after you've
+ unpacked the source archive):
+
+ ./configure
+ make
+ make test (optional)
+ make install
+
+ You probably need to be root when doing the last command.
+
+ If you want to install curl in a different file hierarchy than /usr/local,
+ you need to specify that already when running configure:
+
+ ./configure --prefix=/path/to/curl/tree
+
+ The configure script always tries to find a working SSL library unless
+ explicitly told not to. If you have OpenSSL installed in the default search
+ path for your compiler/linker, you don't need to do anything special. If
+ you have OpenSSL installed in /usr/local/ssl, you can run configure like:
+
+ ./configure --with-ssl
+
+ If you have OpenSSL installed somewhere else (for example, /opt/OpenSSL,)
+ you can run configure like this:
+
+ ./configure --with-ssl=/opt/OpenSSL
+
+ If you insist on forcing a build without SSL support, even though you may
+ have OpenSSL installed in your system, you can run configure like this:
+
+ ./configure --without-ssl
+
+ If you have OpenSSL installed, but with the libraries in one place and the
+ header files somewhere else, you have to set the LDFLAGS and CPPFLAGS
+ environment variables prior to running configure. Something like this
+ should work:
+
+ (with the Bourne shell and its clones):
+
+ CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \
+ ./configure
+
+ (with csh, tcsh and their clones):
+
+ env CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" \
+ ./configure
+
+ If your SSL library was compiled with rsaref (usually for use in the United
+ States), you may also need to set:
+
+ LIBS=-lRSAglue -lrsaref
+ (as suggested by Doug Kaufman)
+
+ KNOWN PROBLEMS (these ones should not happen anymore)
+
+ If you happen to have autoconf installed, but a version older than 2.12
+ you will get into trouble. Then you can still build curl by issuing these
+ commands (note that this requires curl to be built staticly): (from Ralph
+ Beckmann)
+
+ ./configure [...]
+ cd lib; make; cd ..
+ cd src; make; cd ..
+ cp src/curl elsewhere/bin/
+
+ As suggested by David West, you can make a faked version of autoconf and
+ autoheader:
+
+ ----start of autoconf----
+ #!/bin/bash
+ #fake autoconf for building curl
+ if [ "$1" = "--version" ] then
+ echo "Autoconf version 2.13"
+ fi
+ ----end of autoconf----
+
+ Then make autoheader a symbolic link to the same script and make sure
+ they're executable and set to appear in the path *BEFORE* the actual (but
+ obsolete) autoconf and autoheader scripts.
+
+ MORE OPTIONS
+
+ To force configure to use the standard cc compiler if both cc and gcc are
+ present, run configure like
+
+ CC=cc ./configure
+ or
+ env Cc=cc ./configure
+
+ To force a static library compile, disable the shared library creation
+ by running configure like:
+
+ ./configure --disable-shared
+
+ To tell the configure script to skip searching for thread-safe functions,
+ add an option like:
+
+ ./configure --disable-thread
+
+ To build curl with kerberos4 support enabled, curl requires the krb4 libs
+ and headers installed. You can then use a set of options to tell
+ configure where those are:
+
+ --with-krb4-includes[=DIR] Specify location of kerberos4 headers
+ --with-krb4-libs[=DIR] Specify location of kerberos4 libs
+ --with-krb4[=DIR] where to look for Kerberos4
+
+ In most cases, /usr/athena is the install prefix and then it works with
+
+ ./configure --with-krb4=/usr/athena
+
+ If you're a curl developer and use gcc, you might want to enable more
+ debug options with the --enable-debug option.
+
+Win32
+=====
+
+ Without SSL:
+
+ MingW32 (GCC-2.95) style
+ ------------------------
+ Run the 'mingw32.bat' file to get the proper environment variables
+ set, then run 'make mingw32' in the root dir.
+
+ 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.
+
+ Cygwin style
+ ------------
+ Almost identical to the unix installation. Run the configure script in
+ the curl root with 'sh configure'. Make sure you have the sh
+ executable in /bin/ or you'll see the configure fail towards the end.
+
+ Run 'make'
+
+ Microsoft command line style
+ ----------------------------
+ Run the 'vcvars32.bat' file to get the proper environment variables
+ set, then run 'nmake vc' in the root dir.
+
+ The vcvars32.bat file is part of the Microsoft development
+ environment.
+
+ IDE-style
+ -------------------------
+ If you use VC++, Borland or similar compilers. Include all lib source
+ files in a static lib "project" (all .c and .h files that is).
+ (you should name it libcurl or similar)
+
+ Make the sources in the src/ drawer be a "win32 console application"
+ project. Name it curl.
+
+ With VC++, add 'ws2_32.lib' to the link libs when you build curl!
+ Borland seems to do that itself magically. Of course you have to make
+ sure it links with the libcurl too!
+
+ For VC++ 6, there's an included Makefile.vc6 that should be possible
+ to use out-of-the-box.
+
+ Microsoft note: add /Zm200 to the compiler options to increase the
+ compiler's memory allocation limit, as the hugehelp.c won't compile
+ due to "too long puts string".
+
+
+ With SSL:
+
+ MingW32 (GCC-2.95) style
+ ------------------------
+ Run the 'mingw32.bat' file to get the proper environment variables
+ set, then run 'make mingw32-ssl' in the root dir.
+
+ If you have any problems linking libraries or finding header files, be
+ sure to look at the provided "Makefile.m32" files for the proper
+ paths, and adjust as necessary.
+
+ Cygwin style
+ ------------
+ Haven't done, nor got any reports on how to do. It should although be
+ identical to the unix setup for the same purpose. See above.
+
+ Microsoft command line style
+ ----------------------------
+ Please read the OpenSSL documentation on how to compile and install
+ the OpenSSL library. This generates the libeay32.dll and ssleay32.dll
+ files in the out32dll subdirectory in the OpenSSL home directory. If
+ you compiled OpenSSL static libraries (libeay32.lib, ssleay32.lib,
+ RSAglue.lib) they are created in the out32 subdirectory.
+
+ Run the 'vcvars32.bat' file to get the proper environment variables
+ set. The vcvars32.bat file is part of the Microsoft development
+ environment and you may find it in 'C:\Program Files\Microsoft Visual
+ Studio\vc98\bin' if you installed Visual C/C++ 6 in the default
+ directory.
+
+ Before running nmake define the OPENSSL_PATH environment variable with
+ the root/base directory of OpenSSL, for example:
+
+ set OPENSSL_PATH=c:\openssl-0.9.6b
+
+ Then run 'nmake vc-ssl' or 'nmake vc-ssl-dll' in the curl's root
+ directory. 'nmake vc-ssl' will create a libcurl static and dynamic
+ libraries in the lib subdirectory, as well as a statically linked
+ version of curl.exe in the scr subdirectory. This statically linked
+ version is a standalone executable not requiring any DLL at
+ runtime. This making method requires that you have build the static
+ libraries of OpenSSL available in OpenSSL's out32 subdirectory.
+ 'nmake vc-ssl-dll' creates the libcurl dynamic library and
+ links curl.exe against libcurl and OpenSSL dynamically.
+ This executables requires libcurl.dll and the OpenSSL DLLs
+ at runtime.
+
+ Microsoft / Borland style
+ -------------------------
+ If you have OpenSSL, and want curl to take advantage of it, edit your
+ project properties to use the SSL include path, link with the SSL libs
+ and define the USE_SSLEAY symbol.
+
+
+IBM OS/2
+========
+
+ Building under OS/2 is not much different from building under unix.
+ You need:
+
+ - emx 0.9d
+ - GNU make
+ - GNU patch
+ - ksh
+ - GNU bison
+ - GNU file utilities
+ - GNU sed
+ - autoconf 2.13
+
+ If you want to build with OpenSSL or OpenLDAP support, you'll need to
+ download those libraries, too. Dirk Ohme has done some work to port SSL
+ libraries under OS/2, but it looks like he doesn't care about emx. You'll
+ find his patches on: http://come.to/Dirk_Ohme
+
+ If during the linking you get an error about _errno being an undefined
+ symbol referenced from the text segment, you need to add -D__ST_MT_ERRNO__
+ in your definitions.
+
+ If everything seems to work fine but there's no curl.exe, you need to add
+ -Zexe to your linker flags.
+
+ If you're getting huge binaries, probably your makefiles have the -g in
+ CFLAGS.
+
+VMS
+===
+ (The VMS section is in whole contributed by the friendly Nico Baggus)
+
+ This is the first attempt at porting cURL to VMS.
+
+ Curl seems to work with FTP & HTTP other protocols are not tested. (the
+ perl http/ftp testing server supplied as testing too cannot work on VMS
+ because vms has no concept of fork(). [ I tried to give it a whack, but
+ thats of no use.
+
+ SSL stuff has not been ported.
+
+ Telnet has about the same issues as for Win32. When the changes for Win32
+ are clear maybe they'l work for VMS too. The basic problem is that select
+ ONLY works for sockets.
+
+ Marked instances of fopen/[f]stat that might become a problem, especially
+ for non stream files. In this regard, the files opened for writing will be
+ created stream/lf and will thus be safe. Just keep in mind that non-binary
+ read/wring from/to files will have a records size limit of 32767 bytes
+ imposed.
+
+ Stat to get the size of the files is again only safe for stream files &
+ fixed record files without implied CC.
+
+ -- My guess is that only allowing access to stream files is the quickest
+ way to get around the most issues. Therefore all files need to to be
+ checked to be sure they will be stream/lf before processing them. This is
+ the easiest way out, I know. The reason for this is that code that needs to
+ report the filesize will become a pain in the ass otherwise.
+
+ Exit status.... Well we needed something done here,
+
+ VMS has a structured exist status:
+ | 3 | 2 | 1 | 0|
+ |1098|765432109876|5432109876543|210|
+ +----+------------+-------------+---+
+ |Ctrl| Facility | Error code |sev|
+ +----+------------+-------------+---+
+
+ With the Ctrl-bits an application can tell if part or the whole message has
+ allready been printed from the program, DCL doesn't need to print it again.
+
+ Facility - basicaly the program ID. A code assigned to the program
+ the name can be fetched from external or internal message libraries
+ Errorcode - the errodes assigned by the application
+ Sev. - severity: Even = error, off = non error
+ 0 = Warning
+ 1 = Success
+ 2 = Error
+ 3 = Information
+ 4 = Fatal
+ <5-7> reserved.
+
+ This all presents itself with:
+ %<FACILITY>-<SeV>-<Errorname>, <Error message>
+
+ See also the src/curlmsg.msg file, it has the source for the messages In
+ src/main.c a section is devoted to message status values, the globalvalues
+ create symbols with certain values, referenced from a compiled message
+ file. Have all exit function use a exit status derived from a translation
+ table with the compiled message codes.
+
+ This was all compiled with:
+
+ Compaq C V6.2-003 on OpenVMS Alpha V7.1-1H2
+
+ So far for porting notes as of:
+ 13-jul-2001
+ N. Baggus
+
+QNX
+===
+ (This section was graciously brought to us by David Bentham)
+
+ As QNX is targetted for resource constrained environments, the QNX headers
+ set conservative limits. This includes the FD_SETSIZE macro, set by default
+ to 32. Socket descriptors returned within the CURL library may exceed this,
+ resulting in memory faults/SIGSEGV crashes when passed into select(..)
+ calls using fd_set macros.
+
+ A good all-round solution to this is to override the default when building
+ libcurl, by overriding CFLAGS during configure, example
+ # configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
+
+CROSS COMPILE
+=============
+
+ (This section was graciously brought to us by Jim Duey, 23-oct-2001)
+
+ Download and unpack the cURL package. Version should be 7.9.1 or later.
+
+ 'cd' to the new directory. (ie. curl-7.9.1-pre4)
+
+ Set environment variables to point to the cross-compile toolchain and call
+ configure with any options you need. Be sure and specify the '--host' and
+ '--build' parameters at configuration time. The following script is an
+ example of cross-compiling for the IBM 405GP PowerPC processor using the
+ toolchain from MonteVista for Hardhat Linux.
+
+ (begin script)
+
+ #! /bin/sh
+
+ export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin
+ export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include"
+ export AR=ppc_405-ar
+ export AS=ppc_405-as
+ export LD=ppc_405-ld
+ export RANLIB=ppc_405-ranlib
+ export CC=ppc_405-gcc
+ export NM=ppc_405-nm
+
+ configure --target=powerpc-hardhat-linux \
+ --host=powerpc-hardhat-linux \
+ --build=i586-pc-linux-gnu \
+ --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \
+ --exec-prefix=/usr/local
+
+ (end script)
+
+ The '--prefix' parameter specifies where cURL will be installed. If
+ 'configure' completes successfully, do 'make' and 'make install' as usual.
+
+PORTS
+=====
+ This is a probably incomplete list of known hardware and operating systems
+ that curl has been compiled for. If you know one system curl compiles and
+ runs on, that isn't listed, please let us know!
+
+ - Alpha DEC OSF 4
+ - Alpha Digital UNIX v3.2
+ - Alpha FreeBSD 4.1
+ - Alpha Linux 2.2.16
+ - Alpha OpenVMS V7.1-1H2
+ - Alpha Tru64 v5.0 5.1
+ - HP-PA HP-UX 9.X 10.X 11.X
+ - HP-PA Linux
+ - MIPS IRIX 6.2, 6.5
+ - MIPS Linux
+ - Pocket PC/Win CE 3.0
+ - Power AIX 4.2, 4.3.1, 4.3.2
+ - PowerPC Darwin 1.0
+ - PowerPC Linux
+ - PowerPC Mac OS 9
+ - PowerPC Mac OS X
+ - SINIX-Z v5
+ - Sparc Linux
+ - Sparc Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8
+ - Sparc SunOS 4.1.X
+ - StrongARM (and other ARM) RISC OS 3.1, 4.02
+ - StrongARM Linux 2.4
+ - StrongARM NetBSD 1.4.1
+ - Ultrix 4.3a
+ - i386 BeOS
+ - i386 FreeBSD
+ - i386 HURD
+ - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4
+ - i386 NetBSD
+ - i386 OS/2
+ - i386 OpenBSD
+ - i386 SCO unix
+ - i386 Solaris 2.7
+ - i386 Windows 95, 98, ME, NT, 2000
+ - ia64 Linux 2.3.99
+ - m68k AmigaOS 3
+ - m68k Linux
+ - m68k OpenBSD
+ - s390 Linux
+
+OpenSSL
+=======
+
+ You'll find OpenSSL information at:
+
+ http://www.openssl.org
+
+
+MingW32/Cygwin
+==============
+
+ You'll find MingW32 and Cygwin information at:
+
+ http://www.mingw.org
+
+OpenLDAP
+========
+
+ You'll find OpenLDAP information at:
+
+ http://www.openldap.org
+
+ You need to install it with shared libraries, which is enabled when running
+ the ldap configure script with "--enable-shared". With my linux 2.0.36
+ kernel I also had to disable using threads (with --without-threads),
+ because the configure script couldn't figure out my system.
diff --git a/Build/source/libs/curl/docs/INTERNALS b/Build/source/libs/curl/docs/INTERNALS
new file mode 100644
index 00000000000..42ac4508bb6
--- /dev/null
+++ b/Build/source/libs/curl/docs/INTERNALS
@@ -0,0 +1,381 @@
+ Updated for curl 7.9.1 on November 2, 2001
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+INTERNALS
+
+ The project is split in two. The library and the client. The client part uses
+ the library, but the library is designed to allow other applications to use
+ it.
+
+ The largest amount of code and complexity is in the library part.
+
+CVS
+===
+ All changes to the sources are committed to the CVS repository as soon as
+ they're somewhat verified to work. Changes shall be commited as independently
+ as possible so that individual changes can be easier spotted and tracked
+ afterwards.
+
+ Tagging shall be used extensively, and by the time we release new archives we
+ should tag the sources with a name similar to the released version number.
+
+Windows vs Unix
+===============
+
+ There are a few differences in how to program curl the unix way compared to
+ the Windows way. The four perhaps most notable details are:
+
+ 1. Different function names for socket operations.
+
+ In curl, this is solved with defines and macros, so that the source looks
+ the same at all places except for the header file that defines them. The
+ macros in use are sclose(), sread() and swrite().
+
+ 2. Windows requires a couple of init calls for the socket stuff.
+
+ Those must be made by the application that uses libcurl, in curl that means
+ src/main.c has some code #ifdef'ed to do just that.
+
+ 3. The file descriptors for network communication and file operations are
+ not easily interchangable as in unix.
+
+ We avoid this by not trying any funny tricks on file descriptors.
+
+ 4. When writing data to stdout, Windows makes end-of-lines the DOS way, thus
+ destroying binary data, although you do want that conversion if it is
+ text coming through... (sigh)
+
+ We set stdout to binary under windows
+
+ Inside the source code, We make an effort to avoid '#ifdef [Your OS]'. All
+ conditionals that deal with features *should* instead be in the format
+ '#ifdef HAVE_THAT_WEIRD_FUNCTION'. Since Windows can't run configure scripts,
+ we maintain two config-win32.h files (one in lib/ and one in src/) that are
+ supposed to look exactly as a config.h file would have looked like on a
+ Windows machine!
+
+ Generally speaking: always remember that this will be compiled on dozens of
+ operating systems. Don't walk on the edge.
+
+Library
+=======
+
+ There are plenty of entry points to the library, namely each publicly defined
+ function that libcurl offers to applications. All of those functions are
+ rather small and easy-to-follow. All the ones prefixed with 'curl_easy' are
+ put in the lib/easy.c file.
+
+ curl_global_init_() and curl_global_cleanup() should be called by the
+ application to initialize and clean up global stuff in the library. As of
+ today, it can handle the global SSL initing if SSL is enabled and it can init
+ the socket layer on windows machines. libcurl itself has no "global" scope.
+
+ All printf()-style functions use the supplied clones in lib/mprintf.c. This
+ makes sure we stay absolutely platform independent.
+
+ curl_easy_init() allocates an internal struct and makes some initializations.
+ The returned handle does not reveal internals. This is the 'SessionHandle'
+ struct which works as an "anchor" struct for all curl_easy functions. All
+ connections performed will get connect-specific data allocated that should be
+ used for things related to particular connections/requests.
+
+ curl_easy_setopt() takes three arguments, where the option stuff must be
+ passed in pairs: the parameter-ID and the parameter-value. The list of
+ options is documented in the man page. This function mainly sets things in
+ the 'SessionHandle' struct.
+
+ curl_easy_perform() does a whole lot of things:
+
+ It starts off in the lib/easy.c file by calling Curl_perform() and the main
+ work then continues in lib/url.c. The flow continues with a call to
+ Curl_connect() to connect to the remote site.
+
+ o Curl_connect()
+
+ ... analyzes the URL, it separates the different components and connects to
+ the remote host. This may involve using a proxy and/or using SSL. The
+ Curl_gethost() function in lib/hostip.c is used for looking up host names.
+
+ When Curl_connect is done, we are connected to the remote site. Then it is
+ time to tell the server to get a document/file. Curl_do() arranges this.
+
+ This function makes sure there's an allocated and initiated 'connectdata'
+ struct that is used for this particular connection only (although there may
+ be several requests performed on the same connect). A bunch of things are
+ inited/inherited from the SessionHandle struct.
+
+ o Curl_do()
+
+ Curl_do() makes sure the proper protocol-specific function is called. The
+ functions are named after the protocols they handle. Curl_ftp(),
+ Curl_http(), Curl_dict(), etc. They all reside in their respective files
+ (ftp.c, http.c and dict.c). HTTPS is handled by Curl_http() and FTPS by
+ Curl_ftp().
+
+ The protocol-specific functions of course deal with protocol-specific
+ negotiations and setup. They have access to the Curl_sendf() (from
+ lib/sendf.c) function to send printf-style formatted data to the remote
+ host and when they're ready to make the actual file transfer they call the
+ Curl_Transfer() function (in lib/transfer.c) to setup the transfer and
+ returns.
+
+ Starting in 7.9.1, if this DO function fails and the connection is being
+ re-used, libcurl will then close this connection, setup a new connection
+ and re-issue the DO request on that. This is because there is no way to be
+ perfectly sure that we have discovered a dead connection before the DO
+ function and thus we might wrongly be re-using a connection that was closed
+ by the remote peer.
+
+ o Transfer()
+
+ Curl_perform() then calls Transfer() in lib/transfer.c that performs
+ the entire file transfer.
+
+ During transfer, the progress functions in lib/progress.c are called at a
+ frequent interval (or at the user's choice, a specified callback might get
+ called). The speedcheck functions in lib/speedcheck.c are also used to
+ verify that the transfer is as fast as required.
+
+ o Curl_done()
+
+ Called after a transfer is done. This function takes care of everything
+ that has to be done after a transfer. This function attempts to leave
+ matters in a state so that Curl_do() should be possible to call again on
+ the same connection (in a persistent connection case). It might also soon
+ be closed with Curl_disconnect().
+
+ o Curl_disconnect()
+
+ When doing normal connections and transfers, no one ever tries to close any
+ connections so this is not normally called when curl_easy_perform() is
+ used. This function is only used when we are certain that no more transfers
+ is going to be made on the connection. It can be also closed by force, or
+ it can be called to make sure that libcurl doesn't keep too many
+ connections alive at the same time (there's a default amount of 5 but that
+ can be changed with the CURLOPT_MAXCONNECTS option).
+
+ This function cleans up all resources that are associated with a single
+ connection.
+
+ Curl_perform() is the function that does the main "connect - do - transfer -
+ done" loop. It loops if there's a Location: to follow.
+
+ When completed, the curl_easy_cleanup() should be called to free up used
+ resources. It runs Curl_disconnect() on all open connectons.
+
+ A quick roundup on internal function sequences (many of these call
+ protocol-specific function-pointers):
+
+ curl_connect - connects to a remote site and does initial connect fluff
+ This also checks for an existing connection to the requested site and uses
+ that one if it is possible.
+
+ curl_do - starts a transfer
+ curl_transfer() - transfers data
+ curl_done - ends a transfer
+
+ curl_disconnect - disconnects from a remote site. This is called when the
+ disconnect is really requested, which doesn't necessarily have to be
+ exactly after curl_done in case we want to keep the connection open for
+ a while.
+
+ HTTP(S)
+
+ HTTP offers a lot and is the protocol in curl that uses the most lines of
+ code. There is a special file (lib/formdata.c) that offers all the multipart
+ post functions.
+
+ base64-functions for user+password stuff (and more) is in (lib/base64.c) and
+ all functions for parsing and sending cookies are found in (lib/cookie.c).
+
+ HTTPS uses in almost every means the same procedure as HTTP, with only two
+ exceptions: the connect procedure is different and the function used to read
+ or write from the socket is different, although the latter fact is hidden in
+ the source by the use of curl_read() for reading and curl_write() for writing
+ data to the remote server.
+
+ http_chunks.c contains functions that understands HTTP 1.1 chunked transfer
+ encoding.
+
+ An interesting detail with the HTTP(S) request, is the add_buffer() series of
+ functions we use. They append data to one single buffer, and when the
+ building is done the entire request is sent off in one single write. This is
+ done this way to overcome problems with flawed firewalls and lame servers.
+
+ FTP
+
+ The Curl_if2ip() function can be used for getting the IP number of a
+ specified network interface, and it resides in lib/if2ip.c.
+
+ Curl_ftpsendf() is used for sending FTP commands to the remote server. It was
+ made a separate function to prevent us programmers from forgetting that they
+ must be CRLF terminated. They must also be sent in one single write() to make
+ firewalls and similar happy.
+
+ Kerberos
+
+ The kerberos support is mainly in lib/krb4.c and lib/security.c.
+
+ TELNET
+
+ Telnet is implemented in lib/telnet.c.
+
+ FILE
+
+ The file:// protocol is dealt with in lib/file.c.
+
+ LDAP
+
+ Everything LDAP is in lib/ldap.c.
+
+ GENERAL
+
+ URL encoding and decoding, called escaping and unescaping in the source code,
+ is found in lib/escape.c.
+
+ While transfering data in Transfer() a few functions might get
+ used. curl_getdate() in lib/getdate.c is for HTTP date comparisons (and
+ more).
+
+ lib/getenv.c offers curl_getenv() which is for reading environment variables
+ in a neat platform independent way. That's used in the client, but also in
+ lib/url.c when checking the proxy environment variables. Note that contrary
+ to the normal unix getenv(), this returns an allocated buffer that must be
+ free()ed after use.
+
+ lib/netrc.c holds the .netrc parser
+
+ 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.
+
+ If authentication is requested but no password is given, a getpass_r() clone
+ exists in lib/getpass.c. libcurl offers a custom callback that can be used
+ instead of this, but it doesn't change much to us.
+
+Persistent Connections
+======================
+
+ The persistent connection support in libcurl requires some considerations on
+ how to do things inside of the library.
+
+ o The 'SessionHandle' struct returned in the curl_easy_init() call must never
+ hold connection-oriented data. It is meant to hold the root data as well as
+ all the options etc that the library-user may choose.
+ o The 'SessionHandle' struct holds the "connection cache" (an array of
+ pointers to 'connectdata' structs). There's one connectdata struct
+ allocated for each connection that libcurl knows about.
+ o This also enables the 'curl handle' to be reused on subsequent transfers,
+ something that was illegal before libcurl 7.7.
+ o When we are about to perform a transfer with curl_easy_perform(), we first
+ check for an already existing connection in the cache that we can use,
+ otherwise we create a new one and add to the cache. If the cache is full
+ already when we add a new connection, we close one of the present ones. We
+ select which one to close dependent on the close policy that may have been
+ previously set.
+ o When the transfer operation is complete, we try to leave the connection
+ open. Particular options may tell us not to, and protocols may signal
+ closure on connections and then we don't keep it open of course.
+ o When curl_easy_cleanup() is called, we close all still opened connections.
+
+ You do realize that the curl handle must be re-used in order for the
+ persistent connections to work.
+
+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,
+ but they are to be changed to follow this pattern in future versions.)
+
+Return Codes and Informationals
+===============================
+
+ I've made things simple. Almost every function in libcurl returns a CURLcode,
+ that must be CURLE_OK if everything is OK or otherwise a suitable error code
+ as the curl/curl.h include file defines. The very spot that detects an error
+ must use the Curl_failf() function to set the human-readable error
+ description.
+
+ In aiding the user to understand what's happening and to debug curl usage, we
+ must supply a fair amount of informational messages by using the Curl_infof()
+ function. Those messages are only displayed when the user explicitly asks for
+ them. They are best used when revealing information that isn't otherwise
+ obvious.
+
+Client
+======
+
+ main() resides in src/main.c together with most of the client code.
+
+ src/hugehelp.c is automatically generated by the mkhelp.pl perl script to
+ display the complete "manual" and the src/urlglob.c file holds the functions
+ used for the URL-"globbing" support. Globbing in the sense that the {} and []
+ expansion stuff is there.
+
+ The client mostly messes around to setup its 'config' struct properly, then
+ it calls the curl_easy_*() functions of the library and when it gets back
+ control after the curl_easy_perform() it cleans up the library, checks status
+ and exits.
+
+ When the operation is done, the ourWriteOut() function in src/writeout.c may
+ be called to report about the operation. That function is using the
+ curl_easy_getinfo() function to extract useful information from the curl
+ session.
+
+ Recent versions may loop and do all this several times if many URLs were
+ specified on the command line or config file.
+
+Memory Debugging
+================
+
+ The file lib/memdebug.c contains debug-versions of a few functions. Functions
+ such as malloc, free, fopen, fclose, etc that somehow deal with resources
+ that might give us problems if we "leak" them. The functions in the memdebug
+ system do nothing fancy, they do their normal function and then log
+ information about what they just did. The logged data can then be analyzed
+ after a complete session,
+
+ memanalyze.pl is the perl script present only present in CVS (not part of the
+ release archives) that analyzes a log file generated by the memdebug
+ system. It detects if resources are allocated but never freed and other kinds
+ of errors related to resource management.
+
+ Use -DMALLOCDEBUG when compiling to enable memory debugging, this is also
+ switched on by running configure with --enable-debug.
+
+Test Suite
+==========
+
+ Since November 2000, a test suite has evolved. It is placed in its own
+ subdirectory directly off the root in the curl archive tree, and it contains
+ a bunch of scripts and a lot of test case data.
+
+ The main test script is runtests.pl that will invoke the two servers
+ httpserver.pl and ftpserver.pl before all the test cases are performed. The
+ test suite currently only runs on unix-like platforms.
+
+ You'll find a complete description of the test case data files in the
+ tests/README file.
+
+ The test suite automatically detects if curl was built with the memory
+ debugging enabled, and if it was it will detect memory leaks too.
+
+Building Releases
+=================
+
+ There's no magic to this. When you consider everything stable enough to be
+ released, run the 'maketgz' script (using 'make distcheck' will give you a
+ pretty good view on the status of the current sources). maketgz prompts for
+ version number of the client and the library before it creates a release
+ archive. maketgz uses 'make dist' for the actual archive building, why you
+ need to fill in the Makefile.am files properly for which files that should
+ be included in the release archives.
+
diff --git a/Build/source/libs/curl/docs/KNOWN_BUGS b/Build/source/libs/curl/docs/KNOWN_BUGS
new file mode 100644
index 00000000000..ed389b590e7
--- /dev/null
+++ b/Build/source/libs/curl/docs/KNOWN_BUGS
@@ -0,0 +1,14 @@
+These are problems known to exist at the time of this release. Feel free to
+join in and help us correct one or more of these! Also be sure to check the
+changelog of the current development status, as one or more of these problems
+may have been fixed since this was written!
+
+* curl_formadd() fails on OSF1. Why? Fix! Need help from OSF1 dudes.
+ https://sourceforge.net/tracker/index.php?func=detail&aid=524433&group_id=976&atid=100976
+
+* Running 'make test' on Mac OS X gives 4 errors. This seems to be related
+ to some kind of libtool problem:
+ http://curl.haxx.se/mail/archive-2002-03/0029.html and
+ http://curl.haxx.se/mail/archive-2002-03/0033.html
+
+* libcurl does not deal nicely with files larger than 2GB \ No newline at end of file
diff --git a/Build/source/libs/curl/docs/MANUAL b/Build/source/libs/curl/docs/MANUAL
new file mode 100644
index 00000000000..8a66d134207
--- /dev/null
+++ b/Build/source/libs/curl/docs/MANUAL
@@ -0,0 +1,818 @@
+LATEST VERSION
+
+ You always find news about what's going on as well as the latest versions
+ from the curl web pages, located at:
+
+ http://curl.haxx.se
+
+SIMPLE USAGE
+
+ Get the main page from netscape's web-server:
+
+ curl http://www.netscape.com/
+
+ Get the root README file from funet's ftp-server:
+
+ curl ftp://ftp.funet.fi/README
+
+ Get a web page from a server using port 8000:
+
+ curl http://www.weirdserver.com:8000/
+
+ Get a list of the root directory of an FTP site:
+
+ curl ftp://cool.haxx.se/
+
+ Get a gopher document from funet's gopher server:
+
+ curl gopher://gopher.funet.fi
+
+ Get the definition of curl from a dictionary:
+
+ curl dict://dict.org/m:curl
+
+ Fetch two documents at once:
+
+ curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/
+
+DOWNLOAD TO A FILE
+
+ Get a web page and store in a local file:
+
+ curl -o thatpage.html http://www.netscape.com/
+
+ Get a web page and store in a local file, make the local file get the name
+ of the remote document (if no file name part is specified in the URL, this
+ will fail):
+
+ curl -O http://www.netscape.com/index.html
+
+ Fetch two files and store them with their remote names:
+
+ curl -O www.haxx.se/index.html -O curl.haxx.se/download.html
+
+USING PASSWORDS
+
+ FTP
+
+ To ftp files using name+passwd, include them in the URL like:
+
+ curl ftp://name:passwd@machine.domain:port/full/path/to/file
+
+ or specify them with the -u flag like
+
+ curl -u name:passwd ftp://machine.domain:port/full/path/to/file
+
+ HTTP
+
+ The HTTP URL doesn't support user and password in the URL string. Curl
+ does support that anyway to provide a ftp-style interface and thus you can
+ pick a file like:
+
+ curl http://name:passwd@machine.domain/full/path/to/file
+
+ or specify user and password separately like in
+
+ curl -u name:passwd http://machine.domain/full/path/to/file
+
+ NOTE! Since HTTP URLs don't support user and password, you can't use that
+ style when using Curl via a proxy. You _must_ use the -u style fetch
+ during such circumstances.
+
+ HTTPS
+
+ Probably most commonly used with private certificates, as explained below.
+
+ GOPHER
+
+ Curl features no password support for gopher.
+
+PROXY
+
+ Get an ftp file using a proxy named my-proxy that uses port 888:
+
+ curl -x my-proxy:888 ftp://ftp.leachsite.com/README
+
+ Get a file from a HTTP server that requires user and password, using the
+ same proxy as above:
+
+ curl -u user:passwd -x my-proxy:888 http://www.get.this/
+
+ Some proxies require special authentication. Specify by using -U as above:
+
+ curl -U user:passwd -x my-proxy:888 http://www.get.this/
+
+ See also the environment variables Curl support that offer further proxy
+ control.
+
+RANGES
+
+ With HTTP 1.1 byte-ranges were introduced. Using this, a client can request
+ to get only one or more subparts of a specified document. Curl supports
+ this with the -r flag.
+
+ Get the first 100 bytes of a document:
+
+ curl -r 0-99 http://www.get.this/
+
+ Get the last 500 bytes of a document:
+
+ curl -r -500 http://www.get.this/
+
+ Curl also supports simple ranges for FTP files as well. Then you can only
+ specify start and stop position.
+
+ Get the first 100 bytes of a document using FTP:
+
+ curl -r 0-99 ftp://www.get.this/README
+
+UPLOADING
+
+ FTP
+
+ Upload all data on stdin to a specified ftp site:
+
+ curl -T - ftp://ftp.upload.com/myfile
+
+ Upload data from a specified file, login with user and password:
+
+ curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile
+
+ 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 using ftp:
+
+ curl -T localfile -a ftp://ftp.upload.com/remotefile
+
+ Curl also supports ftp upload through a proxy, but only if the proxy is
+ configured to allow that kind of tunneling. If it does, you can run curl in
+ a fashion similar to:
+
+ curl --proxytunnel -x proxy:port -T localfile ftp.upload.com
+
+ HTTP
+
+ Upload all data on stdin to a specified http site:
+
+ curl -T - http://www.upload.com/myfile
+
+ Note that the http server must've been configured to accept PUT before this
+ can be done successfully.
+
+ For other ways to do http data upload, see the POST section below.
+
+VERBOSE / DEBUG
+
+ If curl fails where it isn't supposed to, if the servers don't let you
+ in, if you can't understand the responses: use the -v flag to get VERBOSE
+ fetching. Curl will output lots of info and all data it sends and
+ receives in order to let the user see all client-server interaction.
+
+ curl -v ftp://ftp.upload.com/
+
+DETAILED INFORMATION
+
+ Different protocols provide different ways of getting detailed information
+ about specific files/documents. To get curl to show detailed information
+ about a single file, you should use -I/--head option. It displays all
+ available info on a single file for HTTP and FTP. The HTTP information is a
+ lot more extensive.
+
+ For HTTP, you can get the header information (the same as -I would show)
+ shown before the data by using -i/--include. Curl understands the
+ -D/--dump-header option when getting files from both FTP and HTTP, and it
+ will then store the headers in the specified file.
+
+ Store the HTTP headers in a separate file (headers.txt in the example):
+
+ curl --dump-header headers.txt curl.haxx.se
+
+ Note that headers stored in a separate file can be very useful at a later
+ time if you want curl to use cookies sent by the server. More about that in
+ the cookies section.
+
+POST (HTTP)
+
+ It's easy to post data using curl. This is done using the -d <data>
+ option. The post data must be urlencoded.
+
+ Post a simple "name" and "phone" guestbook.
+
+ curl -d "name=Rafael%20Sagula&phone=3320780" \
+ http://www.where.com/guest.cgi
+
+ How to post a form with curl, lesson #1:
+
+ Dig out all the <input> tags in the form that you want to fill in. (There's
+ a perl program called formfind.pl on the curl site that helps with this).
+
+ If there's a "normal" post, you use -d to post. -d takes a full "post
+ string", which is in the format
+
+ <variable1>=<data1>&<variable2>=<data2>&...
+
+ The 'variable' names are the names set with "name=" in the <input> tags, and
+ the data is the contents you want to fill in for the inputs. The data *must*
+ be properly URL encoded. That means you replace space with + and that you
+ write weird letters with %XX where XX is the hexadecimal representation of
+ the letter's ASCII code.
+
+ Example:
+
+ (page located at http://www.formpost.com/getthis/
+
+ <form action="post.cgi" method="post">
+ <input name=user size=10>
+ <input name=pass type=password size=10>
+ <input name=id type=hidden value="blablabla">
+ <input name=ding value="submit">
+ </form>
+
+ We want to enter user 'foobar' with password '12345'.
+
+ To post to this, you enter a curl command line like:
+
+ curl -d "user=foobar&pass=12345&id=blablabla&dig=submit" (continues)
+ http://www.formpost.com/getthis/post.cgi
+
+
+ While -d uses the application/x-www-form-urlencoded mime-type, generally
+ understood by CGI's and similar, curl also supports the more capable
+ multipart/form-data type. This latter type supports things like file upload.
+
+ -F accepts parameters like -F "name=contents". If you want the contents to
+ be read from a file, use <@filename> as contents. When specifying a file,
+ you can also specify the file content type by appending ';type=<mime type>'
+ to the file name. You can also post the contents of several files in one
+ field. For example, the field name 'coolfiles' is used to send three files,
+ with different content types using the following syntax:
+
+ curl -F "coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html" \
+ http://www.post.com/postit.cgi
+
+ If the content-type is not specified, curl will try to guess from the file
+ extension (it only knows a few), or use the previously specified type (from
+ an earlier file if several files are specified in a list) or else it will
+ using the default type 'text/plain'.
+
+ Emulate a fill-in form with -F. Let's say you fill in three fields in a
+ form. One field is a file name which to post, one field is your name and one
+ field is a file description. We want to post the file we have written named
+ "cooltext.txt". To let curl do the posting of this data instead of your
+ favourite browser, you have to read the HTML source of the form page and
+ find the names of the input fields. In our example, the input field names
+ are 'file', 'yourname' and 'filedescription'.
+
+ curl -F "file=@cooltext.txt" -F "yourname=Daniel" \
+ -F "filedescription=Cool text file with cool text inside" \
+ http://www.post.com/postit.cgi
+
+ 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"
+
+REFERRER
+
+ A HTTP request has the option to include information about which address
+ that referred to actual page. Curl allows you to specify the
+ referrer to be used on the command line. It is especially useful to
+ fool or trick stupid servers or CGI scripts that rely on that information
+ being available or contain certain data.
+
+ curl -e www.coolsite.com http://www.showme.com/
+
+ NOTE: The referer field is defined in the HTTP spec to be a full URL.
+
+USER AGENT
+
+ A HTTP request has the option to include information about the browser
+ that generated the request. Curl allows it to be specified on the command
+ line. It is especially useful to fool or trick stupid servers or CGI
+ scripts that only accept certain browsers.
+
+ Example:
+
+ curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/
+
+ Other common strings:
+ 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95
+ 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95
+ 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2
+ 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX
+ 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux
+
+ Note that Internet Explorer tries hard to be compatible in every way:
+ 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95
+
+ Mozilla is not the only possible User-Agent name:
+ 'Konqueror/1.0' KDE File Manager desktop client
+ 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser
+
+COOKIES
+
+ Cookies are generally used by web servers to keep state information at the
+ client's side. The server sets cookies by sending a response line in the
+ headers that looks like 'Set-Cookie: <data>' where the data part then
+ typically contains a set of NAME=VALUE pairs (separated by semicolons ';'
+ like "NAME1=VALUE1; NAME2=VALUE2;"). The server can also specify for what
+ path the "cookie" should be used for (by specifying "path=value"), when the
+ cookie should expire ("expire=DATE"), for what domain to use it
+ ("domain=NAME") and if it should be used on secure connections only
+ ("secure").
+
+ If you've received a page from a server that contains a header like:
+ Set-Cookie: sessionid=boo123; path="/foo";
+
+ it means the server wants that first pair passed on when we get anything in
+ a path beginning with "/foo".
+
+ Example, get a page that wants my name passed in a cookie:
+
+ curl -b "name=Daniel" www.sillypage.com
+
+ Curl also has the ability to use previously received cookies in following
+ sessions. If you get cookies from a server and store them in a file in a
+ manner similar to:
+
+ curl --dump-header headers www.example.com
+
+ ... you can then in a second connect to that (or another) site, use the
+ cookies from the 'headers' file like:
+
+ curl -b headers www.example.com
+
+ Note that by specifying -b you enable the "cookie awareness" and with -L
+ you can make curl follow a location: (which often is used in combination
+ with cookies). So that if a site sends cookies and a location, you can
+ use a non-existing file to trigger the cookie awareness like:
+
+ curl -L -b empty.txt www.example.com
+
+ The file to read cookies from must be formatted using plain HTTP headers OR
+ as netscape's cookie file. Curl will determine what kind it is based on the
+ file contents. In the above command, curl will parse the header and store
+ the cookies received from www.example.com. curl will send to the server the
+ stored cookies which match the request as it follows the location. The
+ file "empty.txt" may be a non-existant file.
+
+
+PROGRESS METER
+
+ The progress meter exists to show a user that something actually is
+ happening. The different fields in the output have the following meaning:
+
+ % Total % Received % Xferd Average Speed Time Curr.
+ Dload Upload Total Current Left Speed
+ 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287
+
+ From left-to-right:
+ % - percentage completed of the whole transfer
+ Total - total size of the whole expected transfer
+ % - percentage completed of the download
+ Received - currently downloaded amount of bytes
+ % - percentage completed of the upload
+ Xferd - currently uploaded amount of bytes
+ Average Speed
+ Dload - the average transfer speed of the download
+ Average Speed
+ Upload - the average transfer speed of the upload
+ Time Total - expected time to complete the operation
+ Time Current - time passed since the invoke
+ Time Left - expected time left to completetion
+ Curr.Speed - the average transfer speed the last 5 seconds (the first
+ 5 seconds of a transfer is based on less time of course.)
+
+ The -# option will display a totally different progress bar that doesn't
+ need much explanation!
+
+SPEED LIMIT
+
+ Curl allows the user to set the transfer speed conditions that must be met
+ to let the transfer keep going. By using the switch -y and -Y you
+ can make curl abort transfers if the transfer speed is below the specified
+ lowest limit for a specified time.
+
+ To have curl abort the download if the speed is slower than 3000 bytes per
+ second for 1 minute, run:
+
+ curl -y 3000 -Y 60 www.far-away-site.com
+
+ This can very well be used in combination with the overall time limit, so
+ that the above operatioin must be completed in whole within 30 minutes:
+
+ curl -m 1800 -y 3000 -Y 60 www.far-away-site.com
+
+CONFIG FILE
+
+ Curl automatically tries to read the .curlrc file (or _curlrc file on win32
+ systems) from the user's home dir on startup.
+
+ The config file could be made up with normal command line switches, but you
+ can also specify the long options without the dashes to make it more
+ readable. You can separate the options and the parameter with spaces, or
+ with = or :. Comments can be used within the file. If the first letter on a
+ line is a '#'-letter the rest of the line is treated as a comment.
+
+ If you want the parameter to contain spaces, you must inclose the entire
+ parameter within double quotes ("). Within those quotes, you specify a
+ quote as \".
+
+ NOTE: You must specify options and their arguments on the same line.
+
+ Example, set default time out and proxy in a config file:
+
+ # We want a 30 minute timeout:
+ -m 1800
+ # ... and we use a proxy for all accesses:
+ proxy = proxy.our.domain.com:8080
+
+ White spaces ARE significant at the end of lines, but all white spaces
+ leading up to the first characters of each line are ignored.
+
+ Prevent curl from reading the default file by using -q as the first command
+ line parameter, like:
+
+ curl -q www.thatsite.com
+
+ Force curl to get and display a local help page in case it is invoked
+ without URL by making a config file similar to:
+
+ # default url to get
+ url = "http://help.with.curl.com/curlhelp.html"
+
+ You can specify another config file to be read by using the -K/--config
+ flag. If you set config file name to "-" it'll read the config from stdin,
+ which can be handy if you want to hide options from being visible in process
+ tables etc:
+
+ echo "user = user:passwd" | curl -K - http://that.secret.site.com
+
+EXTRA HEADERS
+
+ When using curl in your own very special programs, you may end up needing
+ to pass on your own custom headers when getting a web page. You can do
+ this by using the -H flag.
+
+ Example, send the header "X-you-and-me: yes" to the server when getting a
+ page:
+
+ curl -H "X-you-and-me: yes" www.love.com
+
+ This can also be useful in case you want curl to send a different text in a
+ header than it normally does. The -H header you specify then replaces the
+ header curl would normally send. If you replace an internal header with an
+ empty one, you prevent that header from being sent. To prevent the Host:
+ header from being used:
+
+ curl -H "Host:" www.server.com
+
+FTP and PATH NAMES
+
+ Do note that when getting files with the ftp:// URL, the given path is
+ relative the directory you enter. To get the file 'README' from your home
+ directory at your ftp site, do:
+
+ curl ftp://user:passwd@my.site.com/README
+
+ But if you want the README file from the root directory of that very same
+ site, you need to specify the absolute file name:
+
+ curl ftp://user:passwd@my.site.com//README
+
+ (I.e with an extra slash in front of the file name.)
+
+FTP and firewalls
+
+ The FTP protocol requires one of the involved parties to open a second
+ connction as soon as data is about to get transfered. There are two ways to
+ do this.
+
+ The default way for curl is to issue the PASV command which causes the
+ server to open another port and await another connection performed by the
+ client. This is good if the client is behind a firewall that don't allow
+ incoming connections.
+
+ curl ftp.download.com
+
+ If the server for example, is behind a firewall that don't allow connections
+ on other ports than 21 (or if it just doesn't support the PASV command), the
+ other way to do it is to use the PORT command and instruct the server to
+ connect to the client on the given (as parameters to the PORT command) IP
+ number and port.
+
+ The -P flag to curl supports a few different options. Your machine may have
+ several IP-addresses and/or network interfaces and curl allows you to select
+ which of them to use. Default address can also be used:
+
+ curl -P - ftp.download.com
+
+ Download with PORT but use the IP address of our 'le0' interface (this does
+ not work on windows):
+
+ curl -P le0 ftp.download.com
+
+ Download with PORT but use 192.168.0.10 as our IP address to use:
+
+ curl -P 192.168.0.10 ftp.download.com
+
+NETWORK INTERFACE
+
+ Get a web page from a server using a specified port for the interface:
+
+ curl --interface eth0:1 http://www.netscape.com/
+
+ or
+
+ curl --interface 192.168.1.10 http://www.netscape.com/
+
+HTTPS
+
+ Secure HTTP requires SSL libraries to be installed and used when curl is
+ built. If that is done, curl is capable of retrieving and posting documents
+ using the HTTPS procotol.
+
+ Example:
+
+ curl https://www.secure-site.com
+
+ Curl is also capable of using your personal certificates to get/post files
+ from sites that require valid certificates. The only drawback is that the
+ certificate needs to be in PEM-format. PEM is a standard and open format to
+ store certificates with, but it is not used by the most commonly used
+ browsers (Netscape and MSEI both use the so called PKCS#12 format). If you
+ want curl to use the certificates you use with your (favourite) browser, you
+ may need to download/compile a converter that can convert your browser's
+ formatted certificates to PEM formatted ones. This kind of converter is
+ included in recent versions of OpenSSL, and for older versions Dr Stephen
+ N. Henson has written a patch for SSLeay that adds this functionality. You
+ can get his patch (that requires an SSLeay installation) from his site at:
+ http://www.drh-consultancy.demon.co.uk/
+
+ Example on how to automatically retrieve a document using a certificate with
+ a personal password:
+
+ curl -E /path/to/cert.pem:password https://secure.site.com/
+
+ If you neglect to specify the password on the command line, you will be
+ prompted for the correct password before any data can be received.
+
+ Many older SSL-servers have problems with SSLv3 or TLS, that newer versions
+ of OpenSSL etc is using, therefore it is sometimes useful to specify what
+ SSL-version curl should use. Use -3 or -2 to specify that exact SSL version
+ to use:
+
+ curl -2 https://secure.site.com/
+
+ Otherwise, curl will first attempt to use v3 and then v2.
+
+ To use OpenSSL to convert your favourite browser's certificate into a PEM
+ 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.
+
+ Select 'certificates->yours' and then pick a certificate in the list
+
+ Press the 'export' button
+
+ enter your PIN code for the certs
+
+ 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:
+
+ # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile]
+
+
+RESUMING FILE TRANSFERS
+
+ To continue a file transfer where it was previously aborted, curl supports
+ resume on http(s) downloads as well as ftp uploads and downloads.
+
+ Continue downloading a document:
+
+ curl -C - -o file ftp://ftp.server.com/path/file
+
+ Continue uploading a document(*1):
+
+ curl -C - -T file ftp://ftp.server.com/path/file
+
+ Continue downloading a document from a web server(*2):
+
+ curl -C - -o file http://www.server.com/
+
+ (*1) = This requires that the ftp server supports the non-standard command
+ SIZE. If it doesn't, curl will say so.
+
+ (*2) = This requires that the web server supports at least HTTP/1.1. If it
+ doesn't, curl will say so.
+
+TIME CONDITIONS
+
+ HTTP allows a client to specify a time condition for the document it
+ requests. It is If-Modified-Since or If-Unmodified-Since. Curl allow you to
+ specify them with the -z/--time-cond flag.
+
+ For example, you can easily make a download that only gets performed if the
+ remote file is newer than a local copy. It would be made like:
+
+ curl -z local.html http://remote.server.com/remote.html
+
+ Or you can download a file only if the local file is newer than the remote
+ one. Do this by prepending the date string with a '-', as in:
+
+ curl -z -local.html http://remote.server.com/remote.html
+
+ You can specify a "free text" date as condition. Tell curl to only download
+ the file if it was updated since yesterday:
+
+ curl -z yesterday http://remote.server.com/remote.html
+
+ Curl will then accept a wide range of date formats. You always make the date
+ check the other way around by prepending it with a dash '-'.
+
+DICT
+
+ For fun try
+
+ curl dict://dict.org/m:curl
+ curl dict://dict.org/d:heisenbug:jargon
+ curl dict://dict.org/d:daniel:web1913
+
+ Aliases for 'm' are 'match' and 'find', and aliases for 'd' are 'define'
+ and 'lookup'. For example,
+
+ curl dict://dict.org/find:curl
+
+ Commands that break the URL description of the RFC (but not the DICT
+ protocol) are
+
+ curl dict://dict.org/show:db
+ curl dict://dict.org/show:strat
+
+ Authentication is still missing (but this is not required by the RFC)
+
+LDAP
+
+ If you have installed the OpenLDAP library, curl can take advantage of it
+ and offer ldap:// support.
+
+ LDAP is a complex thing and writing an LDAP query is not an easy task. I do
+ advice you to dig up the syntax description for that elsewhere. Two places
+ that might suit you are:
+
+ Netscape's "Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10:
+ Working with LDAP URLs":
+ http://developer.netscape.com/docs/manuals/dirsdk/csdk30/url.htm
+
+ RFC 2255, "The LDAP URL Format" http://www.rfc-editor.org/rfc/rfc2255.txt
+
+ To show you an example, this is now I can get all people from my local LDAP
+ server that has a certain sub-domain in their email address:
+
+ curl -B "ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se"
+
+ If I want the same info in HTML format, I can get it by not using the -B
+ (enforce ASCII) flag.
+
+ENVIRONMENT VARIABLES
+
+ Curl reads and understands the following environment variables:
+
+ HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY
+
+ 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
+ set in (only an asterisk, '*' matches all hosts)
+
+ NO_PROXY
+
+ If a tail substring of the domain-path for a host matches one of these
+ strings, transactions with that node will not be proxied.
+
+
+ The usage of the -x/--proxy flag overrides the environment variables.
+
+NETRC
+
+ Unix introduced the .netrc concept a long time ago. It is a way for a user
+ to specify name and password for commonly visited ftp sites in a file so
+ that you don't have to type them in each time you visit those sites. You
+ realize this is a big security risk if someone else gets hold of your
+ passwords, so therefor most unix programs won't read this file unless it is
+ only readable by yourself (curl doesn't care though).
+
+ Curl supports .netrc files if told so (using the -n/--netrc option). This is
+ not restricted to only ftp, but curl can use it for all protocols where
+ authentication is used.
+
+ A very simple .netrc file could look something like:
+
+ machine curl.haxx.se login iamdaniel password mysecret
+
+CUSTOM OUTPUT
+
+ To better allow script programmers to get to know about the progress of
+ curl, the -w/--write-out option was introduced. Using this, you can specify
+ what information from the previous transfer you want to extract.
+
+ To display the amount of bytes downloaded together with some text and an
+ ending newline:
+
+ curl -w 'We downloaded %{size_download} bytes\n' www.download.com
+
+KERBEROS4 FTP TRANSFER
+
+ Curl supports kerberos4 for FTP transfers. You need the kerberos package
+ installed and used at curl build time for it to be used.
+
+ First, get the krb-ticket the normal way, like with the kauth tool. Then use
+ curl in way similar to:
+
+ curl --krb4 private ftp://krb4site.com -u username:fakepwd
+
+ There's no use for a password on the -u switch, but a blank one will make
+ curl ask for one and you already entered the real password to kauth.
+
+TELNET
+
+ The curl telnet support is basic and very easy to use. Curl passes all data
+ passed to it on stdin to the remote server. Connect to a remote telnet
+ server using a command line similar to:
+
+ curl telnet://remote.server.com
+
+ And enter the data to pass to the server on stdin. The result will be sent
+ to stdout or to the file you specify with -o.
+
+ You might want the -N/--no-buffer option to switch off the buffered output
+ for slow connections or similar.
+
+ Pass options to the telnet protocol negotiation, by using the -t option. To
+ tell the server we use a vt100 terminal, try something like:
+
+ curl -tTTYPE=vt100 telnet://remote.server.com
+
+ Other interesting options for it -t include:
+
+ - XDISPLOC=<X display> Sets the X display location.
+
+ - NEW_ENV=<var,val> Sets an environment variable.
+
+ NOTE: the telnet protocol does not specify any way to login with a specified
+ user and password so curl can't do that automatically. To do that, you need
+ to track when the login prompt is received and send the username and
+ password accordingly.
+
+PERSISTANT CONNECTIONS
+
+ Specifying multiple files on a single command line will make curl transfer
+ all of them, one after the other in the specified order.
+
+ libcurl will attempt to use persistant connections for the transfers so that
+ the second transfer to the same host can use the same connection that was
+ already initiated and was left open in the previous transfer. This greatly
+ decreases connection time for all but the first transfer and it makes a far
+ better use of the network.
+
+ Note that curl cannot use persistant connections for transfers that are used
+ in subsequence curl invokes. Try to stuff as many URLs as possible on the
+ same command line if they are using the same host, as that'll make the
+ transfers faster. If you use a http proxy for file transfers, practicly
+ all transfers will be persistant.
+
+ Persistant connections were introduced in curl 7.7.
+
+MAILING LISTS
+
+ For your convenience, we have several open mailing lists to discuss curl,
+ its development and things relevant to this.
+
+ To subscribe to the main curl list, mail curl-request@contactor.se with
+ "subscribe <fill in your email address>" in the body.
+
+ To subscribe to the curl-library users/deverlopers list, follow the
+ instructions at http://curl.haxx.se/mail/
+
+ To subscribe to the curl-announce list, to only get information about new
+ releases, follow the instructions at http://curl.haxx.se/mail/
+
+ To subscribe to the curl-and-PHP list in which curl using with PHP is
+ discussed, follow the instructions at http://curl.haxx.se/mail/
+
+ Please direct curl questions, feature requests and trouble reports to one of
+ these mailing lists instead of mailing any individual.
diff --git a/Build/source/libs/curl/docs/Makefile.am b/Build/source/libs/curl/docs/Makefile.am
new file mode 100644
index 00000000000..fd477dabb80
--- /dev/null
+++ b/Build/source/libs/curl/docs/Makefile.am
@@ -0,0 +1,32 @@
+#
+# $Id: Makefile.am,v 1.19 2002/03/07 08:29:24 bagder Exp $
+#
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+man_MANS = \
+ curl.1 \
+ curl-config.1
+
+HTMLPAGES = \
+ curl.html \
+ curl-config.html
+
+SUBDIRS = examples libcurl
+
+EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS \
+ README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS \
+ VERSIONS KNOWN_BUGS $(man_MANS) $(HTMLPAGES)
+
+MAN2HTML= gnroff -man $< | man2html >$@
+
+SUFFIXES = .1 .3 .html
+
+html: $(HTMLPAGES)
+ cd libcurl; make html
+
+.3.html:
+ $(MAN2HTML)
+
+.1.html:
+ $(MAN2HTML)
diff --git a/Build/source/libs/curl/docs/Makefile.in b/Build/source/libs/curl/docs/Makefile.in
new file mode 100644
index 00000000000..0616c5b883e
--- /dev/null
+++ b/Build/source/libs/curl/docs/Makefile.in
@@ -0,0 +1,430 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# $Id: Makefile.am,v 1.19 2002/03/07 08:29:24 bagder Exp $
+#
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IPV6_ENABLED = @IPV6_ENABLED@
+KRB4_ENABLED = @KRB4_ENABLED@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+NROFF = @NROFF@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OPENSSL_ENABLED = @OPENSSL_ENABLED@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PKGADD_NAME = @PKGADD_NAME@
+PKGADD_PKG = @PKGADD_PKG@
+PKGADD_VENDOR = @PKGADD_VENDOR@
+RANDOM_FILE = @RANDOM_FILE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VERSIONNUM = @VERSIONNUM@
+YACC = @YACC@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+man_MANS = \
+ curl.1 \
+ curl-config.1
+
+
+HTMLPAGES = \
+ curl.html \
+ curl-config.html
+
+
+SUBDIRS = examples libcurl
+
+EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS \
+ README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS \
+ VERSIONS KNOWN_BUGS $(man_MANS) $(HTMLPAGES)
+
+
+MAN2HTML = gnroff -man $< | man2html >$@
+
+SUFFIXES = .1 .3 .html
+subdir = docs
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/lib/config.h \
+ $(top_builddir)/src/config.h \
+ $(top_builddir)/tests/server/config.h
+CONFIG_CLEAN_FILES =
+depcomp =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES =
+
+NROFF = nroff
+MANS = $(man_MANS)
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+ uninstall-info-recursive all-recursive install-data-recursive \
+ install-exec-recursive installdirs-recursive install-recursive \
+ uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = INSTALL Makefile.am Makefile.in THANKS TODO
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .1 .3 .html
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+
+man1dir = $(mandir)/man1
+install-man1: $(man1_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ done
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(MANS)
+installdirs: installdirs-recursive
+installdirs-am:
+ $(mkinstalldirs) $(DESTDIR)$(man1dir)
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+
+distclean-am: clean-am distclean-generic distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-man
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man: install-man1
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am uninstall-man
+
+uninstall-info: uninstall-info-recursive
+
+uninstall-man: uninstall-man1
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive distclean \
+ distclean-generic distclean-libtool distclean-recursive \
+ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
+ info-recursive install install-am install-data install-data-am \
+ install-data-recursive install-exec install-exec-am \
+ install-exec-recursive install-info install-info-am \
+ install-info-recursive install-man install-man1 \
+ install-recursive install-strip installcheck installcheck-am \
+ installdirs installdirs-am installdirs-recursive \
+ maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \
+ uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-man uninstall-man1 \
+ uninstall-recursive
+
+
+html: $(HTMLPAGES)
+ cd libcurl; make html
+
+.3.html:
+ $(MAN2HTML)
+
+.1.html:
+ $(MAN2HTML)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Build/source/libs/curl/docs/README.win32 b/Build/source/libs/curl/docs/README.win32
new file mode 100644
index 00000000000..5b6db308775
--- /dev/null
+++ b/Build/source/libs/curl/docs/README.win32
@@ -0,0 +1,22 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+README.win32
+
+ Read the README file first.
+
+ Curl has been compiled, built and run on all sorts of Windows and win32
+ systems. While not being the main develop target, a fair share of curl users
+ are win32-based.
+
+ The unix-style man pages are tricky to read on windows, so therefore are all
+ those pages also converted to HTML and those are also included in the
+ release archives.
+
+ The main curl.1 man page is also "built-in" in the command line tool. Use a
+ command line similar to this in order to extract a separate text file:
+
+ curl -M >manual.txt
diff --git a/Build/source/libs/curl/docs/RESOURCES b/Build/source/libs/curl/docs/RESOURCES
new file mode 100644
index 00000000000..05cef4228d2
--- /dev/null
+++ b/Build/source/libs/curl/docs/RESOURCES
@@ -0,0 +1,125 @@
+ _ _ ____ _
+ Project ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+
+This document has been introduced in order to let you find documents that
+specify standards used by curl, software that extends curl, web pages with
+"competing" utilities and information pages that describe some of the tools
+that we use to build/compile/develop curl.
+
+Standards
+---------
+
+ RFC 959 - Defines how FTP works
+
+ RFC 1635 - How to Use Anonymous FTP
+
+ RFC 1738 - Uniform Resource Locators
+
+ RFC 1777 - defines the LDAP protocol
+
+ RFC 1808 - Relative Uniform Resource Locators
+
+ RFC 1867 - Form-based File Upload in HTML
+
+ RFC 1950 - ZLIB Compressed Data Format Specification
+
+ RFC 1951 - DEFLATE Compressed Data Format Specification
+
+ RFC 1952 - gzip compression format
+
+ RFC 1959 - LDAP URL syntax
+
+ RFC 2045-2049 - Everything you need to know about MIME! (needed for form
+ based upload)
+
+ RFC 2068 - HTTP 1.1 (obsoleted by RFC 2616)
+
+ RFC 2109 - HTTP State Management Mechanism (cookie stuff)
+ - Also, read Netscape's specification at
+ http://curl.haxx.se/rfc/cookie_spec.html
+
+ RFC 2183 - The Content-Disposition Header Field
+
+ RFC 2229 - A Dictionary Server Protocol
+
+ RFC 2255 - Newer LDAP URL syntax document.
+
+ RFC 2231 - MIME Parameter Value and Encoded Word Extensions:
+ Character Sets, Languages, and Continuations
+
+ RFC 2388 - "Returning Values from Forms: multipart/form-data"
+ 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
+ I've left it in this list.
+
+ RFC 2428 - FTP Extensions for IPv6 and NATs
+
+ RFC 2577 - FTP Security Considerations
+
+ RFC 2616 - HTTP 1.1, the latest
+
+ 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
+
+Compilers
+---------
+ MingW32 - http://www.mingw.org/
+
+ gcc - http://www.gnu.org/software/gcc/gcc.html
+
+Software
+--------
+ OpenSSL - http://www.openssl.org/
+
+ OpenLDAP - http://www.openldap.org/
+
+ zlib - http://www.cdrom.com/pub/infozip/zlib/
+
+Similar Tools
+-------------
+ wget - http://sunsite.dk/wget/
+
+ snarf - http://www.xach.com/snarf/
+
+ lynx - http://lynx.browser.org/ (well at least when -dump is used)
+
+ swebget - http://www.uni-hildesheim.de/~smol0075/swebget/
+
+ Kermit - http://www.columbia.edu/kermit/ftpclient
+
+ Pavuk - http://www.idata.sk/~ondrej/pavuk/
+
+ httpr - http://zwolak.dhs.org/httpr/
+
+ puf - http://www.inf.tu-dresden.de/~ob6/sw/puf.html
+
+Related Software
+----------------
+ ftpparse - http://cr.yp.to/ftpparse.html parses FTP LIST responses
+
+ autoconf - http://www.gnu.org/software/autoconf/autoconf.html
+
+ automake - http://www.gnu.org/software/automake/automake.html
+
+ bison - http://www.gnu.org/software/bison/bison.html
+
+ gzip - http://www.gnu.org/software/gzip/gzip.html
+
+ tar - http://www.gnu.org/software/tar/tar.html
+
+ libtool - http://www.gnu.org/software/libtool/libtool.html
diff --git a/Build/source/libs/curl/docs/THANKS b/Build/source/libs/curl/docs/THANKS
new file mode 100644
index 00000000000..f2e84fc57b4
--- /dev/null
+++ b/Build/source/libs/curl/docs/THANKS
@@ -0,0 +1,81 @@
+This project has been alive for several years. Countless people have provided
+feedback that have improved curl. Here follows a (incomplete) list of people
+that have contributed with non-trivial parts:
+
+ - Daniel Stenberg <daniel@haxx.se>
+ - Rafael Sagula <sagula@inf.ufrgs.br>
+ - Sampo Kellomaki <sampo@iki.fi>
+ - Linas Vepstas <linas@linas.org>
+ - Bjorn Reese <breese@mail1.stofanet.dk>
+ - Johan Anderson <johan@homemail.com>
+ - Kjell Ericson <Kjell.Ericson@haxx.se>
+ - Troy Engel <tengel@sonic.net>
+ - Ryan Nelson <ryan@inch.com>
+ - Björn Stenberg <bjorn@haxx.se>
+ - Angus Mackay <amackay@gus.ml.org>
+ - Eric Young <eay@cryptsoft.com>
+ - Simon Dick <simond@totally.irrelevant.org>
+ - Oren Tirosh <oren@monty.hishome.net>
+ - Steven G. Johnson <stevenj@alum.mit.edu>
+ - Gilbert Ramirez Jr. <gram@verdict.uthscsa.edu>
+ - Andrés García <ornalux@redestb.es>
+ - Douglas E. Wegscheid <wegscd@whirlpool.com>
+ - Mark Butler <butlerm@xmission.com>
+ - Eric Thelin <eric@generation-i.com>
+ - Marc Boucher <marc@mbsi.ca>
+ - Greg Onufer <Greg.Onufer@Eng.Sun.COM>
+ - Doug Kaufman <dkaufman@rahul.net>
+ - David Eriksson <david@2good.com>
+ - Ralph Beckmann <rabe@uni-paderborn.de>
+ - T. Yamada <tai@imasy.or.jp>
+ - Lars J. Aas <larsa@sim.no>
+ - Jörn Hartroth <Joern.Hartroth@computer.org>
+ - Matthew Clarke <clamat@van.maves.ca>
+ - Linus Nielsen Feltzing <linus@haxx.se>
+ - Felix von Leitner <felix@convergence.de>
+ - Dan Zitter <dzitter@zitter.net>
+ - Jongki Suwandi <Jongki.Suwandi@eng.sun.com>
+ - Chris Maltby <chris@aurema.com>
+ - Ron Zapp <rzapper@yahoo.com>
+ - Paul Marquis <pmarquis@iname.com>
+ - Ellis Pritchard <ellis@citria.com>
+ - Damien Adant <dams@usa.net>
+ - Chris <cbayliss@csc.come>
+ - Marco G. Salvagno <mgs@whiz.cjb.net>
+ - Paul Marquis <pmarquis@iname.com>
+ - David LeBlanc <dleblanc@qnx.com>
+ - Rich Gray at Plus Technologies
+ - Luong Dinh Dung <u8luong@lhsystems.hu>
+ - Torsten Foertsch <torsten.foertsch@gmx.net>
+ - Kristian Köhntopp <kris@koehntopp.de>
+ - Fred Noz <FNoz@siac.com>
+ - Caolan McNamara <caolan@csn.ul.ie>
+ - Albert Chin-A-Young <china@thewrittenword.com>
+ - Stephen Kick <skick@epicrealm.com>
+ - Martin Hedenfalk <mhe@stacken.kth.se>
+ - Richard Prescott <rip at step.polymtl.ca>
+ - Jason S. Priebe <priebe@wral-tv.com>
+ - T. Bharath <TBharath@responsenetworks.com>
+ - Alexander Kourakos <awk@users.sourceforge.net>
+ - James Griffiths <griffiths_james@yahoo.com>
+ - Loic Dachary <loic@senga.org>
+ - Robert Weaver <robert.weaver@sabre.com>
+ - Ingo Ralf Blum <ingoralfblum@ingoralfblum.com>
+ - Jun-ichiro itojun Hagino <itojun@iijlab.net>
+ - Frederic Lepied <flepied@mandrakesoft.com>
+ - Georg Horn <horn@koblenz-net.de>
+ - Cris Bailiff <c.bailiff@awayweb.com>
+ - Sterling Hughes <sterling@designmultimedia.com>
+ - S. Moonesamy
+ - Ingo Wilken <iw@WWW.Ecce-Terram.DE>
+ - Pawel A. Gajda <mis@k2.net.pl>
+ - Patrick Bihan-Faou
+ - Nico Baggus <Nico.Baggus@mail.ing.nl>
+ - Sergio Ballestrero
+ - Andrew Francis <locust@familyhealth.com.au>
+ - Tomasz Lacki <Tomasz.Lacki@primark.pl>
+ - Georg Huettenegger <georg@ist.org>
+ - John Lask <johnlask@hotmail.com>
+ - Eric Lavigne <erlavigne@wanadoo.fr>
+ - Marcus Webster <marcus.webster@phocis.com>
+ - Götz Babin-Ebell <babin­ebell@trustcenter.de>
diff --git a/Build/source/libs/curl/docs/TODO b/Build/source/libs/curl/docs/TODO
new file mode 100644
index 00000000000..53bbc154704
--- /dev/null
+++ b/Build/source/libs/curl/docs/TODO
@@ -0,0 +1,204 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+TODO
+
+ Things to do in project cURL. Please tell me what you think, contribute and
+ send me patches that improve things! Also check the http://curl.haxx.se/dev
+ web section for various development notes.
+
+ LIBCURL
+
+ * Consider an interface to libcurl that allows applications to easier get to
+ know what cookies that are sent back in the response headers.
+
+ * Make content encoding/decoding internally be made using a filter system.
+
+ * The new 'multi' interface is being designed. Work out the details, start
+ implementing and write test applications!
+ [http://curl.haxx.se/lxr/source/lib/multi.h]
+
+ * Introduce another callback interface for upload/download that makes one
+ less copy of data and thus a faster operation.
+ [http://curl.haxx.se/dev/no_copy_callbacks.txt]
+
+ * Add configure options that disables certain protocols in libcurl to
+ decrease footprint. '--disable-[protocol]' where protocol is http, ftp,
+ telnet, ldap, dict or file.
+
+ * Add asynchronous name resolving. http://curl.haxx.se/dev/async-resolver.txt
+ This should be made to work on most of the supported platforms, or
+ otherwise it isn't really interesting.
+
+ * Data sharing. Tell which easy handles within a multi handle that should
+ share cookies, connection cache, dns cache, ssl session cache.
+
+ * Mutexes. By adding mutex callback support, the 'data sharing' mentioned
+ above can be made between several easy handles running in different threads
+ too. The actual mutex implementations will be left for the application to
+ implement, libcurl will merely call 'getmutex' and 'leavemutex' callbacks.
+
+ * No-faster-then-this transfers. Many people have limited bandwidth and they
+ want the ability to make sure their transfers never use more bandwith than
+ they think is good.
+
+ * Set the SO_KEEPALIVE socket option to make libcurl notice and disconnect
+ very long time idle connections.
+
+ * Make sure we don't ever loop because of non-blocking sockets return
+ EWOULDBLOCK or similar. This concerns the HTTP request sending (and
+ especially regular HTTP POST), the FTP command sending etc.
+
+ * Go through the code and verify that libcurl deals with big files >2GB and
+ >4GB all over. Bug reports indicate that it doesn't currently work
+ properly.
+
+ DOCUMENTATION
+
+ * Document all CURLcode error codes, why they happen and what most likely
+ will make them not happen again. In a libcurl point of view.
+
+ FTP
+
+ * FTP ASCII upload does not follow RFC959 section 3.1.1.1: "The sender
+ converts the data from an internal character representation to the standard
+ 8-bit NVT-ASCII representation (see the Telnet specification). The
+ receiver will convert the data from the standard form to his own internal
+ form."
+
+ * An option to only download remote FTP files if they're newer than the local
+ one is a good idea, and it would fit right into the same syntax as the
+ already working http dito works. It of course requires that 'MDTM' works,
+ and it isn't a standard FTP command.
+
+ * Add FTPS support with SSL for the data connection too.
+
+ HTTP
+
+ * Make it possible to supply normal POST data through the ordinary read data
+ callback.
+
+ * HTTP PUT for files passed on stdin *OR* when the --crlf option is
+ used. Requires libcurl to send the file with chunked content
+ encoding. [http://curl.haxx.se/dev/HTTP-PUT-stdin.txt] When the filter
+ system mentioned above gets real, it'll be a piece of cake to add.
+
+ * Pass a list of host name to libcurl to which we allow the user name and
+ password to get sent to. Currently, it only get sent to the host name that
+ the first URL uses (to prevent others from being able to read it), but this
+ also prevents the authentication info from getting sent when following
+ locations to legitimate other host names.
+
+ * "Content-Encoding: compress/gzip/zlib" HTTP 1.1 clearly defines how to get
+ and decode compressed documents. There is the zlib that is pretty good at
+ decompressing stuff. This work was started in October 1999 but halted again
+ since it proved more work than we thought. It is still a good idea to
+ implement though. This requires the filter system mentioned above.
+
+ * Authentication: NTLM. Support for that MS crap called NTLM
+ authentication. MS proxies and servers sometime require that. Since that
+ protocol is a proprietary one, it involves reverse engineering and network
+ sniffing. This should however be a library-based functionality. There are a
+ few different efforts "out there" to make open source HTTP clients support
+ this and it should be possible to take advantage of other people's hard
+ work. http://modntlm.sourceforge.net/ is one. There's a web page at
+ http://www.innovation.ch/java/ntlm.html that contains detailed reverse-
+ engineered info.
+
+ * RFC2617 compliance, "Digest Access Authentication" A valid test page seem
+ to exist at: http://hopf.math.nwu.edu/testpage/digest/ And some friendly
+ person's server source code is available at
+ http://hopf.math.nwu.edu/digestauth/index.html Then there's the Apache
+ mod_digest source code too of course. It seems as if Netscape doesn't
+ support this, and not many servers do. Although this is a lot better
+ authentication method than the more common "Basic". Basic sends the
+ password in cleartext over the network, this "Digest" method uses a
+ challange-response protocol which increases security quite a lot.
+
+ * Pipelining. Sending multiple requests before the previous one(s) are done.
+ This could possibly be implemented using the multi interface to queue
+ requests and the response data.
+
+ TELNET
+
+ * Make TELNET work on windows98!
+
+ * Reading input (to send to the remote server) on stdin is a crappy solution
+ for library purposes. We need to invent a good way for the application to
+ be able to provide the data to send.
+
+ * Move the telnet support's network select() loop go away and merge the code
+ into the main transfer loop. Until this is done, the multi interface won't
+ work for telnet.
+
+ SSL
+
+ * If you really want to improve the SSL situation, you should probably have a
+ look at SSL cafile loading as well - quick traces look to me like these are
+ done on every request as well, when they should only be necessary once per
+ ssl context (or once per handle). Even better would be to support the SSL
+ CAdir option - instead of loading all of the root CA certs for every
+ request, this option allows you to only read the CA chain that is actually
+ required (into the cache)...
+
+ * Add an interface to libcurl that enables "session IDs" to get
+ exported/imported. Cris Bailiff said: "OpenSSL has functions which can
+ serialise the current SSL state to a buffer of your choice, and
+ recover/reset the state from such a buffer at a later date - this is used
+ by mod_ssl for apache to implement and SSL session ID cache". This whole
+ idea might become moot if we enable the 'data sharing' as mentioned in the
+ LIBCURL label above.
+
+ * OpenSSL supports a callback for customised verification of the peer
+ certificate, but this doesn't seem to be exposed in the libcurl APIs. Could
+ it be? There's so much that could be done if it were! (brought by Chris
+ Clark)
+
+ * Make curl's SSL layer option capable of using other free SSL libraries.
+ Such as the Mozilla Security Services
+ (http://www.mozilla.org/projects/security/pki/nss/) and GNUTLS
+ (http://gnutls.hellug.gr/)
+
+ LDAP
+
+ * Look over the implementation. The looping will have to "go away" from the
+ lib/ldap.c source file and get moved to the main network code so that the
+ multi interface and friends will work for LDAP as well.
+
+ CLIENT
+
+ * "curl ftp://site.com/*.txt"
+
+ * Several URLs can be specified to get downloaded. We should be able to use
+ the same syntax to specify several files to get uploaded (using the same
+ persistant connection), using -T.
+
+ * When the multi interface has been implemented and proved to work, the
+ client could be told to use maximum N simultaneous transfers and then just
+ make sure that happens. It should of course not make more than one
+ connection to the same remote host.
+
+ * Extending the capabilities of the multipart formposting. How about leaving
+ the ';type=foo' syntax as it is and adding an extra tag (headers) which
+ works like this: curl -F "coolfiles=@fil1.txt;headers=@fil1.hdr" where
+ fil1.hdr contains extra headers like
+
+ Content-Type: text/plain; charset=KOI8-R"
+ Content-Transfer-Encoding: base64
+ X-User-Comment: Please don't use browser specific HTML code
+
+ which should overwrite the program reasonable defaults (plain/text,
+ 8bit...) (Idea brough to us by kromJx)
+
+ TEST SUITE
+
+ * Extend the test suite to include more protocols. The telnet could just do
+ ftp or http operations (for which we have test servers).
+
+ * Make the test suite work on more platforms. OpenBSD and Mac OS. Remove
+ fork()s and it should become even more portable.
+
+ * Introduce a test suite that tests libcurl better and more explicitly.
diff --git a/Build/source/libs/curl/docs/TheArtOfHttpScripting b/Build/source/libs/curl/docs/TheArtOfHttpScripting
new file mode 100644
index 00000000000..c85fe9220b5
--- /dev/null
+++ b/Build/source/libs/curl/docs/TheArtOfHttpScripting
@@ -0,0 +1,378 @@
+Online: http://curl.haxx.se/docs/httpscripting.shtml
+Author: Daniel Stenberg <daniel@haxx.se>
+Date: October 31, 2001
+Version: 0.5
+
+ The Art Of Scripting HTTP Requests Using Curl
+ =============================================
+
+ This document will assume that you're familiar with HTML and general
+ networking.
+
+ The possibility to write scripts is essential to make a good computer
+ system. Unix' capability to be extended by shell scripts and various tools to
+ run various automated commands and scripts is one reason why it has succeeded
+ so well.
+
+ The increasing amount of applications moving to the web has made "HTTP
+ Scripting" more frequently requested and wanted. To be able to automatically
+ extract information from the web, to fake users, to post or upload data to
+ web servers are all important tasks today.
+
+ Curl is a command line tool for doing all sorts of URL manipulations and
+ transfers, but this particular document will focus on how to use it when
+ doing HTTP requests for fun and profit. I'll assume that you know how to
+ invoke 'curl --help' or 'curl --manual' to get basic information about it.
+
+ Curl is not written to do everything for you. It makes the requests, it gets
+ the data, it sends data and it retrieves the information. You probably need
+ to glue everything together using some kind of script language or repeated
+ manual invokes.
+
+1. The HTTP Protocol
+
+ HTTP is the protocol used to fetch data from web servers. It is a very simple
+ protocol that is built upon TCP/IP. The protocol also allows information to
+ get sent to the server from the client using a few different methods, as will
+ be shown here.
+
+ HTTP is plain ASCII text lines being sent by the client to a server to
+ request a particular action, and then the server replies a few text lines
+ before the actual requested content is sent to the client.
+
+ Using curl's option -v will display what kind of commands curl sends to the
+ server, as well as a few other informational texts. -v is the single most
+ useful option when it comes to debug or even understand the curl<->server
+ interaction.
+
+2. URL
+
+ The Uniform Resource Locator format is how you specify the address of a
+ particular resource on the Internet. You know these, you've seen URLs like
+ http://curl.haxx.se or https://yourbank.com a million times.
+
+3. GET a page
+
+ The simplest and most common request/operation made using HTTP is to get a
+ URL. The URL could itself refer to a web page, an image or a file. The client
+ issues a GET request to the server and receives the document it asked for.
+ If you issue the command line
+
+ curl http://curl.haxx.se
+
+ you get a web page returned in your terminal window. The entire HTML document
+ that that URL holds.
+
+ All HTTP replies contain a set of headers that are normally hidden, use
+ curl's -i option to display them as well as the rest of the document. You can
+ also ask the remote server for ONLY the headers by using the -I option.
+
+4. Forms
+
+ Forms are the general way a web site can present a HTML page with fields for
+ the user to enter data in, and then press some kind of 'OK' or 'submit'
+ button to get that data sent to the server. The server then typically uses
+ the posted data to decide how to act. Like using the entered words to search
+ in a database, or to add the info in a bug track system, display the entered
+ address on a map or using the info as a login-prompt verifying that the user
+ is allowed to see what it is about to see.
+
+ Of course there has to be some kind of program in the server end to receive
+ the data you send. You cannot just invent something out of the air.
+
+ 4.1 GET
+
+ A GET-form uses the method GET, as specified in HTML like:
+
+ <form method="GET" action="junk.cgi">
+ <input type=text name="birthyear">
+ <input type=submit name=press value="OK">
+ </form>
+
+ In your favorite browser, this form will appear with a text box to fill in
+ and a press-button labeled "OK". If you fill in '1905' and press the OK
+ button, your browser will then create a new URL to get for you. The URL will
+ get "junk.cgi?birthyear=1905&press=OK" appended to the path part of the
+ previous URL.
+
+ If the original form was seen on the page "www.hotmail.com/when/birth.html",
+ the second page you'll get will become
+ "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK".
+
+ Most search engines work this way.
+
+ To make curl do the GET form post for you, just enter the expected created
+ URL:
+
+ curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
+
+ 4.2 POST
+
+ The GET method makes all input field names get displayed in the URL field of
+ your browser. That's generally a good thing when you want to be able to
+ bookmark that page with your given data, but it is an obvious disadvantage
+ if you entered secret information in one of the fields or if there are a
+ large amount of fields creating a very long and unreadable URL.
+
+ The HTTP protocol then offers the POST method. This way the client sends the
+ data separated from the URL and thus you won't see any of it in the URL
+ address field.
+
+ The form would look very similar to the previous one:
+
+ <form method="POST" action="junk.cgi">
+ <input type=text name="birthyear">
+ <input type=submit name=press value="OK">
+ </form>
+
+ And to use curl to post this form with the same data filled in as before, we
+ could do it like:
+
+ curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.cgi
+
+ This kind of POST will use the Content-Type
+ application/x-www-form-urlencoded and is the most widely used POST kind.
+
+ 4.3 FILE UPLOAD POST
+
+ Back in late 1995 they defined a new way to post data over HTTP. It was
+ documented in the RFC 1867, why this method sometimes is referred to as
+ a RFC1867-posting.
+
+ This method is mainly designed to better support file uploads. A form that
+ allows a user to upload a file could be written like this in HTML:
+
+ <form method="POST" enctype='multipart/form-data' action="upload.cgi">
+ <input type=file name=upload>
+ <input type=submit name=press value="OK">
+ </form>
+
+ This clearly shows that the Content-Type about to be sent is
+ multipart/form-data.
+
+ To post to a form like this with curl, you enter a command line like:
+
+ curl -F upload=@localfilename -F press=OK [URL]
+
+ 4.4 HIDDEN FIELDS
+
+ A very common way for HTML based application to pass state information
+ between pages is to add hidden fields to the forms. Hidden fields are
+ already filled in, they aren't displayed to the user and they get passed
+ along just as all the other fields.
+
+ A similar example form with one visible field, one hidden field and one
+ submit button could look like:
+
+ <form method="POST" action="foobar.cgi">
+ <input type=text name="birthyear">
+ <input type=hidden name="person" value="daniel">
+ <input type=submit name="press" value="OK">
+ </form>
+
+ To post this with curl, you won't have to think about if the fields are
+ hidden or not. To curl they're all the same:
+
+ curl -d "birthyear=1905&press=OK&person=daniel" [URL]
+
+ 4.5 FIGURE OUT WHAT A POST LOOKS LIKE
+
+ When you're about fill in a form and send to a server by using curl instead
+ of a browser, you're of course very interested in sending a POST exactly the
+ way your browser does.
+
+ An easy way to get to see this, is to save the HTML page with the form on
+ your local disk, modify the 'method' to a GET, and press the submit button
+ (you could also change the action URL if you want to).
+
+ You will then clearly see the data get appended to the URL, separated with a
+ '?'-letter as GET forms are supposed to.
+
+5. PUT
+
+ The perhaps best way to upload data to a HTTP server is to use PUT. Then
+ again, this of course requires that someone put a program or script on the
+ server end that knows how to receive a HTTP PUT stream.
+
+ Put a file to a HTTP server with curl:
+
+ curl -T uploadfile www.uploadhttp.com/receive.cgi
+
+6. AUTHENTICATION
+
+ Authentication is the ability to tell the server your username and password
+ so that it can verify that you're allowed to do the request you're doing. The
+ basic authentication used in HTTP is *plain* *text* based, which means it
+ sends username and password only slightly obfuscated, but still fully
+ readable by anyone that sniffs on the network between you and the remote
+ server.
+
+ To tell curl to use a user and password for authentication:
+
+ curl -u name:password www.secrets.com
+
+ 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
+ the Internet. To specify those with curl, run something like:
+
+ curl -U proxyuser:proxypassword curl.haxx.se
+
+ If you use any one these user+password options but leave out the password
+ part, curl will prompt for the password interactively.
+
+ Do note that when a program is run, its parameters are possible to see when
+ listing the running processes of the system. Thus, other users may be able to
+ watch your passwords if you pass them as plain command line options. There
+ are ways to circumvent this.
+
+7. REFERER
+
+ A HTTP request may include a 'referer' field, which can be used to tell from
+ which URL the client got to this particular resource. Some programs/scripts
+ check the referer field of requests to verify that this wasn't arriving from
+ an external site or an unknown page. While this is a stupid way to check
+ something so easily forged, many scripts still do it. Using curl, you can put
+ anything you want in the referer-field and thus more easily be able to fool
+ the server into serving your request.
+
+ Use curl to set the referer field with:
+
+ curl -e http://curl.haxx.se daniel.haxx.se
+
+8. USER AGENT
+
+ Very similar to the referer field, all HTTP requests may set the User-Agent
+ field. It names what user agent (client) that is being used. Many
+ applications use this information to decide how to display pages. Silly web
+ programmers try to make different pages for users of different browsers to
+ make them look the best possible for their particular browsers. They usually
+ also do different kinds of javascript, vbscript etc.
+
+ At times, you will see that getting a page with curl will not return the same
+ page that you see when getting the page with your browser. Then you know it
+ is time to set the User Agent field to fool the server into thinking you're
+ one of those browsers.
+
+ To make curl look like Internet Explorer on a Windows 2000 box:
+
+ curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL]
+
+ Or why not look like you're using Netscape 4.73 on a Linux (PIII) box:
+
+ curl -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
+
+9. REDIRECTS
+
+ When a resource is requested from a server, the reply from the server may
+ include a hint about where the browser should go next to find this page, or a
+ new page keeping newly generated output. The header that tells the browser
+ to redirect is Location:.
+
+ Curl does not follow Location: headers by default, but will simply display
+ 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:
+
+ curl -L www.sitethatredirects.com
+
+ If you use curl to POST to a site that immediately redirects you to another
+ page, you can safely use -L and -d/-F together. Curl will only use POST in
+ the first request, and then revert to GET in the following operations.
+
+10. COOKIES
+
+ The way the web browsers do "client side state control" is by using
+ cookies. Cookies are just names with associated contents. The cookies are
+ sent to the client by the server. The server tells the client for what path
+ and host name it wants the cookie sent back, and it also sends an expiration
+ date and a few more properties.
+
+ When a client communicates with a server with a name and path as previously
+ specified in a received cookie, the client sends back the cookies and their
+ contents to the server, unless of course they are expired.
+
+ Many applications and servers use this method to connect a series of requests
+ into a single logical session. To be able to use curl in such occasions, we
+ must be able to record and send back cookies the way the web application
+ expects them. The same way browsers deal with them.
+
+ The simplest way to send a few cookies to the server when getting a page with
+ curl is to add them on the command line like:
+
+ curl -b "name=Daniel" www.cookiesite.com
+
+ Cookies are sent as common HTTP headers. This is practical as it allows curl
+ to record cookies simply by recording headers. Record cookies with curl by
+ using the -D option like:
+
+ curl -D headers_and_cookies www.cookiesite.com
+
+ Curl has a full blown cookie parsing engine built-in that comes to use if you
+ want to reconnect to a server and use cookies that were stored from a
+ previous connection (or handicrafted manually to fool the server into
+ believing you had a previous connection). To use previously stored cookies,
+ you run curl like:
+
+ curl -b stored_cookies_in_file www.cookiesite.com
+
+ Curl's "cookie engine" gets enabled when you use the -b option. If you only
+ want curl to understand received cookies, use -b with a file that doesn't
+ exist. Example, if you want to let curl understand cookies from a page and
+ follow a location (and thus possibly send back cookies it received), you can
+ invoke it like:
+
+ curl -b nada -L www.cookiesite.com
+
+ Curl has the ability to read and write cookie files that use the same file
+ format that Netscape and Mozilla do. It is a convenient way to share cookies
+ between browsers and automatic scripts. The -b switch automatically detects
+ if a given file is such a cookie file and parses it, and by using the
+ -c/--cookie-jar option you'll make curl write a new cookie file at the end of
+ an operation:
+
+ curl -b cookies.txt -c newcookies.txt www.cookiesite.com
+
+11. HTTPS
+
+ There are a few ways to do secure HTTP transfers. The by far most common
+ protocol for doing this is what is generally known as HTTPS, HTTP over
+ SSL. SSL encrypts all the data that is sent and received over the network and
+ thus makes it harder for attackers to spy on sensitive information.
+
+ SSL (or TLS as the latest version of the standard is called) offers a
+ truckload of advanced features to allow all those encryptions and key
+ infrastructure mechanisms encrypted HTTP requires.
+
+ Curl supports encrypted fetches thanks to the freely available OpenSSL
+ libraries. To get a page from a HTTPS server, simply run curl like:
+
+ curl https://that.secure.server.com
+
+ 11.1 CERTIFICATES
+
+ In the HTTPS world, you use certificates to validate that you are the one
+ you you claim to be, as an addition to normal passwords. Curl supports
+ client-side certificates. All certificates are locked with a PIN-code, why
+ you need to enter the unlock-code before the certificate can be used by
+ curl. The PIN-code can be specified on the command line or if not, entered
+ interactively when curl queries for it. Use a certificate with curl on a
+ HTTPS server like:
+
+ curl -E mycert.pem https://that.secure.server.com
+
+12. REFERENCES
+
+ RFC 2616 is a must to read if you want in-depth understanding of the HTTP
+ protocol.
+
+ RFC 2396 explains the URL syntax.
+
+ RFC 2109 defines how cookies are supposed to work.
+
+ RFC 1867 defines the HTTP post upload format.
+
+ http://www.openssl.org is the home of the OpenSSL project
+
+ http://curl.haxx.se is the home of the cURL project
diff --git a/Build/source/libs/curl/docs/VERSIONS b/Build/source/libs/curl/docs/VERSIONS
new file mode 100644
index 00000000000..01455717e89
--- /dev/null
+++ b/Build/source/libs/curl/docs/VERSIONS
@@ -0,0 +1,64 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+Version Numbers and Releases
+
+ Curl is not only curl. Curl is also libcurl. They're actually individually
+ versioned, but they mostly follow each other rather closely.
+
+ The version numbering is always built up using the same system:
+
+ X.Y[.Z][-preN]
+
+ Where
+ X is main version number
+ Y is release number
+ Z is patch number
+ N is pre-release number
+
+ One of these numbers will get bumped in each new release. The numbers to the
+ right of a bumped number will be reset to zero. If Z is zero, it is not
+ included in the version number. The pre release number is only included in
+ pre releases (they're never used in public, official, releases).
+
+ The main version number will get bumped when *really* big, world colliding
+ changes are made. The release number is bumped when big changes are
+ performed. The patch number is bumped when the changes are mere bugfixes and
+ only minor feature changes. The pre-release is a counter, to identify which
+ pre-release a certain release is.
+
+ When reaching the end of a pre-release period, the version without the
+ pre-release part will be released as a public release.
+
+ It means that after release 1.2.3, we can release 2.0 if something really big
+ has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs
+ were fixed. Before 1.2.4 is released, we might release a 1.2.4-pre1 release
+ for the brave people to try before the actual release.
+
+ Bumping, as in increasing the number with 1, is unconditionally only
+ affecting one of the numbers (except the ones to the right of it, that may be
+ set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99
+ becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come.
+
+ All original curl source release archives are named according to the libcurl
+ version (not according to the curl client version that, as said before, might
+ differ).
+
+ As a service to any application that might want to support new libcurl
+ features while still being able to build with older versions, all releases
+ have the libcurl version stored in the curl/curl.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
+ hexadecimal. All three numbers are always represented using two digits. 1.2
+ would appear as "0x010200" while version 9.11.7 appears as "0x090b07".
+
+ This 6-digit hexadecimal number does not show pre-release number, and it is
+ always a greater number in a more recent release. It makes comparisons with
+ greater than and less than work.
diff --git a/Build/source/libs/curl/docs/curl-config.1 b/Build/source/libs/curl/docs/curl-config.1
new file mode 100644
index 00000000000..5533abf15aa
--- /dev/null
+++ b/Build/source/libs/curl/docs/curl-config.1
@@ -0,0 +1,62 @@
+.\" You can view this file with:
+.\" nroff -man curl-config.1
+.\" Written by Daniel Stenberg
+.\"
+.TH curl-config 1 "21 January 2002" "Curl 7.9.3" "curl-config manual"
+.SH NAME
+curl-config \- Get information about a libcurl installation
+.SH SYNOPSIS
+.B curl-config [options]
+.SH DESCRIPTION
+.B curl-config
+displays information about a previous curl and libcurl installation.
+.SH OPTIONS
+.IP "--cc"
+Displays the compiler used to build libcurl.
+.IP "--cflags"
+Set of compiler options (CFLAGS) to use when compiling files that use
+libcurl. Currently that is only thw include path to the curl include files.
+.IP "--feature"
+Lists what particular main features the installed libcurl was built with. At
+the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume
+any particular order. The keywords will be separated by newlines. There may be
+none, one or several keywords in the list.
+.IP "--help"
+Displays the available options.
+.IP "--libs"
+Shows the complete set of libs and other linker options you will need in order
+to link your application with libcurl.
+.IP "--prefix"
+This is the prefix used when libcurl was installed. Libcurl is then installed
+in $prefix/lib and its header files are installed in $prefix/include and so
+on. The prefix is set with "configure --prefix".
+.IP "--version"
+Outputs version information about the installed libcurl.
+.IP "--vernum"
+Outputs version information about the installed libcurl, in numerical mode.
+This outputs the version number, in hexadecimal, with 8 bits for each part;
+major, minor, patch. So that libcurl 7.7.4 would appear as 070704 and libcurl
+12.13.14 would appear as 0c0d0e...
+.SH "EXAMPLES"
+What linker options do I need when I link with libcurl?
+
+ $ curl-config --libs
+
+What compiler options do I need when I compile using libcurl functions?
+
+ $ curl-config --cflags
+
+How do I know if libcurl was built with SSL support?
+
+ $ curl-config --feature | grep SSL
+
+What's the installed libcurl version?
+
+ $ curl-config --version
+
+How do I build a single file with a one-line command?
+
+ $ `curl-config --cc --cflags --libs` -o example example.c
+
+.SH "SEE ALSO"
+.BR curl (1)
diff --git a/Build/source/libs/curl/docs/curl-config.html b/Build/source/libs/curl/docs/curl-config.html
new file mode 100644
index 00000000000..7f20fd51f1f
--- /dev/null
+++ b/Build/source/libs/curl/docs/curl-config.html
@@ -0,0 +1,128 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl-config - Get information about a libcurl installation
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>curl-config</B> <B>[options]</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ <B>curl-config</B> displays information about a previous curl and
+ libcurl installation.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+ --cc Displays the compiler used to build libcurl.
+
+ --cflags
+ Set of compiler options (CFLAGS) to use when compiling
+ files that use libcurl. Currently that is only thw
+ include path to the curl include files.
+
+ --feature
+ Lists what particular main features the installed
+ libcurl was built with. At the time of writing, this
+ list may include SSL, KRB4 or IPv6. Do not assume any
+ particular order. The keywords will be separated by
+ newlines. There may be none, one or several keywords in
+ the list.
+
+ --help
+ Displays the available options.
+
+ --libs
+ Shows the complete set of libs and other linker options
+ you will need in order to link your application with
+ libcurl.
+
+ --prefix
+ This is the prefix used when libcurl was installed.
+ Libcurl is then installed in $prefix/lib and its header
+ files are installed in $prefix/include and so on. The
+ prefix is set with "configure --prefix".
+
+ --version
+ Outputs version information about the installed
+ libcurl.
+
+ --vernum
+ Outputs version information about the installed
+ libcurl, in numerical mode. This outputs the version
+ number, in hexadecimal, with 8 bits for each part;
+ major, minor, patch. So that libcurl 7.7.4 would appear
+ as 070704 and libcurl 12.13.14 would appear as
+ 0c0d0e...
+
+
+</PRE>
+<H2>EXAMPLES</H2><PRE>
+ What linker options do I need when I link with libcurl?
+
+ $ curl-config --libs
+
+ What compiler options do I need when I compile using libcurl
+ functions?
+
+ $ curl-config --cflags
+
+ How do I know if libcurl was built with SSL support?
+
+ $ curl-config --feature | grep SSL
+
+ What's the installed libcurl version?
+
+ $ curl-config --version
+
+ How do I build a single file with a one-line command?
+
+ $ `curl-config --cc --cflags --libs` -o example example.c
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl(1)</B>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/curl.1 b/Build/source/libs/curl/docs/curl.1
new file mode 100644
index 00000000000..574db94c271
--- /dev/null
+++ b/Build/source/libs/curl/docs/curl.1
@@ -0,0 +1,820 @@
+.\" You can view this file with:
+.\" nroff -man curl.1
+.\" Written by Daniel Stenberg
+.\"
+.TH curl 1 "25 Feb 2002" "Curl 7.9.5" "Curl Manual"
+.SH NAME
+curl \- transfer a URL
+.SH SYNOPSIS
+.B curl [options]
+.I [URL...]
+.SH DESCRIPTION
+.B curl
+is a client to get documents/files from or send documents to a server, using
+any of the supported protocols (HTTP, HTTPS, FTP, GOPHER, DICT, TELNET, LDAP
+or FILE). The command is designed to work without user interaction or any kind
+of interactivity.
+
+curl offers a busload of useful tricks like proxy support, user
+authentication, ftp upload, HTTP post, SSL (https:) connections, cookies, file
+transfer resume and more.
+.SH URL
+The URL syntax is protocol dependent. You'll find a detailed description in
+RFC 2396.
+
+You can specify multiple URLs or parts of URLs by writing part sets within
+braces as in:
+
+ http://site.{one,two,three}.com
+
+or you can get sequences of alphanumeric series by using [] as in:
+
+ ftp://ftp.numericals.com/file[1-100].txt
+ ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)
+ ftp://ftp.letters.com/file[a-z].txt
+
+It is possible to specify up to 9 sets or series for a URL, but no nesting is
+supported at the moment:
+
+ http://www.any.org/archive[1996-1999]/volume[1-4]part{a,b,c,index}.html
+
+You can specify any amount of URLs on the command line. They will be fetched
+in a sequential manner in the specified order.
+
+Curl will attempt to re-use connections for multiple file transfers, so that
+getting many files from the same server will not do multiple connects /
+handshakes. This improves speed. Of course this is only done on files
+specified on a single command line and cannot be used between separate curl
+invokes.
+.SH OPTIONS
+.IP "-a/--append"
+(FTP)
+When used in a ftp upload, this will tell curl to append to the target
+file instead of overwriting it. If the file doesn't exist, it will
+be created.
+
+If this option is used twice, the second one will disable append mode again.
+.IP "-A/--user-agent <agent string>"
+(HTTP)
+Specify the User-Agent string to send to the HTTP server. Some badly done CGIs
+fail if its not set to "Mozilla/4.0". To encode blanks in the string,
+surround the string with single quote marks. This can also be set with the
+-H/--header flag of course.
+
+If this option is set more than once, the last one will be the one that's
+used.
+.IP "-b/--cookie <name=data>"
+(HTTP)
+Pass the data to the HTTP server as a cookie. It is supposedly the
+data previously received from the server in a "Set-Cookie:" line.
+The data should be in the format "NAME1=VALUE1; NAME2=VALUE2".
+
+If no '=' letter is used in the line, it is treated as a filename to use to
+read previously stored cookie lines from, which should be used in this session
+if they match. Using this method also activates the "cookie parser" which will
+make curl record incoming cookies too, which may be handy if you're using this
+in combination with the -L/--location option. The file format of the file to
+read cookies from should be plain HTTP headers or the Netscape/Mozilla cookie
+file format.
+
+.B NOTE
+that the file specified with -b/--cookie is only used as input. No cookies
+will be stored in the file. To store cookies, save the HTTP headers to a file
+using -D/--dump-header!
+
+If this option is set more than once, the last one will be the one that's
+used.
+.IP "-B/--use-ascii"
+Use ASCII transfer when getting an FTP file or LDAP info. For FTP, this can
+also be enforced by using an URL that ends with ";type=A". This option causes
+data sent to stdout to be in text mode for win32 systems.
+
+If this option is used twice, the second one will disable ASCII usage.
+.IP "--ciphers <list of ciphers>"
+(SSL) Specifies which ciphers to use in the connection. The list of ciphers
+must be using valid ciphers. Read up on SSL cipher list details on this URL:
+.I http://www.openssl.org/docs/apps/ciphers.html (Option added in curl 7.9)
+
+If this option is used severl times, the last one will override the others.
+.IP "--connect-timeout <seconds>"
+Maximum time in seconds that you allow the connection to the server to take.
+This only limits the connection phase, once curl has connected this option is
+of no more use. This option didn't work in win32 systems until 7.7.2. See
+also the
+.I "--max-time"
+option.
+
+If this option is used several times, the last one will be used.
+.IP "-c/--cookie-jar <file name>"
+Specify to which file you want curl to write all cookies after a completed
+operation. Curl writes all cookies previously read from a specified file as
+well as all cookies received from remote server(s). If no cookies are known,
+no file will be written. The file will be written using the Netscape cookie
+file format. If you set the file name to a single dash, "-", the cookies will
+be written to stdout. (Option added in curl 7.9)
+
+If this option is used several times, the last specfied file name will be
+used.
+.IP "-C/--continue-at <offset>"
+Continue/Resume a previous file transfer at the given offset. The given offset
+is the exact number of bytes that will be skipped counted from the beginning
+of the source file before it is transfered to the destination. If used with
+uploads, the ftp server command SIZE will not be used by curl.
+
+Use "-C -" to tell curl to automatically find out where/how to resume the
+transfer. It then uses the given output/input files to figure that out.
+
+If this option is used several times, the last one will be used.
+.IP "-d/--data <data>"
+(HTTP) Sends the specified data in a POST request to the HTTP server, in a way
+that can emulate as if a user has filled in a HTML form and pressed the submit
+button. Note that the data is sent exactly as specified with no extra
+processing (with all newlines cut off). The data is expected to be
+"url-encoded". This will cause curl to pass the data to the server using the
+content-type application/x-www-form-urlencoded. Compare to -F. If more than
+one -d/--data option is used on the same command line, the data pieces
+specified will be merged together with a separating &-letter. Thus, using '-d
+name=daniel -d skill=lousy' would generate a post chunk that looks like
+\&'name=daniel&skill=lousy'.
+
+If you start the data with the letter @, the rest should be a file name to
+read the data from, or - if you want curl to read the data from stdin. The
+contents of the file must already be url-encoded. Multiple files can also be
+specified. Posting data from a file named 'foobar' would thus be done with
+"--data @foobar".
+
+To post data purely binary, you should instead use the --data-binary option.
+
+-d/--data is the same as --data-ascii.
+
+If this option is used several times, the ones following the first will
+append data.
+.IP "--data-ascii <data>"
+(HTTP) This is an alias for the -d/--data option.
+
+If this option is used several times, the ones following the first will
+append data.
+.IP "--data-binary <data>"
+(HTTP) This posts data in a similar manner as --data-ascii does, although when
+using this option the entire context of the posted data is kept as-is. If you
+want to post a binary file without the strip-newlines feature of the
+--data-ascii option, this is for you.
+
+If this option is used several times, the ones following the first will
+append data.
+.IP "--disable-epsv"
+(FTP) Tell curl to disable the use of the EPSV command when doing passive FTP
+downloads. Curl will normally always first attempt to use EPSV before PASV,
+but with this option, it will not try using EPSV.
+
+IF this option is used several times, each occurrence will toggle this on/off.
+.IP "-D/--dump-header <file>"
+(HTTP/FTP)
+Write the HTTP headers to this file. Write the FTP file info to this
+file if -I/--head is used.
+
+This option is handy to use when you want to store the cookies that a HTTP
+site sends to you. The cookies could then be read in a second curl invoke by
+using the -b/--cookie option!
+
+If this option is used several times, the last one will be used.
+.IP "-e/--referer <URL>"
+(HTTP) Sends the "Referer Page" information to the HTTP server. This can also
+be set with the -H/--header flag of course. When used with
+.I -L/--location
+you can append ";auto" to the referer URL to make curl automatically set the
+previous URL when it follows a Location: header. The ";auto" string can be
+used alone, even if you don't set an initial referer.
+
+If this option is used several times, the last one will be used.
+.IP "--egd-file <file>"
+(HTTPS) Specify the path name to the Entropy Gathering Daemon socket. The
+socket is used to seed the random engine for SSL connections. See also the
+.I "--random-file"
+option.
+.IP "-E/--cert <certificate[:password]>"
+(HTTPS)
+Tells curl to use the specified certificate file when getting a file
+with HTTPS. The certificate must be in PEM format.
+If the optional password isn't specified, it will be queried for on
+the terminal. Note that this certificate is the private key and the private
+certificate concatenated!
+
+If this option is used several times, the last one will be used.
+.IP "--cacert <CA certificate>"
+(HTTPS) Tells curl to use the specified certificate file to verify the
+peer. The certificate must be in PEM format.
+
+If this option is used several times, the last one will be used.
+.IP "-f/--fail"
+(HTTP)
+Fail silently (no output at all) on server errors. This is mostly done
+like this to better enable scripts etc to better deal with failed
+attempts. In normal cases when a HTTP server fails to deliver a
+document, it returns a HTML document stating so (which often also
+describes why and more). This flag will prevent curl from
+outputting that and fail silently instead.
+
+If this option is used twice, the second will again disable silent failure.
+.IP "-F/--form <name=content>"
+(HTTP) This lets curl emulate a filled in form in which a user has pressed the
+submit button. This causes curl to POST data using the content-type
+multipart/form-data according to RFC1867. This enables uploading of binary
+files etc. To force the 'content' part to be be a file, prefix the file name
+with an @ sign. To just get the content part from a file, prefix the file name
+with the letter <. The difference between @ and < is then that @ makes a file
+get attached in the post as a file upload, while the < makes a text field and
+just get the contents for that text field from a file.
+
+Example, to send your password file to the server, where
+\&'password' is the name of the form-field to which /etc/passwd will be the
+input:
+
+.B curl
+-F password=@/etc/passwd www.mypasswords.com
+
+To read the file's content from stdin insted of a file, use - where the file
+name should've been. This goes for both @ and < constructs.
+
+This option can be used multiple times.
+.IP "-g/--globoff"
+This option switches off the "URL globbing parser". When you set this option,
+you can specify URLs that contain the letters {}[] without having them being
+interpreted by curl itself. Note that these letters are not normal legal URL
+contents but they should be encoded according to the URI standard. (Option
+added in curl 7.6)
+.IP "-G/--get"
+When used, this option will make all data specified with -d/--data or
+--data-binary to be used in a HTTP GET request instead of the POST request
+that otherwise would be used. The data will be appended to the URL with a '?'
+separator. (Option added in curl 7.9)
+.IP "-h/--help"
+Usage help.
+.IP "-H/--header <header>"
+(HTTP) Extra header to use when getting a web page. You may specify any number
+of extra headers. Note that if you should add a custom header that has the
+same name as one of the internal ones curl would use, your externally set
+header will be used instead of the internal one. This allows you to make even
+trickier stuff than curl would normally do. You should not replace internally
+set headers without knowing perfectly well what you're doing. Replacing an
+internal header with one without content on the right side of the colon will
+prevent that header from appearing.
+
+This option can be used multiple times.
+.IP "-i/--include"
+(HTTP)
+Include the HTTP-header in the output. The HTTP-header includes things
+like server-name, date of the document, HTTP-version and more...
+
+If this option is used twice, the second will again disable header include.
+.IP "--interface <name>"
+Perform an operation using a specified interface. You can enter interface
+name, IP address or host name. An example could look like:
+
+.B "curl --interface eth0:1 http://www.netscape.com/"
+
+If this option is used several times, the last one will be used.
+.IP "-I/--head"
+(HTTP/FTP)
+Fetch the HTTP-header only! HTTP-servers feature the command HEAD
+which this uses to get nothing but the header of a document. When used
+on a FTP file, curl displays the file size only.
+
+If this option is used twice, the second will again disable header only.
+.IP "--krb4 <level>"
+(FTP) Enable kerberos4 authentication and use. The level must be entered and
+should be one of 'clear', 'safe', 'confidential' or 'private'. Should you use
+a level that is not one of these, 'private' will instead be used.
+
+If this option is used several times, the last one will be used.
+.IP "-K/--config <config file>"
+Specify which config file to read curl arguments from. The config file is a
+text file in which command line arguments can be written which then will be
+used as if they were written on the actual command line. Options and their
+parameters must be specified on the same config file line. If the parameter is
+to contain white spaces, the parameter must be inclosed within quotes. If the
+first column of a config line is a '#' character, the rest of the line will be
+treated as a comment.
+
+Specify the filename as '-' to make curl read the file from stdin.
+
+This option can be used multiple times.
+.IP "-l/--list-only"
+(FTP)
+When listing an FTP directory, this switch forces a name-only view.
+Especially useful if you want to machine-parse the contents of an FTP
+directory since the normal directory view doesn't use a standard look
+or format.
+
+If this option is used twice, the second will again disable list only.
+.IP "-L/--location"
+(HTTP/HTTPS) If the server reports that the requested page has a different
+location (indicated with the header line Location:) this flag will let curl
+attempt to reattempt the get on the new place. If used together with -i or -I,
+headers from all requested pages will be shown. If this flag is used when
+making a HTTP POST, curl will automatically switch to GET after the initial
+POST has been done.
+
+If this option is used twice, the second will again disable location following.
+.IP "-m/--max-time <seconds>"
+Maximum time in seconds that you allow the whole operation to take. This is
+useful for preventing your batch jobs from hanging for hours due to slow
+networks or links going down. This doesn't work fully in win32 systems.
+See also the
+.I "--connect-timeout"
+option.
+
+If this option is used several times, the last one will be used.
+.IP "-M/--manual"
+Manual. Display the huge help text.
+.IP "-n/--netrc"
+Makes curl scan the
+.I .netrc
+file in the user's home directory for login name and password. This is
+typically used for ftp on unix. If used with http, curl will enable user
+authentication. See
+.BR netrc(4)
+or
+.BR ftp(1)
+for details on the file format. Curl will not complain if that file
+hasn't the right permissions (it should not be world nor group
+readable). The environment variable "HOME" is used to find the home
+directory.
+
+A quick and very simple example of how to setup a
+.I .netrc
+to allow curl to ftp to the machine host.domain.com with user name
+\&'myself' and password 'secret' should look similar to:
+
+.B "machine host.domain.com login myself password secret"
+
+If this option is used twice, the second will again disable netrc usage.
+.IP "-N/--no-buffer"
+Disables the buffering of the output stream. In normal work situations, curl
+will use a standard buffered output stream that will have the effect that it
+will output the data in chunks, not necessarily exactly when the data arrives.
+Using this option will disable that buffering.
+
+If this option is used twice, the second will again switch on buffering.
+.IP "-o/--output <file>"
+Write output to <file> instead of stdout. If you are using {} or [] to fetch
+multiple documents, you can use '#' followed by a number in the <file>
+specifier. That variable will be replaced with the current string for the URL
+being fetched. Like in:
+
+ curl http://{one,two}.site.com -o "file_#1.txt"
+
+or use several variables like:
+
+ curl http://{site,host}.host[1-5].com -o "#1_#2"
+
+You may use this option as many times as you have number of URLs.
+.IP "-O/--remote-name"
+Write output to a local file named like the remote file we get. (Only
+the file part of the remote file is used, the path is cut off.)
+
+You may use this option as many times as you have number of URLs.
+.IP "-p/--proxytunnel"
+When an HTTP proxy is used, this option will cause non-HTTP protocols to
+attempt to tunnel through the proxy instead of merely using it to do HTTP-like
+operations. The tunnel approach is made with the HTTP proxy CONNECT request
+and requires that the proxy allows direct connect to the remote port number
+curl wants to tunnel through to.
+
+If this option is used twice, the second will again disable proxy tunnel.
+.IP "-P/--ftpport <address>"
+(FTP)
+Reverses the initiator/listener roles when connecting with ftp. This
+switch makes Curl use the PORT command instead of PASV. In
+practice, PORT tells the server to connect to the client's specified
+address and port, while PASV asks the server for an ip address and
+port to connect to. <address> should be one of:
+.RS
+.TP 12
+.B interface
+i.e "eth0" to specify which interface's IP address you want to use (Unix only)
+.TP
+.B "IP address"
+i.e "192.168.10.1" to specify exact IP number
+.TP
+.B "host name"
+i.e "my.host.domain" to specify machine
+.TP
+.B "-"
+(any single-letter string) to make it pick the machine's default
+.RE
+
+If this option is used several times, the last one will be used.
+.IP "-q"
+If used as the first parameter on the command line, the
+.I $HOME/.curlrc
+file will not be read and used as a config file.
+.IP "-Q/--quote <comand>"
+(FTP) Send an arbitrary command to the remote FTP server, by using the QUOTE
+command of the server. Not all servers support this command, and the set of
+QUOTE commands are server specific! Quote commands are sent BEFORE the
+transfer is taking place. To make commands take place after a successful
+transfer, prefix them with a dash '-'. You may specify any amount of commands
+to be run before and after the transfer. If the server returns failure for one
+of the commands, the entire operation will be aborted.
+
+This option can be used multiple times.
+.IP "--random-file <file>"
+(HTTPS) Specify the path name to file containing what will be considered as
+random data. The data is used to seed the random engine for SSL connections.
+See also the
+.I "--edg-file"
+option.
+.IP "-r/--range <range>"
+(HTTP/FTP)
+Retrieve a byte range (i.e a partial document) from a HTTP/1.1 or FTP
+server. Ranges can be specified in a number of ways.
+.RS
+.TP 10
+.B 0-499
+specifies the first 500 bytes
+.TP
+.B 500-999
+specifies the second 500 bytes
+.TP
+.B -500
+specifies the last 500 bytes
+.TP
+.B 9500
+specifies the bytes from offset 9500 and forward
+.TP
+.B 0-0,-1
+specifies the first and last byte only(*)(H)
+.TP
+.B 500-700,600-799
+specifies 300 bytes from offset 500(H)
+.TP
+.B 100-199,500-599
+specifies two separate 100 bytes ranges(*)(H)
+.RE
+
+(*) = NOTE that this will cause the server to reply with a multipart
+response!
+
+You should also be aware that many HTTP/1.1 servers do not have this feature
+enabled, so that when you attempt to get a range, you'll instead get the whole
+document.
+
+FTP range downloads only support the simple syntax 'start-stop' (optionally
+with one of the numbers omitted). It depends on the non-RFC command SIZE.
+
+If this option is used several times, the last one will be used.
+.IP "-R/--remote-time"
+When used, this will make libcurl attempt to figure out the timestamp of the
+remote file, and if that is available make the local file get that same
+timestamp.
+
+If this option is used twice, the second time disables this again.
+.IP "-s/--silent"
+Silent mode. Don't show progress meter or error messages. Makes
+Curl mute.
+
+If this option is used twice, the second will again disable mute.
+.IP "-S/--show-error"
+When used with -s it makes curl show error message if it fails.
+
+If this option is used twice, the second will again disable show error.
+.IP "-t/--telnet-option <OPT=val>"
+Pass options to the telnet protocol. Supported options are:
+
+TTYPE=<term> Sets the terminal type.
+
+XDISPLOC=<X display> Sets the X display location.
+
+NEW_ENV=<var,val> Sets an environment variable.
+.IP "-T/--upload-file <file>"
+This transfers the specified local file to the remote URL. If there is no file
+part in the specified URL, Curl will append the local file name. NOTE that you
+must use a trailing / on the last directory to really prove to Curl that there
+is no file name or curl will think that your last directory name is the remote
+file name to use. That will most likely cause the upload operation to fail. If
+this is used on a http(s) server, the PUT command will be used.
+
+Use the file name "-" (a single dash) to use stdin instead of a given file.
+
+If this option is used several times, the last one will be used.
+.IP "-u/--user <user:password>"
+Specify user and password to use when fetching. See README.curl for detailed
+examples of how to use this. If no password is specified, curl will
+ask for it interactively.
+
+If this option is used several times, the last one will be used.
+.IP "-U/--proxy-user <user:password>"
+Specify user and password to use for Proxy authentication. If no
+password is specified, curl will ask for it interactively.
+
+If this option is used several times, the last one will be used.
+.IP "--url <URL>"
+Specify a URL to fetch. This option is mostly handy when you want to specify
+URL(s) in a config file.
+
+This option may be used any number of times. To control where this URL is written, use the
+.I -o
+or the
+.I -O
+options.
+.IP "-v/--verbose"
+Makes the fetching more verbose/talkative. Mostly usable for
+debugging. Lines starting with '>' means data sent by curl, '<'
+means data received by curl that is hidden in normal cases and lines
+starting with '*' means additional info provided by curl.
+
+If this option is used twice, the second will again disable verbose.
+.IP "-V/--version"
+Displays the full version of curl, libcurl and other 3rd party libraries
+linked with the executable.
+.IP "-w/--write-out <format>"
+Defines what to display after a completed and successful operation. The format
+is a string that may contain plain text mixed with any number of variables. The
+string can be specified as "string", to get read from a particular file you
+specify it "@filename" and to tell curl to read the format from stdin you
+write "@-".
+
+The variables present in the output format will be substituted by the value or
+text that curl thinks fit, as described below. All variables are specified
+like %{variable_name} and to output a normal % you just write them like
+%%. You can output a newline by using \\n, a carriage return with \\r and a tab
+space with \\t.
+
+.B NOTE:
+The %-letter is a special letter in the win32-environment, where all
+occurrences of % must be doubled when using this option.
+
+Available variables are at this point:
+.RS
+.TP 15
+.B url_effective
+The URL that was fetched last. This is mostly meaningful if you've told curl
+to follow location: headers.
+.TP
+.B http_code
+The numerical code that was found in the last retrieved HTTP(S) page.
+.TP
+.B time_total
+The total time, in seconds, that the full operation lasted. The time will be
+displayed with millisecond resolution.
+.TP
+.B time_namelookup
+The time, in seconds, it took from the start until the name resolving was
+completed.
+.TP
+.B time_connect
+The time, in seconds, it took from the start until the connect to the remote
+host (or proxy) was completed.
+.TP
+.B time_pretransfer
+The time, in seconds, it took from the start until the file transfer is just
+about to begin. This includes all pre-transfer commands and negotiations that
+are specific to the particular protocol(s) involved.
+.TP
+.B time_starttransfer
+The time, in seconds, it took from the start until the first byte is just about
+to be transfered. This includes time_pretransfer and also the time the
+server needs to calculate the result.
+.TP
+.B size_download
+The total amount of bytes that were downloaded.
+.TP
+.B size_upload
+The total amount of bytes that were uploaded.
+.TP
+.B size_header
+The total amount of bytes of the downloaded headers.
+.TP
+.B size_request
+The total amount of bytes that were sent in the HTTP request.
+.TP
+.B speed_download
+The average download speed that curl measured for the complete download.
+.TP
+.B speed_upload
+The average upload speed that curl measured for the complete upload.
+.TP
+.B content_type
+The Content-Type of the requested document, if there was any. (Added in 7.9.5)
+.RE
+
+If this option is used several times, the last one will be used.
+.IP "-x/--proxy <proxyhost[:port]>"
+Use specified HTTP proxy. If the port number is not specified, it is assumed
+at port 1080.
+
+\fBNote\fP that all operations that are performed over a HTTP proxy will
+transparantly be converted to HTTP. It means that certain protocol specific
+operations might not be available. This is not the case if you can tunnel
+through the proxy, as done with the \fI-p/--proxytunnel\fP option.
+
+If this option is used several times, the last one will be used.
+.IP "-X/--request <command>"
+(HTTP)
+Specifies a custom request to use when communicating with the HTTP server.
+The specified request will be used instead of the standard GET. Read the
+HTTP 1.1 specification for details and explanations.
+
+(FTP)
+Specifies a custom FTP command to use instead of LIST when doing file lists
+with ftp.
+
+If this option is used several times, the last one will be used.
+.IP "-y/--speed-time <time>"
+If a download is slower than speed-limit bytes per second during a speed-time
+period, the download gets aborted. If speed-time is used, the default
+speed-limit will be 1 unless set with -y.
+
+If this option is used several times, the last one will be used.
+.IP "-Y/--speed-limit <speed>"
+If a download is slower than this given speed, in bytes per second, for
+speed-time seconds it gets aborted. speed-time is set with -Y and is 30 if
+not set.
+
+If this option is used several times, the last one will be used.
+.IP "-z/--time-cond <date expression>"
+(HTTP)
+Request to get a file that has been modified later than the given time and
+date, or one that has been modified before that time. The date expression can
+be all sorts of date strings or if it doesn't match any internal ones, it
+tries to get the time from a given file name instead! See the
+.BR "GNU date(1)"
+or
+.BR "curl_getdate(3)"
+man pages for date expression details.
+
+Start the date expression with a dash (-) to make it request for a document
+that is older than the given date/time, default is a document that is newer
+than the specified date/time.
+
+If this option is used several times, the last one will be used.
+.IP "-3/--sslv3"
+(HTTPS)
+Forces curl to use SSL version 3 when negotiating with a remote SSL server.
+.IP "-2/--sslv2"
+(HTTPS)
+Forces curl to use SSL version 2 when negotiating with a remote SSL server.
+.IP "-0/--http1.0"
+(HTTP) Forces curl to issue its requests using HTTP 1.0 instead of using its
+internally preferred: HTTP 1.1.
+.IP "-#/--progress-bar"
+Make curl display progress information as a progress bar instead of the
+default statistics.
+
+If this option is used twice, the second will again disable the progress bar.
+.IP "--crlf"
+(FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).
+
+If this option is used twice, the second will again disable crlf converting.
+.IP "--stderr <file>"
+Redirect all writes to stderr to the specified file instead. If the file name
+is a plain '-', it is instead written to stdout. This option has no point when
+you're using a shell with decent redirecting capabilities.
+
+If this option is used several times, the last one will be used.
+.SH FILES
+.I ~/.curlrc
+.RS
+Default config file.
+
+.SH ENVIRONMENT
+.IP "http_proxy [protocol://]<host>[:port]"
+Sets proxy server to use for HTTP.
+.IP "HTTPS_PROXY [protocol://]<host>[:port]"
+Sets proxy server to use for HTTPS.
+.IP "FTP_PROXY [protocol://]<host>[:port]"
+Sets proxy server to use for FTP.
+.IP "GOPHER_PROXY [protocol://]<host>[:port]"
+Sets proxy server to use for GOPHER.
+.IP "ALL_PROXY [protocol://]<host>[:port]"
+Sets proxy server to use if no protocol-specific proxy is set.
+.IP "NO_PROXY <comma-separated list of hosts>"
+list of host names that shouldn't go through any proxy. If set to a asterisk
+'*' only, it matches all hosts.
+.SH EXIT CODES
+There exists a bunch of different error codes and their corresponding error
+messages that may appear during bad conditions. At the time of this writing,
+the exit codes are:
+.IP 1
+Unsupported protocol. This build of curl has no support for this protocol.
+.IP 2
+Failed to initialize.
+.IP 3
+URL malformat. The syntax was not correct.
+.IP 4
+URL user malformatted. The user-part of the URL syntax was not correct.
+.IP 5
+Couldn't resolve proxy. The given proxy host could not be resolved.
+.IP 6
+Couldn't resolve host. The given remote host was not resolved.
+.IP 7
+Failed to connect to host.
+.IP 8
+FTP weird server reply. The server sent data curl couldn't parse.
+.IP 9
+FTP access denied. The server denied login.
+.IP 10
+FTP user/password incorrect. Either one or both were not accepted by the
+server.
+.IP 11
+FTP weird PASS reply. Curl couldn't parse the reply sent to the PASS request.
+.IP 12
+FTP weird USER reply. Curl couldn't parse the reply sent to the USER request.
+.IP 13
+FTP weird PASV reply, Curl couldn't parse the reply sent to the PASV request.
+.IP 14
+FTP weird 227 format. Curl couldn't parse the 227-line the server sent.
+.IP 15
+FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
+.IP 16
+FTP can't reconnect. Couldn't connect to the host we got in the 227-line.
+.IP 17
+FTP couldn't set binary. Couldn't change transfer method to binary.
+.IP 18
+Partial file. Only a part of the file was transfered.
+.IP 19
+FTP couldn't RETR file. The RETR command failed.
+.IP 20
+FTP write error. The transfer was reported bad by the server.
+.IP 21
+FTP quote error. A quote command returned error from the server.
+.IP 22
+HTTP not found. The requested page was not found. This return code only
+appears if --fail is used.
+.IP 23
+Write error. Curl couldn't write data to a local filesystem or similar.
+.IP 24
+Malformat user. User name badly specified.
+.IP 25
+FTP couldn't STOR file. The server denied the STOR operation.
+.IP 26
+Read error. Various reading problems.
+.IP 27
+Out of memory. A memory allocation request failed.
+.IP 28
+Operation timeout. The specified time-out period was reached according to the
+conditions.
+.IP 29
+FTP couldn't set ASCII. The server returned an unknown reply.
+.IP 30
+FTP PORT failed. The PORT command failed.
+.IP 31
+FTP couldn't use REST. The REST command failed.
+.IP 32
+FTP couldn't use SIZE. The SIZE command failed. The command is an extension
+to the original FTP spec RFC 959.
+.IP 33
+HTTP range error. The range "command" didn't work.
+.IP 34
+HTTP post error. Internal post-request generation error.
+.IP 35
+SSL connect error. The SSL handshaking failed.
+.IP 36
+FTP bad download resume. Couldn't continue an earlier aborted download.
+.IP 37
+FILE couldn't read file. Failed to open the file. Permissions?
+.IP 38
+LDAP cannot bind. LDAP bind operation failed.
+.IP 39
+LDAP search failed.
+.IP 40
+Library not found. The LDAP library was not found.
+.IP 41
+Function not found. A required LDAP function was not found.
+.IP 42
+Aborted by callback. An application told curl to abort the operation.
+.IP 43
+Internal error. A function was called with a bad parameter.
+.IP 44
+Internal error. A function was called in a bad order.
+.IP 45
+Interface error. A specified outgoing interface could not be used.
+.IP 46
+Bad password entered. An error was signaled when the password was entered.
+.IP 47
+Too many redirects. When following redirects, curl hit the maximum amount.
+.IP 48
+Unknown TELNET option specified.
+.IP 49
+Malformed telnet option.
+.IP 51
+The remote peer's SSL certificate wasn't ok
+.IP 52
+The server didn't reply anything, which here is considered an error.
+.IP XX
+There will appear more error codes here in future releases. The existing ones
+are meant to never change.
+.SH BUGS
+If you do find bugs, mail them to curl-bug@haxx.se.
+.SH AUTHORS / CONTRIBUTORS
+Daniel Stenberg is the main author, but the whole list of contributors is
+found in the separate THANKS file.
+.SH WWW
+http://curl.haxx.se
+.SH FTP
+ftp://ftp.sunet.se/pub/www/utilities/curl/
+.SH "SEE ALSO"
+.BR ftp (1),
+.BR wget (1),
+.BR snarf (1)
diff --git a/Build/source/libs/curl/docs/curl.html b/Build/source/libs/curl/docs/curl.html
new file mode 100644
index 00000000000..49833d6b531
--- /dev/null
+++ b/Build/source/libs/curl/docs/curl.html
@@ -0,0 +1,1082 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl - transfer a URL
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>curl</B> <B>[options]</B> <I>[URL...]</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ <B>curl</B> is a client to get documents/files from or send docu­
+ ments to a server, using any of the supported protocols
+ (HTTP, HTTPS, FTP, GOPHER, DICT, TELNET, LDAP or FILE). The
+ command is designed to work without user interaction or any
+ kind of interactivity.
+
+ curl offers a busload of useful tricks like proxy support,
+ user authentication, ftp upload, HTTP post, SSL (https:)
+ connections, cookies, file transfer resume and more.
+
+
+</PRE>
+<H2>URL</H2><PRE>
+ The URL syntax is protocol dependent. You'll find a detailed
+ description in RFC 2396.
+
+ You can specify multiple URLs or parts of URLs by writing
+ part sets within braces as in:
+
+ http://site.{one,two,three}.com
+
+ or you can get sequences of alphanumeric series by using []
+ as in:
+
+ ftp://ftp.numericals.com/file[1-100].txt
+ ftp://ftp.numericals.com/file[001-100].txt (with leading
+ zeros)
+ ftp://ftp.letters.com/file[a-z].txt
+
+ It is possible to specify up to 9 sets or series for a URL,
+ but no nesting is supported at the moment:
+
+ http://www.any.org/archive[1996-1999]/vol­
+ ume[1-4]part{a,b,c,index}.html
+
+ You can specify any amount of URLs on the command line. They
+ will be fetched in a sequential manner in the specified
+ order.
+
+ Curl will attempt to re-use connections for multiple file
+ transfers, so that getting many files from the same server
+ will not do multiple connects / handshakes. This improves
+ speed. Of course this is only done on files specified on a
+ single command line and cannot be used between separate curl
+ invokes.
+
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+ -a/--append
+ (FTP) When used in a ftp upload, this will tell curl to
+ append to the target file instead of overwriting it. If
+ the file doesn't exist, it will be created.
+
+ If this option is used twice, the second one will dis­
+ able append mode again.
+
+ -A/--user-agent &lt;agent string&gt;
+ (HTTP) Specify the User-Agent string to send to the
+ HTTP server. Some badly done CGIs fail if its not set
+ to "Mozilla/4.0". To encode blanks in the string, sur­
+ round the string with single quote marks. This can
+ also be set with the -H/--header flag of course.
+
+ If this option is set more than once, the last one will
+ be the one that's used.
+
+ -b/--cookie &lt;name=data&gt;
+ (HTTP) Pass the data to the HTTP server as a cookie. It
+ is supposedly the data previously received from the
+ server in a "Set-Cookie:" line. The data should be in
+ the format "NAME1=VALUE1; NAME2=VALUE2".
+
+ If no '=' letter is used in the line, it is treated as
+ a filename to use to read previously stored cookie
+ lines from, which should be used in this session if
+ they match. Using this method also activates the
+ "cookie parser" which will make curl record incoming
+ cookies too, which may be handy if you're using this in
+ combination with the -L/--location option. The file
+ format of the file to read cookies from should be plain
+ HTTP headers or the Netscape/Mozilla cookie file for­
+ mat.
+
+ <B>NOTE</B> that the file specified with -b/--cookie is only
+ used as input. No cookies will be stored in the file.
+ To store cookies, save the HTTP headers to a file using
+ -D/--dump-header!
+
+ If this option is set more than once, the last one will
+ be the one that's used.
+
+ -B/--use-ascii
+ Use ASCII transfer when getting an FTP file or LDAP
+ info. For FTP, this can also be enforced by using an
+ URL that ends with ";type=A". This option causes data
+ sent to stdout to be in text mode for win32 systems.
+
+ If this option is used twice, the second one will dis­
+ able ASCII usage.
+
+ --ciphers &lt;list of ciphers&gt;
+ (SSL) Specifies which ciphers to use in the connection.
+ The list of ciphers must be using valid ciphers. Read
+ up on SSL cipher list details on this URL:
+ <I>http://www.openssl.org/docs/apps/ciphers.html</I> <I>(Option</I>
+ <I>added</I> <I>in</I> <I>curl</I> <I>7.9)</I>
+
+ If this option is used severl times, the last one will
+ override the others.
+
+ --connect-timeout &lt;seconds&gt;
+ Maximum time in seconds that you allow the connection
+ to the server to take. This only limits the connection
+ phase, once curl has connected this option is of no
+ more use. This option didn't work in win32 systems
+ until 7.7.2. See also the <I>--max-time</I> option.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -c/--cookie-jar &lt;file name&gt;
+ Specify to which file you want curl to write all cook­
+ ies after a completed operation. Curl writes all cook­
+ ies previously read from a specified file as well as
+ all cookies received from remote server(s). If no cook­
+ ies are known, no file will be written. The file will
+ be written using the Netscape cookie file format. If
+ you set the file name to a single dash, "-", the cook­
+ ies will be written to stdout. (Option added in curl
+ 7.9)
+
+ If this option is used several times, the last specfied
+ file name will be used.
+
+ -C/--continue-at &lt;offset&gt;
+ Continue/Resume a previous file transfer at the given
+ offset. The given offset is the exact number of bytes
+ that will be skipped counted from the beginning of the
+ source file before it is transfered to the destination.
+ If used with uploads, the ftp server command SIZE will
+ not be used by curl.
+
+ Use "-C -" to tell curl to automatically find out
+ where/how to resume the transfer. It then uses the
+ given output/input files to figure that out.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -d/--data &lt;data&gt;
+ (HTTP) Sends the specified data in a POST request to
+ the HTTP server, in a way that can emulate as if a user
+ has filled in a HTML form and pressed the submit but­
+ ton. Note that the data is sent exactly as specified
+ with no extra processing (with all newlines cut off).
+ The data is expected to be "url-encoded". This will
+ cause curl to pass the data to the server using the
+ content-type application/x-www-form-urlencoded. Compare
+ to -F. If more than one -d/--data option is used on the
+ same command line, the data pieces specified will be
+ merged together with a separating &amp;-letter. Thus, using
+ '-d name=daniel -d skill=lousy' would generate a post
+ chunk that looks like 'name=daniel&amp;skill=lousy'.
+
+ If you start the data with the letter @, the rest
+ should be a file name to read the data from, or - if
+ you want curl to read the data from stdin. The con­
+ tents of the file must already be url-encoded. Multiple
+ files can also be specified. Posting data from a file
+ named 'foobar' would thus be done with "--data @foo­
+ bar".
+
+ To post data purely binary, you should instead use the
+ --data-binary option.
+
+ -d/--data is the same as --data-ascii.
+
+ If this option is used several times, the ones follow­
+ ing the first will append data.
+
+ --data-ascii &lt;data&gt;
+ (HTTP) This is an alias for the -d/--data option.
+
+ If this option is used several times, the ones follow­
+ ing the first will append data.
+
+ --data-binary &lt;data&gt;
+ (HTTP) This posts data in a similar manner as --data-
+ ascii does, although when using this option the entire
+ context of the posted data is kept as-is. If you want
+ to post a binary file without the strip-newlines fea­
+ ture of the --data-ascii option, this is for you.
+
+ If this option is used several times, the ones follow­
+ ing the first will append data.
+
+ --disable-epsv
+ (FTP) Tell curl to disable the use of the EPSV command
+ when doing passive FTP downloads. Curl will normally
+ always first attempt to use EPSV before PASV, but with
+ this option, it will not try using EPSV.
+
+ IF this option is used several times, each occurrence
+ will toggle this on/off.
+
+ -D/--dump-header &lt;file&gt;
+ (HTTP/FTP) Write the HTTP headers to this file. Write
+ the FTP file info to this file if -I/--head is used.
+
+ This option is handy to use when you want to store the
+ cookies that a HTTP site sends to you. The cookies
+ could then be read in a second curl invoke by using the
+ -b/--cookie option!
+
+ If this option is used several times, the last one will
+ be used.
+
+ -e/--referer &lt;URL&gt;
+ (HTTP) Sends the "Referer Page" information to the HTTP
+ server. This can also be set with the -H/--header flag
+ of course. When used with <I>-L/--location</I> you can append
+ ";auto" to the referer URL to make curl automatically
+ set the previous URL when it follows a Location:
+ header. The ";auto" string can be used alone, even if
+ you don't set an initial referer.
+
+ If this option is used several times, the last one will
+ be used.
+
+ --egd-file &lt;file&gt;
+ (HTTPS) Specify the path name to the Entropy Gathering
+ Daemon socket. The socket is used to seed the random
+ engine for SSL connections. See also the <I>--random-file</I>
+ option.
+
+ -E/--cert &lt;certificate[:password]&gt;
+ (HTTPS) Tells curl to use the specified certificate
+ file when getting a file with HTTPS. The certificate
+ must be in PEM format. If the optional password isn't
+ specified, it will be queried for on the terminal. Note
+ that this certificate is the private key and the pri­
+ vate certificate concatenated!
+
+ If this option is used several times, the last one will
+ be used.
+
+ --cacert &lt;CA certificate&gt;
+ (HTTPS) Tells curl to use the specified certificate
+ file to verify the peer. The certificate must be in PEM
+ format.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -f/--fail
+ (HTTP) Fail silently (no output at all) on server
+ errors. This is mostly done like this to better enable
+ scripts etc to better deal with failed attempts. In
+ normal cases when a HTTP server fails to deliver a doc­
+ ument, it returns a HTML document stating so (which
+ often also describes why and more). This flag will pre­
+ vent curl from outputting that and fail silently
+ instead.
+
+ If this option is used twice, the second will again
+ disable silent failure.
+
+ -F/--form &lt;name=content&gt;
+ (HTTP) This lets curl emulate a filled in form in which
+ a user has pressed the submit button. This causes curl
+ to POST data using the content-type multipart/form-data
+ according to RFC1867. This enables uploading of binary
+ files etc. To force the 'content' part to be be a file,
+ prefix the file name with an @ sign. To just get the
+ content part from a file, prefix the file name with the
+ letter &lt;. The difference between @ and &lt; is then that @
+ makes a file get attached in the post as a file upload,
+ while the &lt; makes a text field and just get the con­
+ tents for that text field from a file.
+
+ Example, to send your password file to the server,
+ where 'password' is the name of the form-field to which
+ /etc/passwd will be the input:
+
+ <B>curl</B> -F password=@/etc/passwd www.mypasswords.com
+
+ To read the file's content from stdin insted of a file,
+ use - where the file name should've been. This goes for
+ both @ and &lt; constructs.
+
+ This option can be used multiple times.
+
+ -g/--globoff
+ This option switches off the "URL globbing parser".
+ When you set this option, you can specify URLs that
+ contain the letters {}[] without having them being
+ interpreted by curl itself. Note that these letters are
+ not normal legal URL contents but they should be
+ encoded according to the URI standard. (Option added in
+ curl 7.6)
+
+ -G/--get
+ When used, this option will make all data specified
+ with -d/--data or --data-binary to be used in a HTTP
+ GET request instead of the POST request that otherwise
+ would be used. The data will be appended to the URL
+ with a '?' separator. (Option added in curl 7.9)
+
+ -h/--help
+ Usage help.
+
+ -H/--header &lt;header&gt;
+ (HTTP) Extra header to use when getting a web page. You
+ may specify any number of extra headers. Note that if
+ you should add a custom header that has the same name
+ as one of the internal ones curl would use, your exter­
+ nally set header will be used instead of the internal
+ one. This allows you to make even trickier stuff than
+ curl would normally do. You should not replace inter­
+ nally set headers without knowing perfectly well what
+ you're doing. Replacing an internal header with one
+ without content on the right side of the colon will
+ prevent that header from appearing.
+
+ This option can be used multiple times.
+
+ -i/--include
+ (HTTP) Include the HTTP-header in the output. The HTTP-
+ header includes things like server-name, date of the
+ document, HTTP-version and more...
+
+ If this option is used twice, the second will again
+ disable header include.
+
+ --interface &lt;name&gt;
+ Perform an operation using a specified interface. You
+ can enter interface name, IP address or host name. An
+ example could look like:
+
+ <B>curl</B> <B>--interface</B> <B>eth0:1</B> <B>http://www.netscape.com/</B>
+
+ If this option is used several times, the last one will
+ be used.
+
+ -I/--head
+ (HTTP/FTP) Fetch the HTTP-header only! HTTP-servers
+ feature the command HEAD which this uses to get nothing
+ but the header of a document. When used on a FTP file,
+ curl displays the file size only.
+
+ If this option is used twice, the second will again
+ disable header only.
+
+ --krb4 &lt;level&gt;
+ (FTP) Enable kerberos4 authentication and use. The
+ level must be entered and should be one of 'clear',
+ 'safe', 'confidential' or 'private'. Should you use a
+ level that is not one of these, 'private' will instead
+ be used.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -K/--config &lt;config file&gt;
+ Specify which config file to read curl arguments from.
+ The config file is a text file in which command line
+ arguments can be written which then will be used as if
+ they were written on the actual command line. Options
+ and their parameters must be specified on the same con­
+ fig file line. If the parameter is to contain white
+ spaces, the parameter must be inclosed within quotes.
+ If the first column of a config line is a '#' charac­
+ ter, the rest of the line will be treated as a comment.
+
+ Specify the filename as '-' to make curl read the file
+ from stdin.
+
+ This option can be used multiple times.
+
+ -l/--list-only
+ (FTP) When listing an FTP directory, this switch forces
+ a name-only view. Especially useful if you want to
+ machine-parse the contents of an FTP directory since
+ the normal directory view doesn't use a standard look
+ or format.
+
+ If this option is used twice, the second will again
+ disable list only.
+
+ -L/--location
+ (HTTP/HTTPS) If the server reports that the requested
+ page has a different location (indicated with the
+ header line Location:) this flag will let curl attempt
+ to reattempt the get on the new place. If used together
+ with -i or -I, headers from all requested pages will be
+ shown. If this flag is used when making a HTTP POST,
+ curl will automatically switch to GET after the initial
+ POST has been done.
+
+ If this option is used twice, the second will again
+ disable location following.
+
+ -m/--max-time &lt;seconds&gt;
+ Maximum time in seconds that you allow the whole opera­
+ tion to take. This is useful for preventing your batch
+ jobs from hanging for hours due to slow networks or
+ links going down. This doesn't work fully in win32
+ systems. See also the <I>--connect-timeout</I> option.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -M/--manual
+ Manual. Display the huge help text.
+
+ -n/--netrc
+ Makes curl scan the <I>.netrc</I> file in the user's home
+ directory for login name and password. This is typi­
+ cally used for ftp on unix. If used with http, curl
+ will enable user authentication. See <B>netrc(4)</B> or <B>ftp(1)</B>
+ for details on the file format. Curl will not complain
+ if that file hasn't the right permissions (it should
+ not be world nor group readable). The environment vari­
+ able "HOME" is used to find the home directory.
+
+ A quick and very simple example of how to setup a
+ <I>.netrc</I> to allow curl to ftp to the machine
+ host.domain.com with user name 'myself' and password
+ 'secret' should look similar to:
+
+ <B>machine</B> <B>host.domain.com</B> <B>login</B> <B>myself</B> <B>password</B> <B>secret</B>
+
+ If this option is used twice, the second will again
+ disable netrc usage.
+
+ -N/--no-buffer
+ Disables the buffering of the output stream. In normal
+ work situations, curl will use a standard buffered out­
+ put stream that will have the effect that it will out­
+ put the data in chunks, not necessarily exactly when
+ the data arrives. Using this option will disable that
+ buffering.
+
+ If this option is used twice, the second will again
+ switch on buffering.
+
+ -o/--output &lt;file&gt;
+ Write output to &lt;file&gt; instead of stdout. If you are
+ using {} or [] to fetch multiple documents, you can use
+ '#' followed by a number in the &lt;file&gt; specifier. That
+ variable will be replaced with the current string for
+ the URL being fetched. Like in:
+
+ curl http://{one,two}.site.com -o "file_#1.txt"
+
+ or use several variables like:
+
+ curl http://{site,host}.host[1-5].com -o "#1_#2"
+
+ You may use this option as many times as you have num­
+ ber of URLs.
+
+ -O/--remote-name
+ Write output to a local file named like the remote file
+ we get. (Only the file part of the remote file is used,
+ the path is cut off.)
+
+ You may use this option as many times as you have num­
+ ber of URLs.
+
+ -p/--proxytunnel
+ When an HTTP proxy is used, this option will cause non-
+ HTTP protocols to attempt to tunnel through the proxy
+ instead of merely using it to do HTTP-like operations.
+ The tunnel approach is made with the HTTP proxy CONNECT
+ request and requires that the proxy allows direct con­
+ nect to the remote port number curl wants to tunnel
+ through to.
+
+ If this option is used twice, the second will again
+ disable proxy tunnel.
+
+ -P/--ftpport &lt;address&gt;
+ (FTP) Reverses the initiator/listener roles when con­
+ necting with ftp. This switch makes Curl use the PORT
+ command instead of PASV. In practice, PORT tells the
+ server to connect to the client's specified address and
+ port, while PASV asks the server for an ip address and
+ port to connect to. &lt;address&gt; should be one of:
+
+ <B>interface</B> i.e "eth0" to specify which interface's IP
+ address you want to use (Unix only)
+
+ <B>IP</B> <B>address</B> i.e "192.168.10.1" to specify exact IP num­
+ ber
+
+ <B>host</B> <B>name</B> i.e "my.host.domain" to specify machine
+
+ <B>-</B> (any single-letter string) to make it pick
+ the machine's default
+
+ If this option is used several times, the last one will be
+ used.
+
+ -q If used as the first parameter on the command line, the
+ <I>$HOME/.curlrc</I> file will not be read and used as a con­
+ fig file.
+
+ -Q/--quote &lt;comand&gt;
+ (FTP) Send an arbitrary command to the remote FTP
+ server, by using the QUOTE command of the server. Not
+ all servers support this command, and the set of QUOTE
+ commands are server specific! Quote commands are sent
+ BEFORE the transfer is taking place. To make commands
+ take place after a successful transfer, prefix them
+ with a dash '-'. You may specify any amount of commands
+ to be run before and after the transfer. If the server
+ returns failure for one of the commands, the entire
+ operation will be aborted.
+
+ This option can be used multiple times.
+
+ --random-file &lt;file&gt;
+ (HTTPS) Specify the path name to file containing what
+ will be considered as random data. The data is used to
+ seed the random engine for SSL connections. See also
+ the <I>--edg-file</I> option.
+
+ -r/--range &lt;range&gt;
+ (HTTP/FTP) Retrieve a byte range (i.e a partial docu­
+ ment) from a HTTP/1.1 or FTP server. Ranges can be
+ specified in a number of ways.
+
+ <B>0-499</B> specifies the first 500 bytes
+
+ <B>500-999</B> specifies the second 500 bytes
+
+ <B>-500</B> specifies the last 500 bytes
+
+ <B>9500</B> specifies the bytes from offset 9500 and for­
+ ward
+
+ <B>0-0,-1</B> specifies the first and last byte only(*)(H)
+
+ <B>500-700,600-799</B>
+ specifies 300 bytes from offset 500(H)
+
+ <B>100-199,500-599</B>
+ specifies two separate 100 bytes ranges(*)(H)
+
+ (*) = NOTE that this will cause the server to reply with a
+ multipart response!
+
+ You should also be aware that many HTTP/1.1 servers do not
+ have this feature enabled, so that when you attempt to get a
+ range, you'll instead get the whole document.
+
+ FTP range downloads only support the simple syntax 'start-
+ stop' (optionally with one of the numbers omitted). It
+ depends on the non-RFC command SIZE.
+
+ If this option is used several times, the last one will be
+ used.
+
+ -R/--remote-time
+ When used, this will make libcurl attempt to figure out
+ the timestamp of the remote file, and if that is avail­
+ able make the local file get that same timestamp.
+
+ If this option is used twice, the second time disables
+ this again.
+
+ -s/--silent
+ Silent mode. Don't show progress meter or error mes­
+ sages. Makes Curl mute.
+
+ If this option is used twice, the second will again
+ disable mute.
+
+ -S/--show-error
+ When used with -s it makes curl show error message if
+ it fails.
+
+ If this option is used twice, the second will again
+ disable show error.
+
+ -t/--telnet-option &lt;OPT=val&gt;
+ Pass options to the telnet protocol. Supported options
+ are:
+
+ TTYPE=&lt;term&gt; Sets the terminal type.
+
+ XDISPLOC=&lt;X display&gt; Sets the X display location.
+
+ NEW_ENV=&lt;var,val&gt; Sets an environment variable.
+
+ -T/--upload-file &lt;file&gt;
+ This transfers the specified local file to the remote
+ URL. If there is no file part in the specified URL,
+ Curl will append the local file name. NOTE that you
+ must use a trailing / on the last directory to really
+ prove to Curl that there is no file name or curl will
+ think that your last directory name is the remote file
+ name to use. That will most likely cause the upload
+ operation to fail. If this is used on a http(s) server,
+ the PUT command will be used.
+
+ Use the file name "-" (a single dash) to use stdin
+ instead of a given file.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -u/--user &lt;user:password&gt;
+ Specify user and password to use when fetching. See
+ README.curl for detailed examples of how to use this.
+ If no password is specified, curl will ask for it
+ interactively.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -U/--proxy-user &lt;user:password&gt;
+ Specify user and password to use for Proxy authentica­
+ tion. If no password is specified, curl will ask for it
+ interactively.
+
+ If this option is used several times, the last one will
+ be used.
+
+ --url &lt;URL&gt;
+ Specify a URL to fetch. This option is mostly handy
+ when you want to specify URL(s) in a config file.
+
+ This option may be used any number of times. To control
+ where this URL is written, use the <I>-o</I> or the <I>-O</I>
+ options.
+
+ -v/--verbose
+ Makes the fetching more verbose/talkative. Mostly
+ usable for debugging. Lines starting with '&gt;' means
+ data sent by curl, '&lt;' means data received by curl that
+ is hidden in normal cases and lines starting with '*'
+ means additional info provided by curl.
+
+ If this option is used twice, the second will again
+ disable verbose.
+
+ -V/--version
+ Displays the full version of curl, libcurl and other
+ 3rd party libraries linked with the executable.
+
+ -w/--write-out &lt;format&gt;
+ Defines what to display after a completed and success­
+ ful operation. The format is a string that may contain
+ plain text mixed with any number of variables. The
+ string can be specified as "string", to get read from a
+ particular file you specify it "@filename" and to tell
+ curl to read the format from stdin you write "@-".
+
+ The variables present in the output format will be sub­
+ stituted by the value or text that curl thinks fit, as
+ described below. All variables are specified like
+ %{variable_name} and to output a normal % you just
+ write them like %%. You can output a newline by using
+ \n, a carriage return with \r and a tab space with \t.
+
+ <B>NOTE:</B> The %-letter is a special letter in the
+ win32-environment, where all occurrences of % must be
+ doubled when using this option.
+
+ Available variables are at this point:
+
+ <B>url_effective</B> The URL that was fetched last. This is
+ mostly meaningful if you've told curl to
+ follow location: headers.
+
+ <B>http_code</B> The numerical code that was found in the
+ last retrieved HTTP(S) page.
+
+ <B>time_total</B> The total time, in seconds, that the
+ full operation lasted. The time will be
+ displayed with millisecond resolution.
+
+ <B>time_namelookup</B>
+ The time, in seconds, it took from the
+ start until the name resolving was com­
+ pleted.
+
+ <B>time_connect</B> The time, in seconds, it took from the
+ start until the connect to the remote
+ host (or proxy) was completed.
+
+ <B>time_pretransfer</B>
+ The time, in seconds, it took from the
+ start until the file transfer is just
+ about to begin. This includes all pre-
+ transfer commands and negotiations that
+ are specific to the particular proto­
+ col(s) involved.
+
+ <B>time_starttransfer</B>
+ The time, in seconds, it took from the
+ start until the first byte is just about
+ to be transfered. This includes
+ time_pretransfer and also the time the
+ server needs to calculate the result.
+
+ <B>size_download</B> The total amount of bytes that were
+ downloaded.
+
+ <B>size_upload</B> The total amount of bytes that were
+ uploaded.
+
+ <B>size_header</B> The total amount of bytes of the down­
+ loaded headers.
+
+ <B>size_request</B> The total amount of bytes that were sent
+ in the HTTP request.
+
+ <B>speed_download</B> The average download speed that curl
+ measured for the complete download.
+
+ <B>speed_upload</B> The average upload speed that curl mea­
+ sured for the complete upload.
+
+ <B>content_type</B> The Content-Type of the requested docu­
+ ment, if there was any. (Added in 7.9.5)
+
+ If this option is used several times, the last one will be
+ used.
+
+ -x/--proxy &lt;proxyhost[:port]&gt;
+ Use specified HTTP proxy. If the port number is not
+ specified, it is assumed at port 1080.
+
+ <B>Note</B> that all operations that are performed over a HTTP
+ proxy will transparantly be converted to HTTP. It means
+ that certain protocol specific operations might not be
+ available. This is not the case if you can tunnel
+ through the proxy, as done with the <I>-p/--proxytunnel</I>
+ option.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -X/--request &lt;command&gt;
+ (HTTP) Specifies a custom request to use when communi­
+ cating with the HTTP server. The specified request
+ will be used instead of the standard GET. Read the HTTP
+ 1.1 specification for details and explanations.
+
+ (FTP) Specifies a custom FTP command to use instead of
+ LIST when doing file lists with ftp.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -y/--speed-time &lt;time&gt;
+ If a download is slower than speed-limit bytes per sec­
+ ond during a speed-time period, the download gets
+ aborted. If speed-time is used, the default speed-limit
+ will be 1 unless set with -y.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -Y/--speed-limit &lt;speed&gt;
+ If a download is slower than this given speed, in bytes
+ per second, for speed-time seconds it gets aborted.
+ speed-time is set with -Y and is 30 if not set.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -z/--time-cond &lt;date expression&gt;
+ (HTTP) Request to get a file that has been modified
+ later than the given time and date, or one that has
+ been modified before that time. The date expression can
+ be all sorts of date strings or if it doesn't match any
+ internal ones, it tries to get the time from a given
+ file name instead! See the <B>GNU</B> <B>date(1)</B> or <B>curl_get­</B>
+ <B>date(3)</B> man pages for date expression details.
+
+ Start the date expression with a dash (-) to make it
+ request for a document that is older than the given
+ date/time, default is a document that is newer than the
+ specified date/time.
+
+ If this option is used several times, the last one will
+ be used.
+
+ -3/--sslv3
+ (HTTPS) Forces curl to use SSL version 3 when negotiat­
+ ing with a remote SSL server.
+
+ -2/--sslv2
+ (HTTPS) Forces curl to use SSL version 2 when negotiat­
+ ing with a remote SSL server.
+
+ -0/--http1.0
+ (HTTP) Forces curl to issue its requests using HTTP 1.0
+ instead of using its internally preferred: HTTP 1.1.
+
+ -#/--progress-bar
+ Make curl display progress information as a progress
+ bar instead of the default statistics.
+
+ If this option is used twice, the second will again
+ disable the progress bar.
+
+ --crlf
+ (FTP) Convert LF to CRLF in upload. Useful for MVS
+ (OS/390).
+
+ If this option is used twice, the second will again
+ disable crlf converting.
+
+ --stderr &lt;file&gt;
+ Redirect all writes to stderr to the specified file
+ instead. If the file name is a plain '-', it is instead
+ written to stdout. This option has no point when you're
+ using a shell with decent redirecting capabilities.
+
+ If this option is used several times, the last one will
+ be used.
+
+
+</PRE>
+<H2>FILES</H2><PRE>
+ <I>~/.curlrc</I>
+ Default config file.
+
+
+</PRE>
+<H2>ENVIRONMENT</H2><PRE>
+ http_proxy [protocol://]&lt;host&gt;[:port]
+ Sets proxy server to use for HTTP.
+
+ HTTPS_PROXY [protocol://]&lt;host&gt;[:port]
+ Sets proxy server to use for HTTPS.
+
+ FTP_PROXY [protocol://]&lt;host&gt;[:port]
+ Sets proxy server to use for FTP.
+
+ GOPHER_PROXY [protocol://]&lt;host&gt;[:port]
+ Sets proxy server to use for GOPHER.
+
+ ALL_PROXY [protocol://]&lt;host&gt;[:port]
+ Sets proxy server to use if no protocol-specific proxy
+ is set.
+
+ NO_PROXY &lt;comma-separated list of hosts&gt;
+ list of host names that shouldn't go through any proxy.
+ If set to a asterisk
+
+
+</PRE>
+<H2>EXIT CODES</H2><PRE>
+ There exists a bunch of different error codes and their cor­
+ responding error messages that may appear during bad condi­
+ tions. At the time of this writing, the exit codes are:
+
+ 1 Unsupported protocol. This build of curl has no support
+ for this protocol.
+
+ 2 Failed to initialize.
+
+ 3 URL malformat. The syntax was not correct.
+
+ 4 URL user malformatted. The user-part of the URL syntax
+ was not correct.
+
+ 5 Couldn't resolve proxy. The given proxy host could not
+ be resolved.
+
+ 6 Couldn't resolve host. The given remote host was not
+ resolved.
+
+ 7 Failed to connect to host.
+
+ 8 FTP weird server reply. The server sent data curl
+ couldn't parse.
+
+ 9 FTP access denied. The server denied login.
+
+ 10 FTP user/password incorrect. Either one or both were
+ not accepted by the server.
+
+ 11 FTP weird PASS reply. Curl couldn't parse the reply
+ sent to the PASS request.
+
+ 12 FTP weird USER reply. Curl couldn't parse the reply
+ sent to the USER request.
+
+ 13 FTP weird PASV reply, Curl couldn't parse the reply
+ sent to the PASV request.
+
+ 14 FTP weird 227 format. Curl couldn't parse the 227-line
+ the server sent.
+
+ 15 FTP can't get host. Couldn't resolve the host IP we got
+ in the 227-line.
+
+ 16 FTP can't reconnect. Couldn't connect to the host we
+ got in the 227-line.
+
+ 17 FTP couldn't set binary. Couldn't change transfer
+ method to binary.
+
+ 18 Partial file. Only a part of the file was transfered.
+
+ 19 FTP couldn't RETR file. The RETR command failed.
+
+ 20 FTP write error. The transfer was reported bad by the
+ server.
+
+ 21 FTP quote error. A quote command returned error from
+ the server.
+
+ 22 HTTP not found. The requested page was not found. This
+ return code only appears if --fail is used.
+
+ 23 Write error. Curl couldn't write data to a local
+ filesystem or similar.
+
+ 24 Malformat user. User name badly specified.
+
+ 25 FTP couldn't STOR file. The server denied the STOR
+ operation.
+
+ 26 Read error. Various reading problems.
+
+ 27 Out of memory. A memory allocation request failed.
+
+ 28 Operation timeout. The specified time-out period was
+ reached according to the conditions.
+
+ 29 FTP couldn't set ASCII. The server returned an unknown
+ reply.
+
+ 30 FTP PORT failed. The PORT command failed.
+
+ 31 FTP couldn't use REST. The REST command failed.
+
+ 32 FTP couldn't use SIZE. The SIZE command failed. The
+ command is an extension to the original FTP spec RFC
+ 959.
+
+ 33 HTTP range error. The range "command" didn't work.
+
+ 34 HTTP post error. Internal post-request generation
+ error.
+
+ 35 SSL connect error. The SSL handshaking failed.
+
+ 36 FTP bad download resume. Couldn't continue an earlier
+ aborted download.
+
+ 37 FILE couldn't read file. Failed to open the file. Per­
+ missions?
+
+ 38 LDAP cannot bind. LDAP bind operation failed.
+
+ 39 LDAP search failed.
+
+ 40 Library not found. The LDAP library was not found.
+
+ 41 Function not found. A required LDAP function was not
+ found.
+
+ 42 Aborted by callback. An application told curl to abort
+ the operation.
+
+ 43 Internal error. A function was called with a bad param­
+ eter.
+
+ 44 Internal error. A function was called in a bad order.
+
+ 45 Interface error. A specified outgoing interface could
+ not be used.
+
+ 46 Bad password entered. An error was signaled when the
+ password was entered.
+
+ 47 Too many redirects. When following redirects, curl hit
+ the maximum amount.
+
+ 48 Unknown TELNET option specified.
+
+ 49 Malformed telnet option.
+
+ 51 The remote peer's SSL certificate wasn't ok
+ 52 The server didn't reply anything, which here is consid­
+ ered an error.
+
+ XX There will appear more error codes here in future
+ releases. The existing ones are meant to never change.
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ If you do find bugs, mail them to curl-bug@haxx.se.
+
+
+</PRE>
+<H2>AUTHORS / CONTRIBUTORS</H2><PRE>
+ Daniel Stenberg is the main author, but the whole list of
+ contributors is found in the separate THANKS file.
+
+
+</PRE>
+<H2>WWW</H2><PRE>
+ http://curl.haxx.se
+
+
+</PRE>
+<H2>FTP</H2><PRE>
+ ftp://ftp.sunet.se/pub/www/utilities/curl/
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>ftp(1)</B>, <B>wget(1)</B>, <B>snarf(1)</B>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/examples/Makefile.am b/Build/source/libs/curl/docs/examples/Makefile.am
new file mode 100644
index 00000000000..9f641b58288
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/Makefile.am
@@ -0,0 +1,13 @@
+#
+# $Id: Makefile.am,v 1.17 2002/01/25 10:07:07 bagder Exp $
+#
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+EXTRA_DIST = README curlgtk.c sepheaders.c simple.c postit2.c \
+ win32sockets.c persistant.c ftpget.c Makefile.example \
+ multithread.c getinmemory.c ftpupload.c httpput.c \
+ simplessl.c ftpgetresp.c http-post.c
+
+all:
+ @echo "done"
diff --git a/Build/source/libs/curl/docs/examples/Makefile.example b/Build/source/libs/curl/docs/examples/Makefile.example
new file mode 100644
index 00000000000..97ef1cb984c
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/Makefile.example
@@ -0,0 +1,42 @@
+#############################################################################
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# $Id: Makefile.example,v 1.2 2001/05/15 12:56:38 bagder Exp $
+#
+
+# What to call the final executable
+TARGET = example
+
+# Which object files that the executable consists of
+OBJS= ftpget.o
+
+# What compiler to use
+CC = gcc
+
+# Compiler flags, -g for debug, -c to make an object file
+CFLAGS = -c -g
+
+# This should point to a directory that holds libcurl, if it isn't
+# in the system's standard lib dir
+# We also set a -L to include the directory where we have the openssl
+# libraries
+LDFLAGS = -L/home/dast/lib -L/usr/local/ssl/lib
+
+# We need -lcurl for the curl stuff
+# We need -lsocket and -lnsl when on Solaris
+# We need -lssl and -lcrypto when using libcurl with SSL support
+# We need -ldl for dlopen() if that is in libdl
+# We need -lpthread for the pthread example
+LIBS = -lcurl -lsocket -lnsl -lssl -lcrypto -dl
+
+# Link the target with all objects and libraries
+$(TARGET) : $(OBJS)
+ $(CC) $(LDFLAGS) $(LIBS) -o $(TARGET) $(OBJS)
+
+# Compile the source files into object files
+ftpget.o : ftpget.c
+ $(CC) $(CFLAGS) $<
diff --git a/Build/source/libs/curl/docs/examples/Makefile.in b/Build/source/libs/curl/docs/examples/Makefile.in
new file mode 100644
index 00000000000..19cbc8c39f3
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/Makefile.in
@@ -0,0 +1,236 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# $Id: Makefile.am,v 1.17 2002/01/25 10:07:07 bagder Exp $
+#
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IPV6_ENABLED = @IPV6_ENABLED@
+KRB4_ENABLED = @KRB4_ENABLED@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+NROFF = @NROFF@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OPENSSL_ENABLED = @OPENSSL_ENABLED@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PKGADD_NAME = @PKGADD_NAME@
+PKGADD_PKG = @PKGADD_PKG@
+PKGADD_VENDOR = @PKGADD_VENDOR@
+RANDOM_FILE = @RANDOM_FILE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VERSIONNUM = @VERSIONNUM@
+YACC = @YACC@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+EXTRA_DIST = README curlgtk.c sepheaders.c simple.c postit2.c \
+ win32sockets.c persistant.c ftpget.c Makefile.example \
+ multithread.c getinmemory.c ftpupload.c httpput.c \
+ simplessl.c ftpgetresp.c http-post.c
+
+subdir = docs/examples
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/lib/config.h \
+ $(top_builddir)/src/config.h \
+ $(top_builddir)/tests/server/config.h
+CONFIG_CLEAN_FILES =
+depcomp =
+DIST_SOURCES =
+DIST_COMMON = README Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/examples/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool uninstall uninstall-am uninstall-info-am
+
+
+all:
+ @echo "done"
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Build/source/libs/curl/docs/examples/README b/Build/source/libs/curl/docs/examples/README
new file mode 100644
index 00000000000..46f7321fb99
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/README
@@ -0,0 +1,22 @@
+EXAMPLES
+
+This directory is for tiny libcurl programming examples. They are meant to
+show some simple steps on how you can build your own application to take full
+advantage of libcurl.
+
+If you end up with other small but still useful example sources, please mail
+them for submission in future packages and on the web site.
+
+The Makefile.example is an example makefile that could be used to build these
+examples. Just edit the file according to your system and requirements first.
+
+Most examples should build fine using a command line like this:
+
+ $ gcc `curl-config --cflags` `curl-config --libs` -o example example.c
+
+Try the php/examples/ directory for PHP programming snippets!
+
+ *PLEASE* do not use the curl.haxx.se site as a test target for your libcurl
+ applications/experiments. Even if the examples in this directory use that
+ site as an example URL at some places, it doesn't mean that the URLs work or
+ that we expect you to actually torture our web site with your tests! Thanks.
diff --git a/Build/source/libs/curl/docs/examples/curlgtk.c b/Build/source/libs/curl/docs/examples/curlgtk.c
new file mode 100644
index 00000000000..f3574e5401a
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/curlgtk.c
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: curlgtk.c,v 1.2 2001/02/20 13:56:39 bagder Exp $
+ */
+/* Copyright (c) 2000 David Odin (aka DindinX) for MandrakeSoft */
+/* an attempt to use the curl library in concert with a gtk-threaded application */
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+
+#include <curl/curl.h>
+#include <curl/types.h> /* new for v7 */
+#include <curl/easy.h> /* new for v7 */
+
+#include <pthread.h>
+
+GtkWidget *Bar;
+
+size_t my_read_func(void *ptr, size_t size, size_t nmemb, FILE *stream)
+{
+ return fread(ptr, size, nmemb, stream);
+}
+
+int my_progress_func(GtkWidget *Bar, int t, int d)
+{
+/* printf("%d / %d (%g %%)\n", d, t, d*100.0/t);*/
+ gdk_threads_enter();
+ gtk_progress_set_value(GTK_PROGRESS(Bar), d*100.0/t);
+ gdk_threads_leave();
+ return 0;
+}
+
+void *curl_thread(void *ptr)
+{
+ CURL *curl;
+ CURLcode res;
+ FILE *outfile;
+ gchar *url = ptr;
+
+ curl = curl_easy_init();
+ if(curl)
+ {
+ outfile = fopen("/tmp/test.curl", "w");
+
+ curl_easy_setopt(curl, CURLOPT_URL, url);
+ curl_easy_setopt(curl, CURLOPT_FILE, outfile);
+ curl_easy_setopt(curl, CURLOPT_READFUNCTION, my_read_func);
+ curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, my_progress_func);
+ curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, Bar);
+
+ res = curl_easy_perform(curl);
+
+ fclose(outfile);
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ return NULL;
+}
+
+int main(int argc, char **argv)
+{
+ GtkWidget *Window, *Frame, *Frame2;
+ GtkAdjustment *adj;
+ pthread_t curl_tid;
+
+ /* Init thread */
+ g_thread_init(NULL);
+
+ gtk_init(&argc, &argv);
+ Window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ Frame = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(Frame), GTK_SHADOW_OUT);
+ gtk_container_add(GTK_CONTAINER(Window), Frame);
+ Frame2 = gtk_frame_new(NULL);
+ gtk_frame_set_shadow_type(GTK_FRAME(Frame2), GTK_SHADOW_IN);
+ gtk_container_add(GTK_CONTAINER(Frame), Frame2);
+ gtk_container_set_border_width(GTK_CONTAINER(Frame2), 5);
+ adj = (GtkAdjustment*)gtk_adjustment_new(0, 0, 100, 0, 0, 0);
+ Bar = gtk_progress_bar_new_with_adjustment(adj);
+ gtk_container_add(GTK_CONTAINER(Frame2), Bar);
+ gtk_widget_show_all(Window);
+
+ pthread_create(&curl_tid, NULL, curl_thread, argv[1]);
+
+ gdk_threads_enter();
+ gtk_main();
+ gdk_threads_leave();
+ return 0;
+}
+
diff --git a/Build/source/libs/curl/docs/examples/ftpget.c b/Build/source/libs/curl/docs/examples/ftpget.c
new file mode 100644
index 00000000000..f453bf03756
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/ftpget.c
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: ftpget.c,v 1.2 2002/01/08 13:05:44 bagder Exp $
+ */
+
+#include <stdio.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+/*
+ * This is an example showing how to get a single file from an FTP server.
+ * It delays the actual destination file creation until the first write
+ * callback so that it won't create an empty file in case the remote file
+ * doesn't exist or something else fails.
+ */
+
+struct FtpFile {
+ char *filename;
+ FILE *stream;
+};
+
+int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
+{
+ struct FtpFile *out=(struct FtpFile *)stream;
+ if(out && !out->stream) {
+ /* open file for writing */
+ out->stream=fopen(out->filename, "wb");
+ if(!out->stream)
+ return -1; /* failure, can't open file to write */
+ }
+ return fwrite(buffer, size, nmemb, out->stream);
+}
+
+
+int main(void)
+{
+ CURL *curl;
+ CURLcode res;
+ struct FtpFile ftpfile={
+ "curl.tar.gz", /* name to store the file as if succesful */
+ NULL
+ };
+
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+
+ curl = curl_easy_init();
+ if(curl) {
+ /* Get curl 7.9.2 from sunet.se's FTP site: */
+ curl_easy_setopt(curl, CURLOPT_URL,
+ "ftp://ftp.sunet.se/pub/www/utilities/curl/curl-7.9.2.tar.gz");
+ /* Define our callback to get called when there's data to be written */
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
+ /* Set a pointer to our struct to pass to the callback */
+ curl_easy_setopt(curl, CURLOPT_FILE, &ftpfile);
+
+ /* Switch on full protocol/debug output */
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
+
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+
+ if(CURLE_OK != res) {
+ /* we failed */
+ fprintf(stderr, "curl told us %d\n", res);
+ }
+ }
+
+ if(ftpfile.stream)
+ fclose(ftpfile.stream); /* close the local file */
+
+ curl_global_cleanup();
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/ftpgetresp.c b/Build/source/libs/curl/docs/examples/ftpgetresp.c
new file mode 100644
index 00000000000..923fe617cae
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/ftpgetresp.c
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: ftpgetresp.c,v 1.1 2002/01/08 08:25:44 bagder Exp $
+ */
+
+#include <stdio.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+/*
+ * Similar to ftpget.c but this also stores the received response-lines
+ * in a separate file using our own callback!
+ *
+ * This functionality was introduced in libcurl 7.9.3.
+ */
+
+size_t
+write_response(void *ptr, size_t size, size_t nmemb, void *data)
+{
+ FILE *writehere = (FILE *)data;
+ return fwrite(ptr, size, nmemb, writehere);
+}
+
+int main(int argc, char **argv)
+{
+ CURL *curl;
+ CURLcode res;
+ FILE *ftpfile;
+ FILE *respfile;
+
+ /* local file name to store the file as */
+ ftpfile = fopen("ftp-list", "wb"); /* b is binary, needed on win32 */
+
+ /* local file name to store the FTP server's response lines in */
+ respfile = fopen("ftp-responses", "wb"); /* b is binary, needed on win32 */
+
+ curl = curl_easy_init();
+ if(curl) {
+ /* Get a file listing from sunet */
+ curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.sunet.se/");
+ curl_easy_setopt(curl, CURLOPT_FILE, ftpfile);
+ curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, write_response);
+ curl_easy_setopt(curl, CURLOPT_WRITEHEADER, respfile);
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+
+ fclose(ftpfile); /* close the local file */
+ fclose(respfile); /* close the response file */
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/ftpupload.c b/Build/source/libs/curl/docs/examples/ftpupload.c
new file mode 100644
index 00000000000..0014104b818
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/ftpupload.c
@@ -0,0 +1,88 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: ftpupload.c,v 1.1 2001/08/29 07:12:04 bagder Exp $
+ */
+
+#include <stdio.h>
+
+#include <curl/curl.h>
+
+/*
+ * This example shows an FTP upload, with a rename of the file just after
+ * a successful upload.
+ *
+ * Example based on source code provided by Erick Nuwendam. Thanks!
+ */
+
+#define LOCAL_FILE "/tmp/uploadthis.txt"
+#define UPLOAD_FILE_AS "while-uploading.txt"
+#define REMOTE_URL "ftp://localhost/" UPLOAD_FILE_AS
+#define RENAME_FILE_TO "renamed-and-fine.txt"
+
+int main(int argc, char **argv)
+{
+ CURL *curl;
+ CURLcode res;
+ FILE *ftpfile;
+ FILE * hd_src ;
+ int hd ;
+ struct stat file_info;
+
+ struct curl_slist *headerlist=NULL;
+ char buf_1 [] = "RNFR " UPLOAD_FILE_AS;
+ char buf_2 [] = "RNTO " RENAME_FILE_TO;
+
+ /* get the file size of the local file */
+ hd = open(LOCAL_FILE, O_RDONLY) ;
+ fstat(hd, &file_info);
+ close(hd) ;
+
+ /* get a FILE * of the same file, could also be made with
+ fdopen() from the previous descriptor, but hey this is just
+ an example! */
+ hd_src = fopen(LOCAL_FILE, "rb");
+
+ /* In windows, this will init the winsock stuff */
+ curl_global_init(CURL_GLOBAL_ALL);
+
+ /* get a curl handle */
+ curl = curl_easy_init();
+ if(curl) {
+ /* build a list of commands to pass to libcurl */
+ headerlist = curl_slist_append(headerlist, buf_1);
+ headerlist = curl_slist_append(headerlist, buf_2);
+
+ /* enable uploading */
+ curl_easy_setopt(curl, CURLOPT_UPLOAD, TRUE) ;
+
+ /* specify target */
+ curl_easy_setopt(curl,CURLOPT_URL, REMOTE_URL);
+
+ /* pass in that last of FTP commands to run after the transfer */
+ curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist);
+
+ /* now specify which file to upload */
+ curl_easy_setopt(curl, CURLOPT_INFILE, hd_src);
+
+ /* and give the size of the upload (optional) */
+ curl_easy_setopt(curl, CURLOPT_INFILESIZE, file_info.st_size);
+
+ /* Now run off and do what you've been told! */
+ res = curl_easy_perform(curl);
+
+ /* clean up the FTP commands list */
+ curl_slist_free_all (headerlist);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ fclose(hd_src); /* close the local file */
+
+ curl_global_cleanup();
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/getinmemory.c b/Build/source/libs/curl/docs/examples/getinmemory.c
new file mode 100644
index 00000000000..8d65a39f88d
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/getinmemory.c
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: getinmemory.c,v 1.2 2001/05/15 13:04:53 bagder Exp $
+ *
+ * Example source code to show how the callback function can be used to
+ * download data into a chunk of memory instead of storing it in a file.
+ *
+ * This exact source code has not been verified to work.
+ */
+
+/* to make this work under windows, use the win32-functions from the
+ win32socket.c file as well */
+
+#include <stdio.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+struct MemoryStruct {
+ char *memory;
+ size_t size;
+};
+
+size_t
+WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
+{
+ register int realsize = size * nmemb;
+ struct MemoryStruct *mem = (struct MemoryStruct *)data;
+
+ mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1);
+ if (mem->memory) {
+ memcpy(&(mem->memory[mem->size]), ptr, realsize);
+ mem->size += realsize;
+ mem->memory[mem->size] = 0;
+ }
+ return realsize;
+}
+
+int main(int argc, char **argv)
+{
+ CURL *curl_handle;
+
+ struct MemoryStruct chunk;
+
+ chunk.memory=NULL; /* we expect realloc(NULL, size) to work */
+ chunk.size = 0; /* no data at this point */
+
+ /* init the curl session */
+ curl_handle = curl_easy_init();
+
+ /* specify URL to get */
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://cool.haxx.se/");
+
+ /* send all data to this function */
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
+
+ /* we pass our 'chunk' struct to the callback function */
+ curl_easy_setopt(curl_handle, CURLOPT_FILE, (void *)&chunk);
+
+ /* get it! */
+ curl_easy_perform(curl_handle);
+
+ /* cleanup curl stuff */
+ curl_easy_cleanup(curl_handle);
+
+ /*
+ * Now, our chunk.memory points to a memory block that is chunk.size
+ * bytes big and contains the remote file.
+ *
+ * Do something nice with it!
+ */
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/http-post.c b/Build/source/libs/curl/docs/examples/http-post.c
new file mode 100644
index 00000000000..e8ec969b5a5
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/http-post.c
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: http-post.c,v 1.1 2002/01/10 09:00:02 bagder Exp $
+ */
+
+#include <stdio.h>
+#include <curl/curl.h>
+
+int main(void)
+{
+ CURL *curl;
+ CURLcode res;
+
+ curl = curl_easy_init();
+ if(curl) {
+ /* First set the URL that is about to receive our POST. This URL can
+ just as well be a https:// URL if that is what should receive the
+ data. */
+ curl_easy_setopt(curl, CURLOPT_URL, "http://postit.example.com/moo.cgi");
+ /* Now specify the POST data */
+ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");
+
+ /* Perform the request, res will get the return code */
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/httpput.c b/Build/source/libs/curl/docs/examples/httpput.c
new file mode 100644
index 00000000000..82a932eca83
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/httpput.c
@@ -0,0 +1,100 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: httpput.c,v 1.1 2001/09/25 05:55:56 bagder Exp $
+ */
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#include <curl/curl.h>
+
+/*
+ * This example shows a HTTP PUT operation. PUTs a file given as a command
+ * line argument to the URL also given on the command line.
+ *
+ * This example also uses its own read callback.
+ */
+
+size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
+{
+ size_t retcode;
+
+ /* in real-world cases, this would probably get this data differently
+ as this fread() stuff is exactly what the library already would do
+ by default internally */
+ retcode = fread(ptr, size, nmemb, stream);
+
+ fprintf(stderr, "*** We read %d bytes from file\n", retcode);
+
+ return retcode;
+}
+
+int main(int argc, char **argv)
+{
+ CURL *curl;
+ CURLcode res;
+ FILE *ftpfile;
+ FILE * hd_src ;
+ int hd ;
+ struct stat file_info;
+
+ char *file;
+ char *url;
+
+ if(argc < 3)
+ return 1;
+
+ file= argv[1];
+ url = argv[2];
+
+ /* get the file size of the local file */
+ hd = open(file, O_RDONLY) ;
+ fstat(hd, &file_info);
+ close(hd) ;
+
+ /* get a FILE * of the same file, could also be made with
+ fdopen() from the previous descriptor, but hey this is just
+ an example! */
+ hd_src = fopen(file, "rb");
+
+ /* In windows, this will init the winsock stuff */
+ curl_global_init(CURL_GLOBAL_ALL);
+
+ /* get a curl handle */
+ curl = curl_easy_init();
+ if(curl) {
+ /* we want to use our own read function */
+ curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
+
+ /* enable uploading */
+ curl_easy_setopt(curl, CURLOPT_UPLOAD, TRUE) ;
+
+ /* HTTP PUT please */
+ curl_easy_setopt(curl, CURLOPT_PUT, TRUE);
+
+ /* specify target */
+ curl_easy_setopt(curl,CURLOPT_URL, url);
+
+ /* now specify which file to upload */
+ curl_easy_setopt(curl, CURLOPT_INFILE, hd_src);
+
+ /* and give the size of the upload (optional) */
+ curl_easy_setopt(curl, CURLOPT_INFILESIZE, file_info.st_size);
+
+ /* Now run off and do what you've been told! */
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ fclose(hd_src); /* close the local file */
+
+ curl_global_cleanup();
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/multithread.c b/Build/source/libs/curl/docs/examples/multithread.c
new file mode 100644
index 00000000000..5d704f6838c
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/multithread.c
@@ -0,0 +1,70 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: multithread.c,v 1.1 2001/05/04 09:35:43 bagder Exp $
+ */
+
+/* A multi-threaded example that uses pthreads extensively to fetch
+ * X remote files at once */
+
+#include <stdio.h>
+#include <pthread.h>
+#include <curl/curl.h>
+
+/* silly list of test-URLs */
+char *urls[]= {
+ "http://curl.haxx.se/",
+ "ftp://cool.haxx.se/",
+ "http://www.contactor.se/",
+ "www.haxx.se"
+};
+
+void *pull_one_url(void *url)
+{
+ CURL *curl;
+
+ curl = curl_easy_init();
+
+ curl_easy_setopt(curl, CURLOPT_URL, url);
+ curl_easy_perform(curl);
+
+ curl_easy_cleanup(curl);
+
+ return NULL;
+}
+
+
+/*
+ int pthread_create(pthread_t *new_thread_ID,
+ const pthread_attr_t *attr,
+ void * (*start_func)(void *), void *arg);
+*/
+
+int main(int argc, char **argv)
+{
+ pthread_t tid[4];
+ int i;
+ int error;
+ for(i=0; i< 4; i++) {
+ error = pthread_create(&tid[i],
+ NULL, /* default attributes please */
+ pull_one_url,
+ urls[i]);
+ if(0 != error)
+ fprintf(stderr, "Couldn't run thread number %d, errno %d\n", i, error);
+ else
+ fprintf(stderr, "Thread %d, gets %s\n", i, urls[i]);
+ }
+
+ /* now wait for all threads to terminate */
+ for(i=0; i< 4; i++) {
+ error = pthread_join(tid[i], NULL);
+ fprintf(stderr, "Thread %d terminated\n", i);
+ }
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/persistant.c b/Build/source/libs/curl/docs/examples/persistant.c
new file mode 100644
index 00000000000..db36b529481
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/persistant.c
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: persistant.c,v 1.1 2001/03/05 16:56:10 bagder Exp $
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+
+#include <curl/curl.h>
+
+/* to make this work under windows, use the win32-functions from the
+ docs/examples/win32socket.c file as well */
+
+/* This example REQUIRES libcurl 7.7 or later */
+#if (LIBCURL_VERSION_NUM < 0x070700)
+#error Too old libcurl version, upgrade or stay away.
+#endif
+
+int main(int argc, char **argv)
+{
+ CURL *curl;
+ CURLcode res;
+
+#ifdef MALLOCDEBUG
+ /* this sends all memory debug messages to a specified logfile */
+ curl_memdebug("memdump");
+#endif
+
+ curl = curl_easy_init();
+ if(curl) {
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
+ curl_easy_setopt(curl, CURLOPT_HEADER, 1);
+
+ /* get the first document */
+ curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se/");
+ res = curl_easy_perform(curl);
+
+ /* get another document from the same server using the same
+ connection */
+ curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se/docs/");
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/postit2.c b/Build/source/libs/curl/docs/examples/postit2.c
new file mode 100644
index 00000000000..d7def6c76fb
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/postit2.c
@@ -0,0 +1,92 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: postit2.c,v 1.1 2001/08/23 08:45:20 bagder Exp $
+ *
+ * Example code that uploads a file name 'foo' to a remote script that accepts
+ * "HTML form based" (as described in RFC1738) uploads using HTTP POST.
+ *
+ * The imaginary form we'll fill in looks like:
+ *
+ * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
+ * Enter file: <input type="file" name="sendfile" size="40">
+ * Enter file name: <input type="text" name="filename" size="30">
+ * <input type="submit" value="send" name="submit">
+ * </form>
+ *
+ * This exact source code has not been verified to work.
+ */
+
+/* to make this work under windows, use the win32-functions from the
+ win32socket.c file as well */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+#if LIBCURL_VERSION_NUM < 0x070900
+#error "curl_formadd() is not introduced until libcurl 7.9 and later"
+#endif
+
+int main(int argc, char *argv[])
+{
+ CURL *curl;
+ CURLcode res;
+
+ struct HttpPost *formpost=NULL;
+ struct HttpPost *lastptr=NULL;
+ struct curl_slist *headerlist=NULL;
+ char buf[] = "Expect:";
+
+ /* Fill in the file upload field */
+ curl_formadd(&formpost,
+ &lastptr,
+ CURLFORM_COPYNAME, "sendfile",
+ CURLFORM_FILE, "postit2.c",
+ CURLFORM_END);
+
+ /* Fill in the filename field */
+ curl_formadd(&formpost,
+ &lastptr,
+ CURLFORM_COPYNAME, "filename",
+ CURLFORM_COPYCONTENTS, "postit2.c",
+ CURLFORM_END);
+
+
+ /* Fill in the submit field too, even if this is rarely needed */
+ curl_formadd(&formpost,
+ &lastptr,
+ CURLFORM_COPYNAME, "submit",
+ CURLFORM_COPYCONTENTS, "send",
+ CURLFORM_END);
+
+ curl = curl_easy_init();
+ /* initalize custom header list (stating that Expect: 100-continue is not
+ wanted */
+ headerlist = curl_slist_append(headerlist, buf);
+ if(curl) {
+ /* what URL that receives this POST */
+ curl_easy_setopt(curl, CURLOPT_URL, "http://curl.haxx.se/examplepost.cgi");
+ if ( (argc == 2) && (!strcmp(argv[1], "noexpectheader")) )
+ /* only disable 100-continue header if explicitly requested */
+ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
+ curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+
+ /* then cleanup the formpost chain */
+ curl_formfree(formpost);
+ /* free slist */
+ curl_slist_free_all (headerlist);
+ }
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/sepheaders.c b/Build/source/libs/curl/docs/examples/sepheaders.c
new file mode 100644
index 00000000000..9156389bb94
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/sepheaders.c
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: sepheaders.c,v 1.3 2001/05/15 12:55:35 bagder Exp $
+ */
+
+/* to make this work under windows, use the win32-functions from the
+ win32socket.c file as well */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
+{
+ written = fwrite(ptr, size, nmemb, (FILE *)stream);
+ return written;
+}
+
+int main(int argc, char **argv)
+{
+ CURL *curl_handle;
+ char *headerfilename = "head.out";
+ FILE *headerfile;
+ char *bodyfilename = "body.out";
+ FILE *bodyfile;
+
+ /* init the curl session */
+ curl_handle = curl_easy_init();
+
+ /* set URL to get */
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://curl.haxx.se");
+
+ /* no progress meter please */
+ curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1);
+
+ /* shut up completely */
+ curl_easy_setopt(curl_handle, CURLOPT_MUTE, 1);
+
+ /* send all data to this function */
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);
+
+ /* open the files */
+ headerfile = fopen(headerfilename,"w");
+ if (headerfile == NULL) {
+ curl_easy_cleanup(curl_handle);
+ return -1;
+ }
+ bodyfile = fopen(bodyfilename,"w");
+ if (bodyfile == NULL) {
+ curl_easy_cleanup(curl_handle);
+ return -1;
+ }
+
+ /* we want the headers to this file handle */
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEHEADER ,headerfile);
+
+ /* get it! */
+ curl_easy_perform(curl_handle);
+
+ /* close the header file */
+ fclose(headerfile);
+
+ /* cleanup curl stuff */
+ curl_easy_cleanup(curl_handle);
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/simple.c b/Build/source/libs/curl/docs/examples/simple.c
new file mode 100644
index 00000000000..023fbf51c09
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/simple.c
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: simple.c,v 1.5 2002/01/09 13:23:01 bagder Exp $
+ */
+
+#include <stdio.h>
+#include <curl/curl.h>
+
+int main(void)
+{
+ CURL *curl;
+ CURLcode res;
+
+ curl = curl_easy_init();
+ if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se");
+ res = curl_easy_perform(curl);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/simplessl.c b/Build/source/libs/curl/docs/examples/simplessl.c
new file mode 100644
index 00000000000..30c10ef73e0
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/simplessl.c
@@ -0,0 +1,118 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: simplessl.c,v 1.3 2002/01/17 13:45:19 bagder Exp $
+ */
+
+#include <stdio.h>
+
+#include <curl/curl.h>
+#include <curl/types.h>
+#include <curl/easy.h>
+
+
+/* some requirements for this to work:
+ 1. set pCertFile to the file with the client certificate
+ 2. if the key is passphrase protected, set pPassphrase to the
+ passphrase you use
+ 3. if you are using a crypto engine:
+ 3.1. set a #define USE_ENGINE
+ 3.2. set pEngine to the name of the crypto engine you use
+ 3.3. set pKeyName to the key identifier you want to use
+ 4. if you don't use a crypto engine:
+ 4.1. set pKeyName to the file name of your client key
+ 4.2. if the format of the key file is DER, set pKeyType to "DER"
+
+ !! verify of the server certificate is not implemented here !!
+
+ **** This example only works with libcurl 7.9.3 and later! ****
+
+*/
+
+int main(int argc, char **argv)
+{
+ CURL *curl;
+ CURLcode res;
+ FILE *headerfile;
+
+ const char *pCertFile = "testcert.pem";
+ const char *pCACertFile="cacert.pem"
+
+ const char *pKeyName;
+ const char *pKeyType;
+
+ const char *pEngine;
+
+#if USE_ENGINE
+ pKeyName = "rsa_test";
+ pKeyType = "ENG";
+ pEngine = "chil"; /* for nChiper HSM... */
+#else
+ pKeyName = "testkey.pem";
+ pKeyType = "PEM";
+ pEngine = NULL;
+#endif
+
+ const char *pPassphrase = NULL;
+
+ headerfile = fopen("dumpit", "w");
+
+ curl_global_init(CURL_GLOBAL_DEFAULT);
+
+ curl = curl_easy_init();
+ if(curl) {
+ /* what call to write: */
+ curl_easy_setopt(curl, CURLOPT_URL, "HTTPS://curl.haxx.se");
+ curl_easy_setopt(curl, CURLOPT_WRITEHEADER, headerfile);
+
+ while(1) /* do some ugly short cut... */
+ {
+ if (pEngine) /* use crypto engine */
+ {
+ if (curl_easy_setopt(curl, CURLOPT_SSLENGINE,pEngine) != CURLE_OK)
+ { /* load the crypto engine */
+ fprintf(stderr,"can't set crypto engine\n");
+ break;
+ }
+ if (curl_easy_setopt(curl, CURLOPT_SSLENGINE_DEFAULT,1) != CURLE_OK)
+ { /* set the crypto engine as default */
+ /* only needed for the first time you load
+ a engine in a curl object... */
+ fprintf(stderr,"can't set crypto engine as default\n");
+ break;
+ }
+ }
+ /* cert is stored PEM coded in file... */
+ /* since PEM is default, we needn't set it for PEM */
+ curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
+ /* set the cert for client authentication */
+ curl_easy_setopt(curl,CURLOPT_SSLCERT,pCertFile);
+ /* sorry, for engine we must set the passphrase
+ (if the key has one...) */
+ if (pPassphrase)
+ curl_easy_setopt(curl,CURLOPT_SSLKEYPASSWD,pPassphrase);
+ /* if we use a key stored in a crypto engine,
+ we must set the key type to "ENG" */
+ curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,pKeyType);
+ /* set the private key (file or ID in engine) */
+ curl_easy_setopt(curl,CURLOPT_SSLKEY,pKeyName);
+ /* set the file with the certs vaildating the server */
+ curl_easy_setopt(curl,CURLOPT_CAINFO,pCACertFile);
+ /* disconnect if we can't validate server's cert */
+ curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,1);
+
+ res = curl_easy_perform(curl);
+ break; /* we are done... */
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+ }
+
+ curl_global_cleanup();
+
+ return 0;
+}
diff --git a/Build/source/libs/curl/docs/examples/win32sockets.c b/Build/source/libs/curl/docs/examples/win32sockets.c
new file mode 100644
index 00000000000..5f791c8b5e5
--- /dev/null
+++ b/Build/source/libs/curl/docs/examples/win32sockets.c
@@ -0,0 +1,49 @@
+
+/*
+ * Note: This is only required if you use curl 7.8 or lower, later
+ * versions provide an option to curl_global_init() that does the
+ * win32 initialization for you.
+ */
+
+/*
+ * These are example functions doing socket init that Windows
+ * require. If you don't use windows, you can safely ignore this crap.
+ */
+
+#include <windows.h>
+
+void win32_cleanup(void)
+{
+ WSACleanup();
+}
+
+int win32_init(void)
+{
+ WORD wVersionRequested;
+ WSADATA wsaData;
+ int err;
+ wVersionRequested = MAKEWORD(1, 1);
+
+ err = WSAStartup(wVersionRequested, &wsaData);
+
+ if (err != 0)
+ /* Tell the user that we couldn't find a useable */
+ /* winsock.dll. */
+ return 1;
+
+ /* Confirm that the Windows Sockets DLL supports 1.1.*/
+ /* Note that if the DLL supports versions greater */
+ /* than 1.1 in addition to 1.1, it will still return */
+ /* 1.1 in wVersion since that is the version we */
+ /* requested. */
+
+ if ( LOBYTE( wsaData.wVersion ) != 1 ||
+ HIBYTE( wsaData.wVersion ) != 1 ) {
+ /* Tell the user that we couldn't find a useable */
+
+ /* winsock.dll. */
+ WSACleanup();
+ return 1;
+ }
+ return 0; /* 0 is ok */
+}
diff --git a/Build/source/libs/curl/docs/libcurl/Makefile.am b/Build/source/libs/curl/docs/libcurl/Makefile.am
new file mode 100644
index 00000000000..c799c554571
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/Makefile.am
@@ -0,0 +1,68 @@
+#
+# $Id: Makefile.am,v 1.1 2002/03/04 10:09:48 bagder Exp $
+#
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+man_MANS = \
+ curl_easy_cleanup.3 \
+ curl_easy_getinfo.3 \
+ curl_easy_init.3 \
+ curl_easy_perform.3 \
+ curl_easy_setopt.3 \
+ curl_easy_duphandle.3 \
+ curl_formparse.3 \
+ curl_formadd.3 \
+ curl_formfree.3 \
+ curl_getdate.3 \
+ curl_getenv.3 \
+ curl_slist_append.3 \
+ curl_slist_free_all.3 \
+ curl_version.3 \
+ curl_escape.3 \
+ curl_unescape.3 \
+ curl_strequal.3 \
+ curl_strnequal.3 \
+ curl_mprintf.3 \
+ curl_global_init.3 \
+ curl_global_cleanup.3 \
+ libcurl.3
+
+HTMLPAGES = \
+ curl_easy_cleanup.html \
+ curl_easy_getinfo.html \
+ curl_easy_init.html \
+ curl_easy_perform.html \
+ curl_easy_setopt.html \
+ curl_easy_duphandle.html \
+ curl_formadd.html \
+ curl_formparse.html \
+ curl_formfree.html \
+ curl_getdate.html \
+ curl_getenv.html \
+ curl_slist_append.html \
+ curl_slist_free_all.html \
+ curl_version.html \
+ curl_escape.html \
+ curl_unescape.html \
+ curl_strequal.html \
+ curl_strnequal.html \
+ curl_mprintf.html \
+ curl_global_init.html \
+ curl_global_cleanup.html \
+ libcurl.html \
+ index.html
+
+EXTRA_DIST = $(man_MANS) $(HTMLPAGES)
+
+MAN2HTML= gnroff -man $< | man2html >$@
+
+SUFFIXES = .1 .3 .html
+
+html: $(HTMLPAGES)
+
+.3.html:
+ $(MAN2HTML)
+
+.1.html:
+ $(MAN2HTML)
diff --git a/Build/source/libs/curl/docs/libcurl/Makefile.in b/Build/source/libs/curl/docs/libcurl/Makefile.in
new file mode 100644
index 00000000000..25a2f6d2d72
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/Makefile.in
@@ -0,0 +1,347 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+#
+# $Id: Makefile.am,v 1.1 2002/03/04 10:09:48 bagder Exp $
+#
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IPV6_ENABLED = @IPV6_ENABLED@
+KRB4_ENABLED = @KRB4_ENABLED@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+NROFF = @NROFF@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OPENSSL_ENABLED = @OPENSSL_ENABLED@
+PACKAGE = @PACKAGE@
+PERL = @PERL@
+PKGADD_NAME = @PKGADD_NAME@
+PKGADD_PKG = @PKGADD_PKG@
+PKGADD_VENDOR = @PKGADD_VENDOR@
+RANDOM_FILE = @RANDOM_FILE@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VERSIONNUM = @VERSIONNUM@
+YACC = @YACC@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+AUTOMAKE_OPTIONS = foreign no-dependencies
+
+man_MANS = \
+ curl_easy_cleanup.3 \
+ curl_easy_getinfo.3 \
+ curl_easy_init.3 \
+ curl_easy_perform.3 \
+ curl_easy_setopt.3 \
+ curl_easy_duphandle.3 \
+ curl_formparse.3 \
+ curl_formadd.3 \
+ curl_formfree.3 \
+ curl_getdate.3 \
+ curl_getenv.3 \
+ curl_slist_append.3 \
+ curl_slist_free_all.3 \
+ curl_version.3 \
+ curl_escape.3 \
+ curl_unescape.3 \
+ curl_strequal.3 \
+ curl_strnequal.3 \
+ curl_mprintf.3 \
+ curl_global_init.3 \
+ curl_global_cleanup.3 \
+ libcurl.3
+
+
+HTMLPAGES = \
+ curl_easy_cleanup.html \
+ curl_easy_getinfo.html \
+ curl_easy_init.html \
+ curl_easy_perform.html \
+ curl_easy_setopt.html \
+ curl_easy_duphandle.html \
+ curl_formadd.html \
+ curl_formparse.html \
+ curl_formfree.html \
+ curl_getdate.html \
+ curl_getenv.html \
+ curl_slist_append.html \
+ curl_slist_free_all.html \
+ curl_version.html \
+ curl_escape.html \
+ curl_unescape.html \
+ curl_strequal.html \
+ curl_strnequal.html \
+ curl_mprintf.html \
+ curl_global_init.html \
+ curl_global_cleanup.html \
+ libcurl.html \
+ index.html
+
+
+EXTRA_DIST = $(man_MANS) $(HTMLPAGES)
+
+MAN2HTML = gnroff -man $< | man2html >$@
+
+SUFFIXES = .1 .3 .html
+subdir = docs/libcurl
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/lib/config.h \
+ $(top_builddir)/src/config.h \
+ $(top_builddir)/tests/server/config.h
+CONFIG_CLEAN_FILES =
+depcomp =
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES =
+
+NROFF = nroff
+MANS = $(man_MANS)
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .1 .3 .html
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/libcurl/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+uninstall-info-am:
+
+man3dir = $(mandir)/man3
+install-man3: $(man3_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(man3dir)
+ @list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst"; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst; \
+ done
+uninstall-man3:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.3*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f $(DESTDIR)$(man3dir)/$$inst"; \
+ rm -f $(DESTDIR)$(man3dir)/$$inst; \
+ done
+tags: TAGS
+TAGS:
+
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(man3dir)
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man: install-man3
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am uninstall-man
+
+uninstall-man: uninstall-man3
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-man3 install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool uninstall uninstall-am uninstall-info-am \
+ uninstall-man uninstall-man3
+
+
+html: $(HTMLPAGES)
+
+.3.html:
+ $(MAN2HTML)
+
+.1.html:
+ $(MAN2HTML)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.3
new file mode 100644
index 00000000000..f85484eca4c
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.3
@@ -0,0 +1,25 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_cleanup.3,v 1.2 2002/03/04 13:10:15 bagder Exp $
+.\"
+.TH curl_easy_cleanup 3 "4 March 2002" "libcurl 7.7" "libcurl Manual"
+.SH NAME
+curl_easy_cleanup - End a libcurl easy session
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "void curl_easy_cleanup(CURL *" handle ");"
+.ad
+.SH DESCRIPTION
+This function must be the last function to call for an easy session. It is the
+opposite of the \fIcurl_easy_init\fP function and must be called with the same
+\fIhandle\fP as input that the curl_easy_init call returned.
+
+This will effectively close all connections this handle has used and possibly
+has kept open until now. Don't call this function if you intend to transfer
+more files.
+.SH RETURN VALUE
+None
+.SH "SEE ALSO"
+.BR curl_easy_init "(3), "
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.html b/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.html
new file mode 100644
index 00000000000..0365cefcf41
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_cleanup.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_cleanup - End a libcurl easy session
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>void</B> <B>curl_easy_cleanup(CURL</B> <B>*</B><I>handle</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function must be the last function to call for an easy
+ session. It is the opposite of the <I>curl</I><B>_</B><I>easy</I><B>_</B><I>init</I> function
+ and must be called with the same <I>handle</I> as input that the
+ curl_easy_init call returned.
+
+ This will effectively close all connections this handle has
+ used and possibly has kept open until now. Don't call this
+ function if you intend to transfer more files.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ None
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_init(3)</B>,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.3
new file mode 100644
index 00000000000..a7c03d5a425
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.3
@@ -0,0 +1,37 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_duphandle.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_easy_duphandle 3 "18 September 2001" "libcurl 7.9" "libcurl Manual"
+.SH NAME
+curl_easy_duphandle - Clone a libcurl session handle
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURL *curl_easy_duphandle(CURL *"handle ");"
+.ad
+.SH DESCRIPTION
+This function will return a new curl handle, a duplicate, using all the
+options previously set in the input curl \fIhandle\fP. Both handles can
+subsequently be used independently and they must both be freed with
+\fIcurl_easy_cleanup()\fP.
+
+All strings that the input handle has been told to point to (as opposed to
+copy) with previous calls to \fIcurl_easy_setopt\fP using char * inputs, will
+be pointed to by the new handle as well. You must therefore make sure to keep
+the data around until both handles have been cleaned up.
+
+The new handle will \fBnot\fP inherit any state information, no connections,
+no SSL sessions and no cookies.
+
+\fBNote\fP that even in multi-threaded programs, this function must be called
+in a synchronous way, the input handle may not be in use when cloned.
+
+This function was added in libcurl 7.9.
+.SH RETURN VALUE
+If this function returns NULL, something went wrong and no valid handle was
+returned.
+.SH "SEE ALSO"
+.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_global_init "(3)
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.html b/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.html
new file mode 100644
index 00000000000..7f3fb9b8168
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_duphandle.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_duphandle - Clone a libcurl session handle
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURL</B> <B>*curl_easy_duphandle(CURL</B> <B>*</B><I>handle</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function will return a new curl handle, a duplicate,
+ using all the options previously set in the input curl <I>han­</I>
+ <I>dle</I>. Both handles can subsequently be used independently and
+ they must both be freed with <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup()</I>.
+
+ All strings that the input handle has been told to point to
+ (as opposed to copy) with previous calls to <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt</I>
+ using char * inputs, will be pointed to by the new handle as
+ well. You must therefore make sure to keep the data around
+ until both handles have been cleaned up.
+
+ The new handle will <B>not</B> inherit any state information, no
+ connections, no SSL sessions and no cookies.
+
+ <B>Note</B> that even in multi-threaded programs, this function
+ must be called in a synchronous way, the input handle may
+ not be in use when cloned.
+
+ This function was added in libcurl 7.9.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ If this function returns NULL, something went wrong and no
+ valid handle was returned.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_init(3)</B>,<B>curl_easy_cleanup(3)</B>,<B>curl_global_init(3)</B>
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.3
new file mode 100644
index 00000000000..c9cf4634bfc
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.3
@@ -0,0 +1,114 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_getinfo.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_easy_init 3 "31 Jan 2001" "libcurl 7.9.4" "libcurl Manual"
+.SH NAME
+curl_easy_getinfo - Extract information from a curl session (added in 7.4)
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );"
+.ad
+.SH DESCRIPTION
+Request internal information from the curl session with this function. The
+third argument
+.B MUST
+be a pointer to a long, a pointer to a char * or a pointer to a double (as
+this documentation describes further down). The data pointed-to will be
+filled in accordingly and can be relied upon only if the function returns
+CURLE_OK. This function is intended to get used *AFTER* a performed transfer,
+all results from this function are undefined until the transfer is completed.
+.SH AVAILABLE INFORMATION
+These are informations that can be extracted:
+.TP 0.8i
+.B CURLINFO_EFFECTIVE_URL
+Pass a pointer to a 'char *' to receive the last used effective URL.
+.TP
+.B CURLINFO_HTTP_CODE
+Pass a pointer to a long to receive the last received HTTP code.
+.TP
+.B CURLINFO_FILETIME
+Pass a pointer to a long to receive the remote time of the retrieved
+document. If you get -1, it can be because of many reasons (unknown, the
+server hides it or the server doesn't support the command that tells document
+time etc) and the time of the document is unknown. Note that you must tell the
+server to collect this information before the transfer is made, by using the
+CURLOPT_FILETIME option to \fIcurl_easy_setopt(3)\fP. (Added in 7.5)
+.TP
+.B CURLINFO_TOTAL_TIME
+Pass a pointer to a double to receive the total transaction time in seconds
+for the previous transfer.
+.TP
+.B CURLINFO_NAMELOOKUP_TIME
+Pass a pointer to a double to receive the time, in seconds, it took from the
+start until the name resolving was completed.
+.TP
+.B CURLINFO_CONNECT_TIME
+Pass a pointer to a double to receive the time, in seconds, it took from the
+start until the connect to the remote host (or proxy) was completed.
+.TP
+.B CURLINFO_PRETRANSFER_TIME
+Pass a pointer to a double to receive the time, in seconds, it took from the
+start until the file transfer is just about to begin. This includes all
+pre-transfer commands and negotiations that are specific to the particular
+protocol(s) involved.
+.TP
+.B CURLINFO_STARTTRANSFER_TIME
+Pass a pointer to a double to receive the time, in seconds, it took from the
+start until the first byte is just about to be transfered. This includes
+CURLINFO_PRETRANSFER_TIME and also the time the server needs to calculate
+the result.
+.TP
+.B CURLINFO_SIZE_UPLOAD
+Pass a pointer to a double to receive the total amount of bytes that were
+uploaded.
+.TP
+.B CURLINFO_SIZE_DOWNLOAD
+Pass a pointer to a double to receive the total amount of bytes that were
+downloaded.
+.TP
+.B CURLINFO_SPEED_DOWNLOAD
+Pass a pointer to a double to receive the average download speed that curl
+measured for the complete download.
+.TP
+.B CURLINFO_SPEED_UPLOAD
+Pass a pointer to a double to receive the average upload speed that curl
+measured for the complete upload.
+.TP
+.B CURLINFO_HEADER_SIZE
+Pass a pointer to a long to receive the total size of all the headers
+received.
+.TP
+.B CURLINFO_REQUEST_SIZE
+Pass a pointer to a long to receive the total size of the issued
+requests. This is so far only for HTTP requests. Note that this may be more
+than one request if FOLLOWLOCATION is true.
+.TP
+.B CURLINFO_SSL_VERIFYRESULT
+Pass a pointer to a long to receive the result of the certification
+verification that was requested (using the CURLOPT_SSL_VERIFYPEER option to
+curl_easy_setopt). (Added in 7.4.2)
+.TP
+.B CURLINFO_CONTENT_LENGTH_DOWNLOAD
+Pass a pointer to a double to receive the content-length of the download. This
+is the value read from the Content-Length: field. (Added in 7.6.1)
+.TP
+.B CURLINFO_CONTENT_LENGTH_UPLOAD
+Pass a pointer to a double to receive the specified size of the upload.
+(Added in 7.6.1)
+.TP
+.B CURLINFO_CONTENT_TYPE
+Pass a pointer to a 'char *' to receive the content-type of the downloaded
+object. This is the value read from the Content-Type: field. If you get NULL,
+it means that the server didn't send a valid Content-Type header or that the
+protocol used doesn't support this. (Added in 7.9.4)
+.PP
+
+.SH RETURN VALUE
+If the operation was successful, CURLE_OK is returned. Otherwise an
+appropriate error code will be returned.
+.SH "SEE ALSO"
+.BR curl_easy_setopt "(3)"
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.html b/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.html
new file mode 100644
index 00000000000..1aee3333d9f
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_getinfo.html
@@ -0,0 +1,182 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_getinfo - Extract information from a curl session
+ (added in 7.4)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURLcode</B> <B>curl_easy_getinfo(CURL</B> <B>*curl,</B> <B>CURLINFO</B> <B>info,</B> <B>...</B> <B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ Request internal information from the curl session with this
+ function. The third argument <B>MUST</B> be a pointer to a long, a
+ pointer to a char * or a pointer to a double (as this docu­
+ mentation describes further down). The data pointed-to will
+ be filled in accordingly and can be relied upon only if the
+ function returns CURLE_OK. This function is intended to get
+ used *AFTER* a performed transfer, all results from this
+ function are undefined until the transfer is completed.
+
+
+</PRE>
+<H2>AVAILABLE INFORMATION</H2><PRE>
+ These are informations that can be extracted:
+
+ <B>CURLINFO_EFFECTIVE_URL</B>
+ Pass a pointer to a 'char *' to receive the last
+ used effective URL.
+
+ <B>CURLINFO_HTTP_CODE</B>
+ Pass a pointer to a long to receive the last
+ received HTTP code.
+
+ <B>CURLINFO_FILETIME</B>
+ Pass a pointer to a long to receive the remote time
+ of the retrieved document. If you get -1, it can be
+ because of many reasons (unknown, the server hides
+ it or the server doesn't support the command that
+ tells document time etc) and the time of the docu­
+ ment is unknown. Note that you must tell the server
+ to collect this information before the transfer is
+ made, by using the CURLOPT_FILETIME option to
+ <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt(3)</I>. (Added in 7.5)
+
+ <B>CURLINFO_TOTAL_TIME</B>
+ Pass a pointer to a double to receive the total
+ transaction time in seconds for the previous trans­
+ fer.
+
+ <B>CURLINFO_NAMELOOKUP_TIME</B>
+ Pass a pointer to a double to receive the time, in
+ seconds, it took from the start until the name
+ resolving was completed.
+
+ <B>CURLINFO_CONNECT_TIME</B>
+ Pass a pointer to a double to receive the time, in
+ seconds, it took from the start until the connect to
+ the remote host (or proxy) was completed.
+
+ <B>CURLINFO_PRETRANSFER_TIME</B>
+ Pass a pointer to a double to receive the time, in
+ seconds, it took from the start until the file
+ transfer is just about to begin. This includes all
+ pre-transfer commands and negotiations that are spe­
+ cific to the particular protocol(s) involved.
+
+ <B>CURLINFO_STARTTRANSFER_TIME</B>
+ Pass a pointer to a double to receive the time, in
+ seconds, it took from the start until the first byte
+ is just about to be transfered. This includes
+ CURLINFO_PRETRANSFER_TIME and also the time the
+ server needs to calculate the result.
+
+ <B>CURLINFO_SIZE_UPLOAD</B>
+ Pass a pointer to a double to receive the total
+ amount of bytes that were uploaded.
+
+ <B>CURLINFO_SIZE_DOWNLOAD</B>
+ Pass a pointer to a double to receive the total
+ amount of bytes that were downloaded.
+
+ <B>CURLINFO_SPEED_DOWNLOAD</B>
+ Pass a pointer to a double to receive the average
+ download speed that curl measured for the complete
+ download.
+
+ <B>CURLINFO_SPEED_UPLOAD</B>
+ Pass a pointer to a double to receive the average
+ upload speed that curl measured for the complete
+ upload.
+
+ <B>CURLINFO_HEADER_SIZE</B>
+ Pass a pointer to a long to receive the total size
+ of all the headers received.
+
+ <B>CURLINFO_REQUEST_SIZE</B>
+ Pass a pointer to a long to receive the total size
+ of the issued requests. This is so far only for HTTP
+ requests. Note that this may be more than one
+ request if FOLLOWLOCATION is true.
+
+ <B>CURLINFO_SSL_VERIFYRESULT</B>
+ Pass a pointer to a long to receive the result of
+ the certification verification that was requested
+ (using the CURLOPT_SSL_VERIFYPEER option to
+ curl_easy_setopt). (Added in 7.4.2)
+
+ <B>CURLINFO_CONTENT_LENGTH_DOWNLOAD</B>
+ Pass a pointer to a double to receive the content-
+ length of the download. This is the value read from
+ the Content-Length: field. (Added in 7.6.1)
+
+ <B>CURLINFO_CONTENT_LENGTH_UPLOAD</B>
+ Pass a pointer to a double to receive the specified
+ size of the upload. (Added in 7.6.1)
+
+ <B>CURLINFO_CONTENT_TYPE</B>
+ Pass a pointer to a 'char *' to receive the content-
+ type of the downloaded object. This is the value
+ read from the Content-Type: field. If you get NULL,
+ it means that the server didn't send a valid Con­
+ tent-Type header or that the protocol used doesn't
+ support this. (Added in 7.9.4)
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ If the operation was successful, CURLE_OK is returned. Oth­
+ erwise an appropriate error code will be returned.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_setopt(3)</B>
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_init.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_init.3
new file mode 100644
index 00000000000..97f2d58004c
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_init.3
@@ -0,0 +1,25 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_init.3,v 1.2 2002/03/04 13:06:46 bagder Exp $
+.\"
+.TH curl_easy_init 3 "4 March 2002" "libcurl 7.8.1" "libcurl Manual"
+.SH NAME
+curl_easy_init - Start a libcurl easy session
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURL *curl_easy_init( );"
+.ad
+.SH DESCRIPTION
+This function must be the first function to call, and it returns a CURL easy
+handle that you must use as input to other easy-functions. curl_easy_init
+intializes curl and this call MUST have a corresponding call to
+\fIcurl_easy_cleanup\fP when the operation is complete.
+
+.SH RETURN VALUE
+If this function returns NULL, something went wrong and you cannot use the
+other curl functions.
+.SH "SEE ALSO"
+.BR curl_easy_cleanup "(3), " curl_global_init "(3)
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_init.html b/Build/source/libs/curl/docs/libcurl/curl_easy_init.html
new file mode 100644
index 00000000000..c53d89864c6
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_init.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_init - Start a libcurl easy session
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURL</B> <B>*curl_easy_init(</B> <B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function must be the first function to call, and it
+ returns a CURL easy handle that you must use as input to
+ other easy-functions. curl_easy_init intializes curl and
+ this call MUST have a corresponding call to
+ <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup</I> when the operation is complete.
+
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ If this function returns NULL, something went wrong and you
+ cannot use the other curl functions.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_cleanup(3)</B>, <B>curl_global_init(3)</B>
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_perform.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_perform.3
new file mode 100644
index 00000000000..5d131bd762c
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_perform.3
@@ -0,0 +1,46 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_perform.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_easy_perform 3 "5 Mar 2001" "libcurl 7.7" "libcurl Manual"
+.SH NAME
+curl_easy_perform - Perform a file transfer
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURLcode curl_easy_perform(CURL *" handle ");
+.ad
+.SH DESCRIPTION
+This function is called after the init and all the curl_easy_setopt() calls
+are made, and will perform the transfer as described in the options.
+It must be called with the same
+.I handle
+as input as the curl_easy_init call returned.
+
+libcurl version 7.7 or later (for older versions see below): You can do any
+amount of calls to curl_easy_perform() while using the same handle. If you
+intend to transfer more than one file, you are even encouraged to do
+so. libcurl will then attempt to re-use the same connection for the following
+transfers, thus making the operations faster, less CPU intense and using less
+network resources. Just note that you will have to use
+.I curl_easy_setopt
+between the invokes to set options for the following curl_easy_perform.
+
+You must never call this function simultaneously from two places using the
+same handle. Let the function return first before invoking it another time. If
+you want parallel transfers, you must use several curl handles.
+
+Before libcurl version 7.7: You are only allowed to call this function once
+using the same handle. If you want to do repeated calls, you must call
+curl_easy_cleanup and curl_easy_init again first.
+.SH RETURN VALUE
+0 means everything was ok, non-zero means an error occurred as
+.I <curl/curl.h>
+defines. If the CURLOPT_ERRORBUFFER was set with
+.I curl_easy_setopt
+there will be a readable error message in the error buffer when non-zero is
+returned.
+.SH "SEE ALSO"
+.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_perform.html b/Build/source/libs/curl/docs/libcurl/curl_easy_perform.html
new file mode 100644
index 00000000000..2c2dd6999f4
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_perform.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_perform - Perform a file transfer
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURLcode</B> <B>curl_easy_perform(CURL</B> <B>*</B><I>handle</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function is called after the init and all the
+ curl_easy_setopt() calls are made, and will perform the
+ transfer as described in the options. It must be called
+ with the same <I>handle</I> as input as the curl_easy_init call
+ returned.
+
+ libcurl version 7.7 or later (for older versions see below):
+ You can do any amount of calls to curl_easy_perform() while
+ using the same handle. If you intend to transfer more than
+ one file, you are even encouraged to do so. libcurl will
+ then attempt to re-use the same connection for the following
+ transfers, thus making the operations faster, less CPU
+ intense and using less network resources. Just note that you
+ will have to use <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt</I> between the invokes to set
+ options for the following curl_easy_perform.
+
+ You must never call this function simultaneously from two
+ places using the same handle. Let the function return first
+ before invoking it another time. If you want parallel trans­
+ fers, you must use several curl handles.
+
+ Before libcurl version 7.7: You are only allowed to call
+ this function once using the same handle. If you want to do
+ repeated calls, you must call curl_easy_cleanup and
+ curl_easy_init again first.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ 0 means everything was ok, non-zero means an error occurred
+ as <I>&lt;curl/curl.h&gt;</I> defines. If the CURLOPT_ERRORBUFFER was set
+ with <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt</I> there will be a readable error message
+ in the error buffer when non-zero is returned.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_init(3)</B>, <B>curl_easy_setopt(3)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.3 b/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.3
new file mode 100644
index 00000000000..06fe4ae8df6
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.3
@@ -0,0 +1,627 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_easy_setopt.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_easy_setopt 3 "10 Dec 2001" "libcurl 7.9.2" "libcurl Manual"
+.SH NAME
+curl_easy_setopt - Set curl easy-session options
+.SH SYNOPSIS
+#include <curl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
+.ad
+.SH DESCRIPTION
+curl_easy_setopt() is used to tell libcurl how to behave. Most operations in
+libcurl have default actions, and by using the appropriate options to
+\fIcurl_easy_setopt\fP, you can change them. All options are set with the
+\fIoption\fP followed by a \fIparameter\fP. That parameter can be a long, a
+function pointer or an object pointer, all depending on what the specific
+option expects. Read this manual carefully as bad input values may cause
+libcurl to behave badly! You can only set one option in each function call. A
+typical application uses many curl_easy_setopt() calls in the setup phase.
+
+\fBNOTE:\fP strings passed to libcurl as 'char *' arguments, will not be
+copied by the library. Instead you should keep them available until libcurl no
+longer needs them. Failing to do so will cause very odd behavior or even
+crashes.
+
+\fBNOTE2:\fP options set with this function call are valid for the forthcoming
+data transfers that are performed when you invoke \fIcurl_easy_perform\fP.
+The options are not in any way reset between transfers, so if you want
+subsequent transfers with different options, you must change them between the
+transfers.
+
+The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or
+\fIcurl_easy_duphandle(3)\fP call.
+.SH OPTIONS
+The options are listed in a sort of random order, but you'll figure it out!
+.TP 0.8i
+.B CURLOPT_FILE
+Data pointer to pass to the file write function. Note that if you specify the
+\fICURLOPT_WRITEFUNCTION\fP, this is the pointer you'll get as input. If you
+don't use a callback, you must pass a 'FILE *' as libcurl will pass this to
+fwrite() when writing data.
+
+\fBNOTE:\fP If you're using libcurl as a win32 DLL, you MUST use the
+\fICURLOPT_WRITEFUNCTION\fP if you set this option or you will experience
+crashes.
+.TP
+.B CURLOPT_WRITEFUNCTION
+Function pointer that should match the following prototype: \fBsize_t
+function( void *ptr, size_t size, size_t nmemb, void *stream);\fP This
+function gets called by libcurl as soon as there is data available to pass
+available that needs to be saved. The size of the data pointed to by \fIptr\fP
+is \fIsize\fP multiplied with \fInmemb\fP. Return the number of bytes
+actually taken care of. If that amount differs from the amount passed to your
+function, it'll signal an error to the library and it will abort the transfer
+and return \fICURLE_WRITE_ERROR\fP.
+
+Set the \fIstream\fP argument with the \fBCURLOPT_FILE\fP option.
+
+\fBNOTE:\fP you will be passed as much data as possible in all invokes, but
+you cannot possibly make any assumptions. It may be one byte, it may be
+thousands.
+.TP
+.B CURLOPT_INFILE
+Data pointer to pass to the file read function. Note that if you specify the
+\fICURLOPT_READFUNCTION\fP, this is the pointer you'll get as input. If you
+don't specify a read callback, this must be a valid FILE *.
+
+\fBNOTE:\fP If you're using libcurl as a win32 DLL, you MUST use a
+\fICURLOPT_READFUNCTION\fP if you set this option.
+.TP
+.B CURLOPT_READFUNCTION
+Function pointer that should match the following prototype: \fBsize_t
+function( void *ptr, size_t size, size_t nmemb, void *stream);\fP This
+function gets called by libcurl as soon as it needs to read data in order to
+send it to the peer. The data area pointed at by the pointer \fIptr\fP may be
+filled with at most \fIsize\fP multiplied with \fInmemb\fP number of
+bytes. Your function must return the actual number of bytes that you stored in
+that memory area. Returning 0 will signal end-of-file to the library and cause
+it to stop the current transfer.
+.TP
+.B CURLOPT_INFILESIZE
+When uploading a file to a remote site, this option should be used to tell
+libcurl what the expected size of the infile is.
+.TP
+.B CURLOPT_URL
+The actual URL to deal with. The parameter should be a char * to a zero
+terminated string. The string must remain present until curl no longer needs
+it, as it doesn't copy the string.
+
+\fBNOTE:\fP this option is (the only one) required to be set before
+\fIcurl_easy_perform(3)\fP is called.
+.TP
+.B CURLOPT_PROXY
+Set HTTP proxy to use. The parameter should be a char * to a zero terminated
+string holding the host name or dotted IP address. To specify port number in
+this string, append :[port] to the end of the host name. The proxy string may
+be prefixed with [protocol]:// since any such prefix will be ignored. The
+proxy's port number may optionally be specified with the separate option
+\fICURLOPT_PROXYPORT\fP.
+
+\fBNOTE:\fP when you tell the library to use a HTTP proxy, libcurl will
+transparently convert operations to HTTP even if you specify a FTP URL
+etc. This may have an impact on what other features of the library you can
+use, such as CURLOPT_QUOTE and similar FTP specifics that don't work unless
+you tunnel through the HTTP proxy. Such tunneling is activated with
+\fICURLOPT_HTTPPROXYTUNNEL\fP.
+
+\fBNOTE2:\fP libcurl respects the environment variables \fBhttp_proxy\fP,
+\fBftp_proxy\fP, \fBall_proxy\fP etc, if any of those is set.
+.TP
+.B CURLOPT_PROXYPORT
+Pass a long with this option to set the proxy port to connect to unless it is
+specified in the proxy string \fICURLOPT_PROXY\fP.
+.TP
+.B CURLOPT_HTTPPROXYTUNNEL
+Set the parameter to non-zero to get the library to tunnel all operations
+through a given HTTP proxy. Note that there is a big difference between using
+a proxy and to tunnel through it. If you don't know what this means, you
+probably don't want this tunneling option. (Added in libcurl 7.3)
+.TP
+.B CURLOPT_VERBOSE
+Set the parameter to non-zero to get the library to display a lot of verbose
+information about its operations. Very useful for libcurl and/or protocol
+debugging and understanding.
+
+You hardly ever want this set in production use, you will almost always want
+this when you debug/report problems.
+.TP
+.B CURLOPT_HEADER
+A non-zero parameter tells the library to include the header in the body
+output. This is only relevant for protocols that actually have headers
+preceding the data (like HTTP).
+.TP
+.B CURLOPT_NOPROGRESS
+A non-zero parameter tells the library to shut of the built-in progress meter
+completely.
+
+\fBNOTE:\fP future versions of libcurl is likely to not have any built-in
+progress meter at all.
+.TP
+.B CURLOPT_NOBODY
+A non-zero parameter tells the library to not include the body-part in the
+output. This is only relevant for protocols that have separate header and body
+parts.
+.TP
+.B CURLOPT_FAILONERROR
+A non-zero parameter tells the library to fail silently if the HTTP code
+returned is equal to or larger than 300. The default action would be to return
+the page normally, ignoring that code.
+.TP
+.B CURLOPT_UPLOAD
+A non-zero parameter tells the library to prepare for an upload. The
+CURLOPT_INFILE and CURLOPT_INFILESIZE are also interesting for uploads.
+.TP
+.B CURLOPT_POST
+A non-zero parameter tells the library to do a regular HTTP post. This is a
+normal application/x-www-form-urlencoded kind, which is the most commonly used
+one by HTML forms. See the CURLOPT_POSTFIELDS option for how to specify the
+data to post and CURLOPT_POSTFIELDSIZE in how to set the data size. Starting
+with libcurl 7.8, this option is obsolete. Using the CURLOPT_POSTFIELDS option
+will imply this option.
+.TP
+.B CURLOPT_FTPLISTONLY
+A non-zero parameter tells the library to just list the names of an ftp
+directory, instead of doing a full directory listing that would include file
+sizes, dates etc.
+.TP
+.B CURLOPT_FTPAPPEND
+A non-zero parameter tells the library to append to the remote file instead of
+overwrite it. This is only useful when uploading to a ftp site.
+.TP
+.B CURLOPT_NETRC
+A non-zero parameter tells the library to scan your \fI~/.netrc\fP file to
+find user name and password for the remote site you are about to access. Only
+machine name, user name and password is taken into account (init macros and
+similar things aren't supported).
+
+\fBNote:\fP libcurl does not verify that the file has the correct properties
+set (as the standard Unix ftp client does). It should only be readable by
+user.
+.TP
+.B CURLOPT_FOLLOWLOCATION
+A non-zero parameter tells the library to follow any Location: header that the
+server sends as part of a HTTP header.
+
+\fBNOTE:\fP this means that the library will re-send the same request on the
+new location and follow new Location: headers all the way until no more such
+headers are returned. \fICURLOPT_MAXREDIRS\fP can be used to limit the number
+of redirects libcurl will follow.
+.TP
+.B CURLOPT_TRANSFERTEXT
+A non-zero parameter tells the library to use ASCII mode for ftp transfers,
+instead of the default binary transfer. For LDAP transfers it gets the data in
+plain text instead of HTML and for win32 systems it does not set the stdout to
+binary mode. This option can be usable when transferring text data between
+systems with different views on certain characters, such as newlines or
+similar.
+.TP
+.B CURLOPT_PUT
+A non-zero parameter tells the library to use HTTP PUT to transfer data. The
+data should be set with CURLOPT_INFILE and CURLOPT_INFILESIZE.
+.TP
+.B CURLOPT_USERPWD
+Pass a char * as parameter, which should be [user name]:[password] to use for
+the connection. If the password is left out, you will be prompted for it.
+\fICURLOPT_PASSWDFUNCTION\fP can be used to set your own prompt function.
+.TP
+.B CURLOPT_PROXYUSERPWD
+Pass a char * as parameter, which should be [user name]:[password] to use for
+the connection to the HTTP proxy. If the password is left out, you will be
+prompted for it. \fICURLOPT_PASSWDFUNCTION\fP can be used to set your own
+prompt function.
+.TP
+.B CURLOPT_RANGE
+Pass a char * as parameter, which should contain the specified range you
+want. It should be in the format "X-Y", where X or Y may be left out. HTTP
+transfers also support several intervals, separated with commas as in
+\fI"X-Y,N-M"\fP. Using this kind of multiple intervals will cause the HTTP
+server to send the response document in pieces (using standard MIME separation
+techniques).
+.TP
+.B CURLOPT_ERRORBUFFER
+Pass a char * to a buffer that the libcurl may store human readable error
+messages in. This may be more helpful than just the return code from the
+library. The buffer must be at least CURL_ERROR_SIZE big.
+
+\fBNote:\fP if the library does not return an error, the buffer may not have
+been touched. Do not rely on the contents in those cases.
+.TP
+.B CURLOPT_TIMEOUT
+Pass a long as parameter containing the maximum time in seconds that you allow
+the libcurl transfer operation to take. Normally, name lookups can take a
+considerable time and limiting operations to less than a few minutes risk
+aborting perfectly normal operations. This option will cause curl to use the
+SIGALRM to enable time-outing system calls.
+
+\fBNOTE:\fP this does not work in Unix multi-threaded programs, as it uses
+signals.
+.TP
+.B CURLOPT_POSTFIELDS
+Pass a char * as parameter, which should be the full data to post in a HTTP
+post operation. This is a normal application/x-www-form-urlencoded kind, which
+is the most commonly used one by HTML forms. See also the CURLOPT_POST. Since
+7.8, using CURLOPT_POSTFIELDS implies CURLOPT_POST.
+
+\fBNote:\fP to make multipart/formdata posts (aka rfc1867-posts), check out
+the \fICURLOPT_HTTPPOST\fP option.
+.TP
+.B CURLOPT_POSTFIELDSIZE
+If you want to post data to the server without letting libcurl do a strlen()
+to measure the data size, this option must be used. When this option is used
+you can post fully binary data, which otherwise is likely to fail. If this
+size is set to zero, the library will use strlen() to get the size. (Added in
+libcurl 7.2)
+.TP
+.B CURLOPT_REFERER
+Pass a pointer to a zero terminated string as parameter. It will be used to
+set the Referer: header in the http request sent to the remote server. This
+can be used to fool servers or scripts. You can also set any custom header
+with \fICURLOPT_HTTPHEADER\fP.
+.TP
+.B CURLOPT_USERAGENT
+Pass a pointer to a zero terminated string as parameter. It will be used to
+set the User-Agent: header in the http request sent to the remote server. This
+can be used to fool servers or scripts. You can also set any custom header
+with \fICURLOPT_HTTPHEADER\fP.
+.TP
+.B CURLOPT_FTPPORT
+Pass a pointer to a zero terminated string as parameter. It will be used to
+get the IP address to use for the ftp PORT instruction. The PORT instruction
+tells the remote server to connect to our specified IP address. The string may
+be a plain IP address, a host name, an network interface name (under Unix) or
+just a '-' letter to let the library use your systems default IP
+address. Default FTP operations are passive, and thus won't use PORT.
+.TP
+.B CURLOPT_LOW_SPEED_LIMIT
+Pass a long as parameter. It contains the transfer speed in bytes per second
+that the transfer should be below during CURLOPT_LOW_SPEED_TIME seconds for
+the library to consider it too slow and abort.
+.TP
+.B CURLOPT_LOW_SPEED_TIME
+Pass a long as parameter. It contains the time in seconds that the transfer
+should be below the CURLOPT_LOW_SPEED_LIMIT for the library to consider it too
+slow and abort.
+.TP
+.B CURLOPT_RESUME_FROM
+Pass a long as parameter. It contains the offset in number of bytes that you
+want the transfer to start from.
+.TP
+.B CURLOPT_COOKIE
+Pass a pointer to a zero terminated string as parameter. It will be used to
+set a cookie in the http request. The format of the string should be
+[NAME]=[CONTENTS]; Where NAME is the cookie name.
+.TP
+.B CURLOPT_HTTPHEADER
+Pass a pointer to a linked list of HTTP headers to pass to the server in your
+HTTP request. The linked list should be a fully valid list of \fBstruct
+curl_slist\fP structs properly filled in. Use \fIcurl_slist_append(3)\fP to
+create the list and \fIcurl_slist_free_all(3)\fP to clean up an entire
+list. If you add a header that is otherwise generated and used by libcurl
+internally, your added one will be used instead. If you add a header with no
+contents as in 'Accept:' (no data on the right side of the colon), the
+internally used header will get disabled. Thus, using this option you can add
+new headers, replace internal headers and remove internal headers.
+
+\fBNOTE:\fPThe most commonly replaced headers have "shortcuts" in the options
+CURLOPT_COOKIE, CURLOPT_USERAGENT and CURLOPT_REFERER.
+.TP
+.B CURLOPT_HTTPPOST
+Tells libcurl you want a multipart/formdata HTTP POST to be made and you
+instruct what data to pass on to the server. Pass a pointer to a linked list
+of HTTP post structs as parameter. The linked list should be a fully valid
+list of 'struct HttpPost' structs properly filled in. The best and most
+elegant way to do this, is to use \fIcurl_formadd(3)\fP as documented. The
+data in this list must remained intact until you close this curl handle again
+with \fIcurl_easy_cleanup(3)\fP.
+.TP
+.B CURLOPT_SSLCERT
+Pass a pointer to a zero terminated string as parameter. The string should be
+the file name of your certificate. The default format is "PEM" and can be
+changed with \fICURLOPT_SSLCERTTYPE\fP.
+.TP
+.B CURLOPT_SSLCERTTYPE
+Pass a pointer to a zero terminated string as parameter. The string should be
+the format of your certificate. Supported formats are "PEM" and "DER". (Added
+in 7.9.3)
+.TP
+.B CURLOPT_SSLCERTPASSWD
+Pass a pointer to a zero terminated string as parameter. It will be used as
+the password required to use the CURLOPT_SSLCERT certificate. If the password
+is not supplied, you will be prompted for it. \fICURLOPT_PASSWDFUNCTION\fP can
+be used to set your own prompt function.
+
+\fBNOTE:\fPThis option is replaced by \fICURLOPT_SSLKEYPASSWD\fP and only
+cept for backward compatibility. You never needed a pass phrase to load
+a certificate but you need one to load your private key.
+.TP
+.B CURLOPT_SSLKEY
+Pass a pointer to a zero terminated string as parameter. The string should be
+the file name of your private key. The default format is "PEM" and can be
+changed with \fICURLOPT_SSLKEYTYPE\fP. (Added in 7.9.3)
+.TP
+.B CURLOPT_SSLKEYTYPE
+Pass a pointer to a zero terminated string as parameter. The string should be
+the format of your private key. Supported formats are "PEM", "DER" and "ENG".
+(Added in 7.9.3)
+
+\fBNOTE:\fPThe format "ENG" enables you to load the private key from a crypto
+engine. in this case \fICURLOPT_SSLKEY\fP is used as an identifier passed to
+the engine. You have to set the crypto engine with \fICURLOPT_SSL_ENGINE\fP.
+.TP
+.B CURLOPT_SSLKEYASSWD
+Pass a pointer to a zero terminated string as parameter. It will be used as
+the password required to use the \fICURLOPT_SSLKEY\fP private key. If the
+password is not supplied, you will be prompted for
+it. \fICURLOPT_PASSWDFUNCTION\fP can be used to set your own prompt function.
+(Added in 7.9.3)
+.TP
+.B CURLOPT_SSL_ENGINE
+Pass a pointer to a zero terminated string as parameter. It will be used as
+the identifier for the crypto engine you want to use for your private
+key. (Added in 7.9.3)
+
+\fBNOTE:\fPIf the crypto device cannot be loaded,
+\fICURLE_SSL_ENGINE_NOTFOUND\fP is returned.
+.TP
+.B CURLOPT_SSL_ENGINEDEFAULT
+Sets the actual crypto engine as the default for (asymetric) crypto
+operations. (Added in 7.9.3)
+
+\fBNOTE:\fPIf the crypto device cannot be set,
+\fICURLE_SSL_ENGINE_SETFAILED\fP is returned.
+.TP
+.B CURLOPT_CRLF
+Convert Unix newlines to CRLF newlines on FTP uploads.
+.TP
+.B CURLOPT_QUOTE
+Pass a pointer to a linked list of FTP commands to pass to the server prior to
+your ftp request. The linked list should be a fully valid list of 'struct
+curl_slist' structs properly filled in. Use \fIcurl_slist_append(3)\fP to
+append strings (commands) to the list, and clear the entire list afterwards
+with \fIcurl_slist_free_all(3)\fP. Disable this operation again by setting a
+NULL to this option.
+.TP
+.B CURLOPT_POSTQUOTE
+Pass a pointer to a linked list of FTP commands to pass to the server after
+your ftp transfer request. The linked list should be a fully valid list of
+struct curl_slist structs properly filled in as described for
+\fICURLOPT_QUOTE\fP. Disable this operation again by setting a NULL to this
+option.
+.TP
+.B CURLOPT_WRITEHEADER
+Pass a pointer to be used to write the header part of the received data to. If
+you don't use your own callback to take care of the writing, this must be a
+valid FILE *. See also the \fICURLOPT_HEADERFUNCTION\fP option below on how to set a
+custom get-all-headers callback.
+.TP
+.B CURLOPT_HEADERFUNCTION
+Function pointer that should match the following prototype: \fIsize_t
+function( void *ptr, size_t size, size_t nmemb, void *stream);\fP. This
+function gets called by libcurl as soon as there is received header data that
+needs to be written down. The headers are guaranteed to be written one-by-one
+and only complete lines are written. Parsing headers should be easy enough
+using this. The size of the data pointed to by \fIptr\fP is \fIsize\fP
+multiplied with \fInmemb\fP. The pointer named \fIstream\fP will be the one
+you passed to libcurl with the \fICURLOPT_WRITEHEADER\fP option. Return the
+number of bytes actually written or return -1 to signal error to the library
+(it will cause it to abort the transfer with a \fICURLE_WRITE_ERROR\fP return
+code). (Added in libcurl 7.7.2)
+.TP
+.B CURLOPT_COOKIEFILE
+Pass a pointer to a zero terminated string as parameter. It should contain the
+name of your file holding cookie data. The cookie data may be in Netscape /
+Mozilla cookie data format or just regular HTTP-style headers dumped to a
+file.
+.TP
+.B CURLOPT_SSLVERSION
+Pass a long as parameter. Set what version of SSL to attempt to use, 2 or
+3. By default, the SSL library will try to solve this by itself although some
+servers make this difficult why you at times may have to use this option.
+.TP
+.B CURLOPT_TIMECONDITION
+Pass a long as parameter. This defines how the CURLOPT_TIMEVALUE time value is
+treated. You can set this parameter to TIMECOND_IFMODSINCE or
+TIMECOND_IFUNMODSINCE. This is a HTTP-only feature. (TBD)
+.TP
+.B CURLOPT_TIMEVALUE
+Pass a long as parameter. This should be the time in seconds since 1 jan 1970,
+and the time will be used as specified in CURLOPT_TIMECONDITION or if that
+isn't used, it will be TIMECOND_IFMODSINCE by default.
+.TP
+.B CURLOPT_CUSTOMREQUEST
+Pass a pointer to a zero terminated string as parameter. It will be user
+instead of GET or HEAD when doing the HTTP request. This is useful for doing
+DELETE or other more or less obscure HTTP requests. Don't do this at will,
+make sure your server supports the command first.
+.TP
+.B CURLOPT_STDERR
+Pass a FILE * as parameter. This is the stream to use instead of stderr
+internally when reporting errors.
+.TP
+.B CURLOPT_INTERFACE
+Pass a char * as parameter. This set the interface name to use as outgoing
+network interface. The name can be an interface name, an IP address or a host
+name. (Added in libcurl 7.3)
+.TP
+.B CURLOPT_KRB4LEVEL
+Pass a char * as parameter. Set the krb4 security level, this also enables
+krb4 awareness. This is a string, 'clear', 'safe', 'confidential' or
+\&'private'. If the string is set but doesn't match one of these, 'private'
+will be used. Set the string to NULL to disable kerberos4. The kerberos
+support only works for FTP. (Added in libcurl 7.3)
+.TP
+.B CURLOPT_PROGRESSFUNCTION
+Function pointer that should match the \fIcurl_progress_callback\fP prototype
+found in \fI<curl/curl.h>\fP. This function gets called by libcurl instead of
+its internal equivalent with a frequent interval during data transfer.
+Unknown/unused argument values will be set to zero (like if you only download
+data, the upload size will remain 0). Returning a non-zero value from this
+callback will cause libcurl to abort the transfer and return
+\fICURLE_ABORTED_BY_CALLBACK\fP.
+.TP
+.B CURLOPT_PROGRESSDATA
+Pass a pointer that will be untouched by libcurl and passed as the first
+argument in the progress callback set with \fICURLOPT_PROGRESSFUNCTION\fP.
+.TP
+.B CURLOPT_SSL_VERIFYPEER
+Pass a long that is set to a non-zero value to make curl verify the peer's
+certificate. The certificate to verify against must be specified with the
+CURLOPT_CAINFO option. (Added in 7.4.2)
+.TP
+.B CURLOPT_CAINFO
+Pass a char * to a zero terminated file naming holding the certificate to
+verify the peer with. This only makes sense when used in combination with the
+CURLOPT_SSL_VERIFYPEER option. (Added in 7.4.2)
+.TP
+.B CURLOPT_PASSWDFUNCTION
+Pass a pointer to a \fIcurl_passwd_callback\fP function that will be called
+instead of the internal one if libcurl requests a password. The function must
+match this prototype: \fBint my_getpass(void *client, char *prompt, char*
+buffer, int buflen );\fP. If set to NULL, it equals to making the function
+always fail. If the function returns a non-zero value, it will abort the
+operation and an error (CURLE_BAD_PASSWORD_ENTERED) will be returned.
+\fIclient\fP is a generic pointer, see \fICURLOPT_PASSWDDATA\fP. \fIprompt\fP
+is a zero-terminated string that is text that prefixes the input request.
+\fIbuffer\fP is a pointer to data where the entered password should be stored
+and \fIbuflen\fP is the maximum number of bytes that may be written in the
+buffer. (Added in 7.4.2)
+.TP
+.B CURLOPT_PASSWDDATA
+Pass a void * to whatever data you want. The passed pointer will be the first
+argument sent to the specifed \fICURLOPT_PASSWDFUNCTION\fP function. (Added in
+7.4.2)
+.TP
+.B CURLOPT_FILETIME
+Pass a long. If it is a non-zero value, libcurl will attempt to get the
+modification date of the remote document in this operation. This requires that
+the remote server sends the time or replies to a time querying command. The
+\fIcurl_easy_getinfo(3)\fP function with the \fICURLINFO_FILETIME\fP argument
+can be used after a transfer to extract the received time (if any). (Added in
+7.5)
+.TP
+.B CURLOPT_MAXREDIRS
+Pass a long. The set number will be the redirection limit. If that many
+redirections have been followed, the next redirect will cause an error
+(\fICURLE_TOO_MANY_REDIRECTS\fP). This option only makes sense if the
+\fICURLOPT_FOLLOWLOCATION\fP is used at the same time. (Added in 7.5)
+.TP
+.B CURLOPT_MAXCONNECTS
+Pass a long. The set number will be the persistant connection cache size. The
+set amount will be the maximum amount of simultaneous connections that libcurl
+may cache between file transfers. Default is 5, and there isn't much point in
+changing this value unless you are perfectly aware of how this work and
+changes libcurl's behaviour.
+
+\fBNOTE:\fP if you already have performed transfers with this curl handle,
+setting a smaller MAXCONNECTS than before may cause open connections to get
+closed unnecessarily. (Added in 7.7)
+.TP
+.B CURLOPT_CLOSEPOLICY
+Pass a long. This option sets what policy libcurl should use when the
+connection cache is filled and one of the open connections has to be closed to
+make room for a new connection. This must be one of the CURLCLOSEPOLICY_*
+defines. Use \fICURLCLOSEPOLICY_LEAST_RECENTLY_USED\fP to make libcurl close
+the connection that was least recently used, that connection is also least
+likely to be capable of re-use. Use \fICURLCLOSEPOLICY_OLDEST\fP to make
+libcurl close the oldest connection, the one that was created first among the
+ones in the connection cache. The other close policies are not support
+yet. (Added in 7.7)
+.TP
+.B CURLOPT_FRESH_CONNECT
+Pass a long. Set to non-zero to make the next transfer use a new (fresh)
+connection by force. If the connection cache is full before this connection,
+one of the existing connections will be closed as according to the selected or
+default policy. This option should be used with caution and only if you
+understand what it does. Set this to 0 to have libcurl attempt re-using an
+existing connection (default behavior). (Added in 7.7)
+.TP
+.B CURLOPT_FORBID_REUSE
+Pass a long. Set to non-zero to make the next transfer explicitly close the
+connection when done. Normally, libcurl keep all connections alive when done
+with one transfer in case there comes a succeeding one that can re-use them.
+This option should be used with caution and only if you understand what it
+does. Set to 0 to have libcurl keep the connection open for possibly later
+re-use (default behavior). (Added in 7.7)
+.TP
+.B CURLOPT_RANDOM_FILE
+Pass a char * to a zero terminated file name. The file will be used to read
+from to seed the random engine for SSL. The more random the specified file is,
+the more secure will the SSL connection become.
+.TP
+.B CURLOPT_EGDSOCKET
+Pass a char * to the zero terminated path name to the Entropy Gathering Daemon
+socket. It will be used to seed the random engine for SSL.
+.TP
+.B CURLOPT_CONNECTTIMEOUT
+Pass a long. It should contain the maximum time in seconds that you allow the
+connection to the server to take. This only limits the connection phase, once
+it has connected, this option is of no more use. Set to zero to disable
+connection timeout (it will then only timeout on the system's internal
+timeouts). See also the \fICURLOPT_TIMEOUT\fP option.
+
+\fBNOTE:\fP this does not work in unix multi-threaded programs, as it uses
+signals.
+.TP
+.B CURLOPT_HTTPGET
+Pass a long. If the long is non-zero, this forces the HTTP request to get back
+to GET. Only really usable if POST, PUT or a custom request have been used
+previously using the same curl handle. (Added in 7.8.1)
+.TP
+.B CURLOPT_SSL_VERIFYHOST
+Pass a long. Set if we should verify the Common name from the peer certificate
+in the SSL handshake, set 1 to check existence, 2 to ensure that it matches
+the provided hostname. (Added in 7.8.1)
+.TP
+.B CURLOPT_COOKIEJAR
+Pass a file name as char *, zero terminated. This will make libcurl dump all
+internally known cookies to the specified file when \fIcurl_easy_cleanup(3)\fP
+is called. If no cookies are known, no file will be created. Specify "-" to
+instead have the cookies written to stdout.
+.TP
+.B CURLOPT_SSL_CIPHER_LIST
+Pass a char *, pointing to a zero terminated string holding the list of
+ciphers to use for the SSL connection. The list must be syntactly correct, it
+consists of one or more cipher strings separated by colons. Commas or spaces
+are also acceptable separators but colons are normally used, \!, \- and \+ can
+be used as operators. Valid examples of cipher lists include 'RC4-SHA',
+\'SHA1+DES\', 'TLSv1' and 'DEFAULT'. The default list is normally set when you
+compile OpenSSL.
+
+You'll find more details about cipher lists on this URL:
+\fIhttp://www.openssl.org/docs/apps/ciphers.html\fP
+.TP
+.B CURLOPT_HTTP_VERSION
+Pass a long, set to one of the values described below. They force libcurl to
+use the specific HTTP versions. This is not sensible to do unless you have a
+good reason.
+.RS
+.TP 5
+.B CURL_HTTP_VERSION_NONE
+We don't care about what version the library uses. libcurl will use whatever
+it thinks fit.
+.TP
+.B CURL_HTTP_VERSION_1_0
+Enforce HTTP 1.0 requests.
+.TP
+.B CURL_HTTP_VERSION_1_1
+Enforce HTTP 1.1 requests.
+.RE
+.TP
+.B CURLOPT_FTP_USE_EPSV
+Pass a long. If the value is non-zero, it tells curl to use the EPSV command
+when doing passive FTP downloads (which is always does by default). Using EPSV
+means that it will first attempt to use EPSV before using PASV, but if you
+pass FALSE (zero) to this option, it will not try using EPSV, only plain PASV.
+.PP
+.SH RETURN VALUE
+CURLE_OK (zero) means that the option was set properly, non-zero means an
+error occurred as \fI<curl/curl.h>\fP defines.
+.SH "SEE ALSO"
+.BR curl_easy_init "(3), " curl_easy_cleanup "(3), "
+.SH BUGS
+If you find any bugs, or just have questions, subscribe to one of the mailing
+lists and post. We won't bite.
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.html b/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.html
new file mode 100644
index 00000000000..b6bce1c476a
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_easy_setopt.html
@@ -0,0 +1,810 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_easy_setopt - Set curl easy-session options
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ #include &lt;curl/curl.h&gt;
+
+ CURLcode curl_easy_setopt(CURL *handle, CURLoption option,
+ parameter);
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_easy_setopt() is used to tell libcurl how to behave.
+ Most operations in libcurl have default actions, and by
+ using the appropriate options to <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt</I>, you can
+ change them. All options are set with the <I>option</I> followed
+ by a <I>parameter</I>. That parameter can be a long, a function
+ pointer or an object pointer, all depending on what the spe­
+ cific option expects. Read this manual carefully as bad
+ input values may cause libcurl to behave badly! You can
+ only set one option in each function call. A typical appli­
+ cation uses many curl_easy_setopt() calls in the setup
+ phase.
+
+ <B>NOTE:</B> strings passed to libcurl as 'char *' arguments, will
+ not be copied by the library. Instead you should keep them
+ available until libcurl no longer needs them. Failing to do
+ so will cause very odd behavior or even crashes.
+
+ <B>NOTE2:</B> options set with this function call are valid for the
+ forthcoming data transfers that are performed when you
+ invoke <I>curl</I><B>_</B><I>easy</I><B>_</B><I>perform</I>. The options are not in any way
+ reset between transfers, so if you want subsequent transfers
+ with different options, you must change them between the
+ transfers.
+
+ The <I>handle</I> is the return code from a <I>curl</I><B>_</B><I>easy</I><B>_</B><I>init(3)</I> or
+ <I>curl</I><B>_</B><I>easy</I><B>_</B><I>duphandle(3)</I> call.
+
+
+</PRE>
+<H2>OPTIONS</H2><PRE>
+ The options are listed in a sort of random order, but you'll
+ figure it out!
+
+ <B>CURLOPT_FILE</B>
+ Data pointer to pass to the file write function.
+ Note that if you specify the <I>CURLOPT</I><B>_</B><I>WRITEFUNCTION</I>,
+ this is the pointer you'll get as input. If you
+ don't use a callback, you must pass a 'FILE *' as
+ libcurl will pass this to fwrite() when writing
+ data.
+
+ <B>NOTE:</B> If you're using libcurl as a win32 DLL, you
+ MUST use the <I>CURLOPT</I><B>_</B><I>WRITEFUNCTION</I> if you set this
+ option or you will experience crashes.
+
+ <B>CURLOPT_WRITEFUNCTION</B>
+ Function pointer that should match the following
+ prototype: <B>size_t</B> <B>function(</B> <B>void</B> <B>*ptr,</B> <B>size_t</B> <B>size,</B>
+ <B>size_t</B> <B>nmemb,</B> <B>void</B> <B>*stream);</B> This function gets
+ called by libcurl as soon as there is data available
+ to pass available that needs to be saved. The size
+ of the data pointed to by <I>ptr</I> is <I>size</I> multiplied
+ with <I>nmemb</I>. Return the number of bytes actually
+ taken care of. If that amount differs from the
+ amount passed to your function, it'll signal an
+ error to the library and it will abort the transfer
+ and return <I>CURLE</I><B>_</B><I>WRITE</I><B>_</B><I>ERROR</I>.
+
+ Set the <I>stream</I> argument with the <B>CURLOPT_FILE</B>
+ option.
+
+ <B>NOTE:</B> you will be passed as much data as possible in
+ all invokes, but you cannot possibly make any
+ assumptions. It may be one byte, it may be thou­
+ sands.
+
+ <B>CURLOPT_INFILE</B>
+ Data pointer to pass to the file read function. Note
+ that if you specify the <I>CURLOPT</I><B>_</B><I>READFUNCTION</I>, this
+ is the pointer you'll get as input. If you don't
+ specify a read callback, this must be a valid FILE
+ *.
+
+ <B>NOTE:</B> If you're using libcurl as a win32 DLL, you
+ MUST use a <I>CURLOPT</I><B>_</B><I>READFUNCTION</I> if you set this
+ option.
+
+ <B>CURLOPT_READFUNCTION</B>
+ Function pointer that should match the following
+ prototype: <B>size_t</B> <B>function(</B> <B>void</B> <B>*ptr,</B> <B>size_t</B> <B>size,</B>
+ <B>size_t</B> <B>nmemb,</B> <B>void</B> <B>*stream);</B> This function gets
+ called by libcurl as soon as it needs to read data
+ in order to send it to the peer. The data area
+ pointed at by the pointer <I>ptr</I> may be filled with at
+ most <I>size</I> multiplied with <I>nmemb</I> number of bytes.
+ Your function must return the actual number of bytes
+ that you stored in that memory area. Returning 0
+ will signal end-of-file to the library and cause it
+ to stop the current transfer.
+
+ <B>CURLOPT_INFILESIZE</B>
+ When uploading a file to a remote site, this option
+ should be used to tell libcurl what the expected
+ size of the infile is.
+
+ <B>CURLOPT_URL</B>
+ The actual URL to deal with. The parameter should be
+ a char * to a zero terminated string. The string
+ must remain present until curl no longer needs it,
+ as it doesn't copy the string.
+
+ <B>NOTE:</B> this option is (the only one) required to be
+ set before <I>curl</I><B>_</B><I>easy</I><B>_</B><I>perform(3)</I> is called.
+
+ <B>CURLOPT_PROXY</B>
+ Set HTTP proxy to use. The parameter should be a
+ char * to a zero terminated string holding the host
+ name or dotted IP address. To specify port number in
+ this string, append :[port] to the end of the host
+ name. The proxy string may be prefixed with [proto­
+ col]:// since any such prefix will be ignored. The
+ proxy's port number may optionally be specified with
+ the separate option <I>CURLOPT</I><B>_</B><I>PROXYPORT</I>.
+
+ <B>NOTE:</B> when you tell the library to use a HTTP proxy,
+ libcurl will transparently convert operations to
+ HTTP even if you specify a FTP URL etc. This may
+ have an impact on what other features of the library
+ you can use, such as CURLOPT_QUOTE and similar FTP
+ specifics that don't work unless you tunnel through
+ the HTTP proxy. Such tunneling is activated with
+ <I>CURLOPT</I><B>_</B><I>HTTPPROXYTUNNEL</I>.
+
+ <B>NOTE2:</B> libcurl respects the environment variables
+ <B>http_proxy</B>, <B>ftp_proxy</B>, <B>all_proxy</B> etc, if any of
+ those is set.
+
+ <B>CURLOPT_PROXYPORT</B>
+ Pass a long with this option to set the proxy port
+ to connect to unless it is specified in the proxy
+ string <I>CURLOPT</I><B>_</B><I>PROXY</I>.
+
+ <B>CURLOPT_HTTPPROXYTUNNEL</B>
+ Set the parameter to non-zero to get the library to
+ tunnel all operations through a given HTTP proxy.
+ Note that there is a big difference between using a
+ proxy and to tunnel through it. If you don't know
+ what this means, you probably don't want this tun­
+ neling option. (Added in libcurl 7.3)
+
+ <B>CURLOPT_VERBOSE</B>
+ Set the parameter to non-zero to get the library to
+ display a lot of verbose information about its oper­
+ ations. Very useful for libcurl and/or protocol
+ debugging and understanding.
+
+ You hardly ever want this set in production use, you
+ will almost always want this when you debug/report
+ problems.
+
+ <B>CURLOPT_HEADER</B>
+ A non-zero parameter tells the library to include
+ the header in the body output. This is only relevant
+ for protocols that actually have headers preceding
+ the data (like HTTP).
+
+ <B>CURLOPT_NOPROGRESS</B>
+ A non-zero parameter tells the library to shut of
+ the built-in progress meter completely.
+
+ <B>NOTE:</B> future versions of libcurl is likely to not
+ have any built-in progress meter at all.
+
+ <B>CURLOPT_NOBODY</B>
+ A non-zero parameter tells the library to not
+ include the body-part in the output. This is only
+ relevant for protocols that have separate header and
+ body parts.
+
+ <B>CURLOPT_FAILONERROR</B>
+ A non-zero parameter tells the library to fail
+ silently if the HTTP code returned is equal to or
+ larger than 300. The default action would be to
+ return the page normally, ignoring that code.
+
+ <B>CURLOPT_UPLOAD</B>
+ A non-zero parameter tells the library to prepare
+ for an upload. The CURLOPT_INFILE and CUR­
+ LOPT_INFILESIZE are also interesting for uploads.
+
+ <B>CURLOPT_POST</B>
+ A non-zero parameter tells the library to do a regu­
+ lar HTTP post. This is a normal application/x-www-
+ form-urlencoded kind, which is the most commonly
+ used one by HTML forms. See the CURLOPT_POSTFIELDS
+ option for how to specify the data to post and CUR­
+ LOPT_POSTFIELDSIZE in how to set the data size.
+ Starting with libcurl 7.8, this option is obsolete.
+ Using the CURLOPT_POSTFIELDS option will imply this
+ option.
+
+ <B>CURLOPT_FTPLISTONLY</B>
+ A non-zero parameter tells the library to just list
+ the names of an ftp directory, instead of doing a
+ full directory listing that would include file
+ sizes, dates etc.
+
+ <B>CURLOPT_FTPAPPEND</B>
+ A non-zero parameter tells the library to append to
+ the remote file instead of overwrite it. This is
+ only useful when uploading to a ftp site.
+
+ <B>CURLOPT_NETRC</B>
+ A non-zero parameter tells the library to scan your
+ <I>~/.netrc</I> file to find user name and password for the
+ remote site you are about to access. Only machine
+ name, user name and password is taken into account
+ (init macros and similar things aren't supported).
+
+ <B>Note:</B> libcurl does not verify that the file has the
+ correct properties set (as the standard Unix ftp
+ client does). It should only be readable by user.
+
+ <B>CURLOPT_FOLLOWLOCATION</B>
+ A non-zero parameter tells the library to follow any
+ Location: header that the server sends as part of a
+ HTTP header.
+
+ <B>NOTE:</B> this means that the library will re-send the
+ same request on the new location and follow new
+ Location: headers all the way until no more such
+ headers are returned. <I>CURLOPT</I><B>_</B><I>MAXREDIRS</I> can be used
+ to limit the number of redirects libcurl will fol­
+ low.
+
+ <B>CURLOPT_TRANSFERTEXT</B>
+ A non-zero parameter tells the library to use ASCII
+ mode for ftp transfers, instead of the default
+ binary transfer. For LDAP transfers it gets the data
+ in plain text instead of HTML and for win32 systems
+ it does not set the stdout to binary mode. This
+ option can be usable when transferring text data
+ between systems with different views on certain
+ characters, such as newlines or similar.
+
+ <B>CURLOPT_PUT</B>
+ A non-zero parameter tells the library to use HTTP
+ PUT to transfer data. The data should be set with
+ CURLOPT_INFILE and CURLOPT_INFILESIZE.
+
+ <B>CURLOPT_USERPWD</B>
+ Pass a char * as parameter, which should be [user
+ name]:[password] to use for the connection. If the
+ password is left out, you will be prompted for it.
+ <I>CURLOPT</I><B>_</B><I>PASSWDFUNCTION</I> can be used to set your own
+ prompt function.
+
+ <B>CURLOPT_PROXYUSERPWD</B>
+ Pass a char * as parameter, which should be [user
+ name]:[password] to use for the connection to the
+ HTTP proxy. If the password is left out, you will be
+ prompted for it. <I>CURLOPT</I><B>_</B><I>PASSWDFUNCTION</I> can be used
+ to set your own prompt function.
+
+ <B>CURLOPT_RANGE</B>
+ Pass a char * as parameter, which should contain the
+ specified range you want. It should be in the format
+ "X-Y", where X or Y may be left out. HTTP transfers
+ also support several intervals, separated with com­
+ mas as in <I>"X-Y,N-M"</I>. Using this kind of multiple
+ intervals will cause the HTTP server to send the
+ response document in pieces (using standard MIME
+ separation techniques).
+
+ <B>CURLOPT_ERRORBUFFER</B>
+ Pass a char * to a buffer that the libcurl may store
+ human readable error messages in. This may be more
+ helpful than just the return code from the library.
+ The buffer must be at least CURL_ERROR_SIZE big.
+
+ <B>Note:</B> if the library does not return an error, the
+ buffer may not have been touched. Do not rely on the
+ contents in those cases.
+
+ <B>CURLOPT_TIMEOUT</B>
+ Pass a long as parameter containing the maximum time
+ in seconds that you allow the libcurl transfer oper­
+ ation to take. Normally, name lookups can take a
+ considerable time and limiting operations to less
+ than a few minutes risk aborting perfectly normal
+ operations. This option will cause curl to use the
+ SIGALRM to enable time-outing system calls.
+
+ <B>NOTE:</B> this does not work in Unix multi-threaded pro­
+ grams, as it uses signals.
+
+ <B>CURLOPT_POSTFIELDS</B>
+ Pass a char * as parameter, which should be the full
+ data to post in a HTTP post operation. This is a
+ normal application/x-www-form-urlencoded kind, which
+ is the most commonly used one by HTML forms. See
+ also the CURLOPT_POST. Since 7.8, using CUR­
+ LOPT_POSTFIELDS implies CURLOPT_POST.
+
+ <B>Note:</B> to make multipart/formdata posts (aka
+ rfc1867-posts), check out the <I>CURLOPT</I><B>_</B><I>HTTPPOST</I>
+ option.
+
+ <B>CURLOPT_POSTFIELDSIZE</B>
+ If you want to post data to the server without let­
+ ting libcurl do a strlen() to measure the data size,
+ this option must be used. When this option is used
+ you can post fully binary data, which otherwise is
+ likely to fail. If this size is set to zero, the
+ library will use strlen() to get the size. (Added in
+ libcurl 7.2)
+
+ <B>CURLOPT_REFERER</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used to set the Referer: header in
+ the http request sent to the remote server. This can
+ be used to fool servers or scripts. You can also set
+ any custom header with <I>CURLOPT</I><B>_</B><I>HTTPHEADER</I>.
+
+ <B>CURLOPT_USERAGENT</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used to set the User-Agent: header
+ in the http request sent to the remote server. This
+ can be used to fool servers or scripts. You can also
+ set any custom header with <I>CURLOPT</I><B>_</B><I>HTTPHEADER</I>.
+
+ <B>CURLOPT_FTPPORT</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used to get the IP address to use
+ for the ftp PORT instruction. The PORT instruction
+ tells the remote server to connect to our specified
+ IP address. The string may be a plain IP address, a
+ host name, an network interface name (under Unix) or
+ just a '-' letter to let the library use your sys­
+ tems default IP address. Default FTP operations are
+ passive, and thus won't use PORT.
+
+ <B>CURLOPT_LOW_SPEED_LIMIT</B>
+ Pass a long as parameter. It contains the transfer
+ speed in bytes per second that the transfer should
+ be below during CURLOPT_LOW_SPEED_TIME seconds for
+ the library to consider it too slow and abort.
+
+ <B>CURLOPT_LOW_SPEED_TIME</B>
+ Pass a long as parameter. It contains the time in
+ seconds that the transfer should be below the CUR­
+ LOPT_LOW_SPEED_LIMIT for the library to consider it
+ too slow and abort.
+
+ <B>CURLOPT_RESUME_FROM</B>
+ Pass a long as parameter. It contains the offset in
+ number of bytes that you want the transfer to start
+ from.
+
+ <B>CURLOPT_COOKIE</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used to set a cookie in the http
+ request. The format of the string should be
+ [NAME]=[CONTENTS]; Where NAME is the cookie name.
+
+ <B>CURLOPT_HTTPHEADER</B>
+ Pass a pointer to a linked list of HTTP headers to
+ pass to the server in your HTTP request. The linked
+ list should be a fully valid list of <B>struct</B>
+ <B>curl_slist</B> structs properly filled in. Use
+ <I>curl</I><B>_</B><I>slist</I><B>_</B><I>append(3)</I> to create the list and
+ <I>curl</I><B>_</B><I>slist</I><B>_</B><I>free</I><B>_</B><I>all(3)</I> to clean up an entire list.
+ If you add a header that is otherwise generated and
+ used by libcurl internally, your added one will be
+ used instead. If you add a header with no contents
+ as in 'Accept:' (no data on the right side of the
+ colon), the internally used header will get dis­
+ abled. Thus, using this option you can add new head­
+ ers, replace internal headers and remove internal
+ headers.
+
+ <B>NOTE:</B>The most commonly replaced headers have "short­
+ cuts" in the options CURLOPT_COOKIE, CURLOPT_USERA­
+ GENT and CURLOPT_REFERER.
+
+ <B>CURLOPT_HTTPPOST</B>
+ Tells libcurl you want a multipart/formdata HTTP
+ POST to be made and you instruct what data to pass
+ on to the server. Pass a pointer to a linked list
+ of HTTP post structs as parameter. The linked list
+ should be a fully valid list of 'struct HttpPost'
+ structs properly filled in. The best and most ele­
+ gant way to do this, is to use <I>curl</I><B>_</B><I>formadd(3)</I> as
+ documented. The data in this list must remained
+ intact until you close this curl handle again with
+ <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup(3)</I>.
+
+ <B>CURLOPT_SSLCERT</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. The string should be the file name of your
+ certificate. The default format is "PEM" and can be
+ changed with <I>CURLOPT</I><B>_</B><I>SSLCERTTYPE</I>.
+
+ <B>CURLOPT_SSLCERTTYPE</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. The string should be the format of your cer­
+ tificate. Supported formats are "PEM" and "DER".
+ (Added in 7.9.3)
+
+ <B>CURLOPT_SSLCERTPASSWD</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used as the password required to
+ use the CURLOPT_SSLCERT certificate. If the password
+ is not supplied, you will be prompted for it. <I>CUR­</I>
+ <I>LOPT</I><B>_</B><I>PASSWDFUNCTION</I> can be used to set your own
+ prompt function.
+
+ <B>NOTE:</B>This option is replaced by <I>CURLOPT</I><B>_</B><I>SSLKEYPASSWD</I>
+ and only cept for backward compatibility. You never
+ needed a pass phrase to load a certificate but you
+ need one to load your private key.
+
+ <B>CURLOPT_SSLKEY</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. The string should be the file name of your
+ private key. The default format is "PEM" and can be
+ changed with <I>CURLOPT</I><B>_</B><I>SSLKEYTYPE</I>. (Added in 7.9.3)
+
+ <B>CURLOPT_SSLKEYTYPE</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. The string should be the format of your pri­
+ vate key. Supported formats are "PEM", "DER" and
+ "ENG". (Added in 7.9.3)
+
+ <B>NOTE:</B>The format "ENG" enables you to load the pri­
+ vate key from a crypto engine. in this case <I>CUR­</I>
+ <I>LOPT</I><B>_</B><I>SSLKEY</I> is used as an identifier passed to the
+ engine. You have to set the crypto engine with <I>CUR­</I>
+ <I>LOPT</I><B>_</B><I>SSL</I><B>_</B><I>ENGINE</I>.
+
+ <B>CURLOPT_SSLKEYASSWD</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used as the password required to
+ use the <I>CURLOPT</I><B>_</B><I>SSLKEY</I> private key. If the password
+ is not supplied, you will be prompted for it. <I>CUR­</I>
+ <I>LOPT</I><B>_</B><I>PASSWDFUNCTION</I> can be used to set your own
+ prompt function. (Added in 7.9.3)
+
+ <B>CURLOPT_SSL_ENGINE</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be used as the identifier for the
+ crypto engine you want to use for your private key.
+ (Added in 7.9.3)
+
+ <B>NOTE:</B>If the crypto device cannot be loaded,
+ <I>CURLE</I><B>_</B><I>SSL</I><B>_</B><I>ENGINE</I><B>_</B><I>NOTFOUND</I> is returned.
+
+ <B>CURLOPT_SSL_ENGINEDEFAULT</B>
+ Sets the actual crypto engine as the default for
+ (asymetric) crypto operations. (Added in 7.9.3)
+
+ <B>NOTE:</B>If the crypto device cannot be set,
+ <I>CURLE</I><B>_</B><I>SSL</I><B>_</B><I>ENGINE</I><B>_</B><I>SETFAILED</I> is returned.
+
+ <B>CURLOPT_CRLF</B>
+ Convert Unix newlines to CRLF newlines on FTP
+ uploads.
+
+ <B>CURLOPT_QUOTE</B>
+ Pass a pointer to a linked list of FTP commands to
+ pass to the server prior to your ftp request. The
+ linked list should be a fully valid list of 'struct
+ curl_slist' structs properly filled in. Use
+ <I>curl</I><B>_</B><I>slist</I><B>_</B><I>append(3)</I> to append strings (commands) to
+ the list, and clear the entire list afterwards with
+ <I>curl</I><B>_</B><I>slist</I><B>_</B><I>free</I><B>_</B><I>all(3)</I>. Disable this operation again
+ by setting a NULL to this option.
+
+ <B>CURLOPT_POSTQUOTE</B>
+ Pass a pointer to a linked list of FTP commands to
+ pass to the server after your ftp transfer request.
+ The linked list should be a fully valid list of
+ struct curl_slist structs properly filled in as
+ described for <I>CURLOPT</I><B>_</B><I>QUOTE</I>. Disable this operation
+ again by setting a NULL to this option.
+
+ <B>CURLOPT_WRITEHEADER</B>
+ Pass a pointer to be used to write the header part
+ of the received data to. If you don't use your own
+ callback to take care of the writing, this must be a
+ valid FILE *. See also the <I>CURLOPT</I><B>_</B><I>HEADERFUNCTION</I>
+ option below on how to set a custom get-all-headers
+ callback.
+
+ <B>CURLOPT_HEADERFUNCTION</B>
+ Function pointer that should match the following
+ prototype: <I>size</I><B>_</B><I>t</I> <I>function(</I> <I>void</I> <I>*ptr,</I> <I>size</I><B>_</B><I>t</I> <I>size,</I>
+ <I>size</I><B>_</B><I>t</I> <I>nmemb,</I> <I>void</I> <I>*stream);</I>. This function gets
+ called by libcurl as soon as there is received
+ header data that needs to be written down. The head­
+ ers are guaranteed to be written one-by-one and only
+ complete lines are written. Parsing headers should
+ be easy enough using this. The size of the data
+ pointed to by <I>ptr</I> is <I>size</I> multiplied with <I>nmemb</I>.
+ The pointer named <I>stream</I> will be the one you passed
+ to libcurl with the <I>CURLOPT</I><B>_</B><I>WRITEHEADER</I> option.
+ Return the number of bytes actually written or
+ return -1 to signal error to the library (it will
+ cause it to abort the transfer with a
+ <I>CURLE</I><B>_</B><I>WRITE</I><B>_</B><I>ERROR</I> return code). (Added in libcurl
+ 7.7.2)
+
+ <B>CURLOPT_COOKIEFILE</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It should contain the name of your file hold­
+ ing cookie data. The cookie data may be in Netscape
+ / Mozilla cookie data format or just regular HTTP-
+ style headers dumped to a file.
+
+ <B>CURLOPT_SSLVERSION</B>
+ Pass a long as parameter. Set what version of SSL to
+ attempt to use, 2 or 3. By default, the SSL library
+ will try to solve this by itself although some
+ servers make this difficult why you at times may
+ have to use this option.
+
+ <B>CURLOPT_TIMECONDITION</B>
+ Pass a long as parameter. This defines how the CUR­
+ LOPT_TIMEVALUE time value is treated. You can set
+ this parameter to TIMECOND_IFMODSINCE or TIME­
+ COND_IFUNMODSINCE. This is a HTTP-only feature.
+ (TBD)
+
+ <B>CURLOPT_TIMEVALUE</B>
+ Pass a long as parameter. This should be the time in
+ seconds since 1 jan 1970, and the time will be used
+ as specified in CURLOPT_TIMECONDITION or if that
+ isn't used, it will be TIMECOND_IFMODSINCE by
+ default.
+
+ <B>CURLOPT_CUSTOMREQUEST</B>
+ Pass a pointer to a zero terminated string as param­
+ eter. It will be user instead of GET or HEAD when
+ doing the HTTP request. This is useful for doing
+ DELETE or other more or less obscure HTTP requests.
+ Don't do this at will, make sure your server sup­
+ ports the command first.
+
+ <B>CURLOPT_STDERR</B>
+ Pass a FILE * as parameter. This is the stream to
+ use instead of stderr internally when reporting
+ errors.
+
+ <B>CURLOPT_INTERFACE</B>
+ Pass a char * as parameter. This set the interface
+ name to use as outgoing network interface. The name
+ can be an interface name, an IP address or a host
+ name. (Added in libcurl 7.3)
+
+ <B>CURLOPT_KRB4LEVEL</B>
+ Pass a char * as parameter. Set the krb4 security
+ level, this also enables krb4 awareness. This is a
+ string, 'clear', 'safe', 'confidential' or 'pri­
+ vate'. If the string is set but doesn't match one
+ of these, 'private' will be used. Set the string to
+ NULL to disable kerberos4. The kerberos support only
+ works for FTP. (Added in libcurl 7.3)
+
+ <B>CURLOPT_PROGRESSFUNCTION</B>
+ Function pointer that should match the
+ <I>curl</I><B>_</B><I>progress</I><B>_</B><I>callback</I> prototype found in
+ <I>&lt;curl/curl.h&gt;</I>. This function gets called by libcurl
+ instead of its internal equivalent with a frequent
+ interval during data transfer. Unknown/unused argu­
+ ment values will be set to zero (like if you only
+ download data, the upload size will remain 0).
+ Returning a non-zero value from this callback will
+ cause libcurl to abort the transfer and return
+ <I>CURLE</I><B>_</B><I>ABORTED</I><B>_</B><I>BY</I><B>_</B><I>CALLBACK</I>.
+
+ <B>CURLOPT_PROGRESSDATA</B>
+ Pass a pointer that will be untouched by libcurl and
+ passed as the first argument in the progress call­
+ back set with <I>CURLOPT</I><B>_</B><I>PROGRESSFUNCTION</I>.
+
+ <B>CURLOPT_SSL_VERIFYPEER</B>
+ Pass a long that is set to a non-zero value to make
+ curl verify the peer's certificate. The certificate
+ to verify against must be specified with the CUR­
+ LOPT_CAINFO option. (Added in 7.4.2)
+
+ <B>CURLOPT_CAINFO</B>
+ Pass a char * to a zero terminated file naming hold­
+ ing the certificate to verify the peer with. This
+ only makes sense when used in combination with the
+ CURLOPT_SSL_VERIFYPEER option. (Added in 7.4.2)
+
+ <B>CURLOPT_PASSWDFUNCTION</B>
+ Pass a pointer to a <I>curl</I><B>_</B><I>passwd</I><B>_</B><I>callback</I> function
+ that will be called instead of the internal one if
+ libcurl requests a password. The function must match
+ this prototype: <B>int</B> <B>my_getpass(void</B> <B>*client,</B> <B>char</B>
+ <B>*prompt,</B> <B>char*</B> <B>buffer,</B> <B>int</B> <B>buflen</B> <B>);</B>. If set to
+ NULL, it equals to making the function always fail.
+ If the function returns a non-zero value, it will
+ abort the operation and an error (CURLE_BAD_PASS­
+ WORD_ENTERED) will be returned. <I>client</I> is a generic
+ pointer, see <I>CURLOPT</I><B>_</B><I>PASSWDDATA</I>. <I>prompt</I> is a zero-
+ terminated string that is text that prefixes the
+ input request. <I>buffer</I> is a pointer to data where
+ the entered password should be stored and <I>buflen</I> is
+ the maximum number of bytes that may be written in
+ the buffer. (Added in 7.4.2)
+
+ <B>CURLOPT_PASSWDDATA</B>
+ Pass a void * to whatever data you want. The passed
+ pointer will be the first argument sent to the
+ specifed <I>CURLOPT</I><B>_</B><I>PASSWDFUNCTION</I> function. (Added in
+ 7.4.2)
+
+ <B>CURLOPT_FILETIME</B>
+ Pass a long. If it is a non-zero value, libcurl will
+ attempt to get the modification date of the remote
+ document in this operation. This requires that the
+ remote server sends the time or replies to a time
+ querying command. The <I>curl</I><B>_</B><I>easy</I><B>_</B><I>getinfo(3)</I> function
+ with the <I>CURLINFO</I><B>_</B><I>FILETIME</I> argument can be used
+ after a transfer to extract the received time (if
+ any). (Added in 7.5)
+
+ <B>CURLOPT_MAXREDIRS</B>
+ Pass a long. The set number will be the redirection
+ limit. If that many redirections have been followed,
+ the next redirect will cause an error
+ (<I>CURLE</I><B>_</B><I>TOO</I><B>_</B><I>MANY</I><B>_</B><I>REDIRECTS</I>). This option only makes
+ sense if the <I>CURLOPT</I><B>_</B><I>FOLLOWLOCATION</I> is used at the
+ same time. (Added in 7.5)
+
+ <B>CURLOPT_MAXCONNECTS</B>
+ Pass a long. The set number will be the persistant
+ connection cache size. The set amount will be the
+ maximum amount of simultaneous connections that
+ libcurl may cache between file transfers. Default is
+ 5, and there isn't much point in changing this value
+ unless you are perfectly aware of how this work and
+ changes libcurl's behaviour.
+
+ <B>NOTE:</B> if you already have performed transfers with
+ this curl handle, setting a smaller MAXCONNECTS than
+ before may cause open connections to get closed
+ unnecessarily. (Added in 7.7)
+
+ <B>CURLOPT_CLOSEPOLICY</B>
+ Pass a long. This option sets what policy libcurl
+ should use when the connection cache is filled and
+ one of the open connections has to be closed to make
+ room for a new connection. This must be one of the
+ CURLCLOSEPOLICY_* defines. Use <I>CURLCLOSEPOL­</I>
+ <I>ICY</I><B>_</B><I>LEAST</I><B>_</B><I>RECENTLY</I><B>_</B><I>USED</I> to make libcurl close the
+ connection that was least recently used, that con­
+ nection is also least likely to be capable of re-
+ use. Use <I>CURLCLOSEPOLICY</I><B>_</B><I>OLDEST</I> to make libcurl
+ close the oldest connection, the one that was cre­
+ ated first among the ones in the connection cache.
+ The other close policies are not support yet. (Added
+ in 7.7)
+
+ <B>CURLOPT_FRESH_CONNECT</B>
+ Pass a long. Set to non-zero to make the next trans­
+ fer use a new (fresh) connection by force. If the
+ connection cache is full before this connection, one
+ of the existing connections will be closed as
+ according to the selected or default policy. This
+ option should be used with caution and only if you
+ understand what it does. Set this to 0 to have
+ libcurl attempt re-using an existing connection
+ (default behavior). (Added in 7.7)
+
+ <B>CURLOPT_FORBID_REUSE</B>
+ Pass a long. Set to non-zero to make the next trans­
+ fer explicitly close the connection when done. Nor­
+ mally, libcurl keep all connections alive when done
+ with one transfer in case there comes a succeeding
+ one that can re-use them. This option should be
+ used with caution and only if you understand what it
+ does. Set to 0 to have libcurl keep the connection
+ open for possibly later re-use (default behavior).
+ (Added in 7.7)
+
+ <B>CURLOPT_RANDOM_FILE</B>
+ Pass a char * to a zero terminated file name. The
+ file will be used to read from to seed the random
+ engine for SSL. The more random the specified file
+ is, the more secure will the SSL connection become.
+
+ <B>CURLOPT_EGDSOCKET</B>
+ Pass a char * to the zero terminated path name to
+ the Entropy Gathering Daemon socket. It will be used
+ to seed the random engine for SSL.
+
+ <B>CURLOPT_CONNECTTIMEOUT</B>
+ Pass a long. It should contain the maximum time in
+ seconds that you allow the connection to the server
+ to take. This only limits the connection phase,
+ once it has connected, this option is of no more
+ use. Set to zero to disable connection timeout (it
+ will then only timeout on the system's internal
+ timeouts). See also the <I>CURLOPT</I><B>_</B><I>TIMEOUT</I> option.
+
+ <B>NOTE:</B> this does not work in unix multi-threaded pro­
+ grams, as it uses signals.
+
+ <B>CURLOPT_HTTPGET</B>
+ Pass a long. If the long is non-zero, this forces
+ the HTTP request to get back to GET. Only really
+ usable if POST, PUT or a custom request have been
+ used previously using the same curl handle. (Added
+ in 7.8.1)
+
+ <B>CURLOPT_SSL_VERIFYHOST</B>
+ Pass a long. Set if we should verify the Common name
+ from the peer certificate in the SSL handshake, set
+ 1 to check existence, 2 to ensure that it matches
+ the provided hostname. (Added in 7.8.1)
+
+ <B>CURLOPT_COOKIEJAR</B>
+ Pass a file name as char *, zero terminated. This
+ will make libcurl dump all internally known cookies
+ to the specified file when <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup(3)</I> is
+ called. If no cookies are known, no file will be
+ created. Specify "-" to instead have the cookies
+ written to stdout.
+
+ <B>CURLOPT_SSL_CIPHER_LIST</B>
+ Pass a char *, pointing to a zero terminated string
+ holding the list of ciphers to use for the SSL con­
+ nection. The list must be syntactly correct, it con­
+ sists of one or more cipher strings separated by
+ colons. Commas or spaces are also acceptable separa­
+ tors but colons are normally used, , - and + can be
+ used as operators. Valid examples of cipher lists
+ include 'RC4-SHA', ´SHA1+DES´, 'TLSv1' and
+ 'DEFAULT'. The default list is normally set when you
+ compile OpenSSL.
+
+ You'll find more details about cipher lists on this
+ URL: <I>http://www.openssl.org/docs/apps/ciphers.html</I>
+
+ <B>CURLOPT_HTTP_VERSION</B>
+ Pass a long, set to one of the values described
+ below. They force libcurl to use the specific HTTP
+ versions. This is not sensible to do unless you have
+ a good reason.
+
+ <B>CURL_HTTP_VERSION_NONE</B>
+ We don't care about what version the library
+ uses. libcurl will use whatever it thinks fit.
+
+ <B>CURL_HTTP_VERSION_1_0</B>
+ Enforce HTTP 1.0 requests.
+
+ <B>CURL_HTTP_VERSION_1_1</B>
+ Enforce HTTP 1.1 requests.
+
+ <B>CURLOPT_FTP_USE_EPSV</B>
+ Pass a long. If the value is non-zero, it tells curl
+ to use the EPSV command when doing passive FTP down­
+ loads (which is always does by default). Using EPSV
+ means that it will first attempt to use EPSV before
+ using PASV, but if you pass FALSE (zero) to this
+ option, it will not try using EPSV, only plain PASV.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ CURLE_OK (zero) means that the option was set properly, non-
+ zero means an error occurred as <I>&lt;curl/curl.h&gt;</I> defines.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_init(3)</B>, <B>curl_easy_cleanup(3)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ If you find any bugs, or just have questions, subscribe to
+ one of the mailing lists and post. We won't bite.
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_escape.3 b/Build/source/libs/curl/docs/libcurl/curl_escape.3
new file mode 100644
index 00000000000..3936eaec8cd
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_escape.3
@@ -0,0 +1,26 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_escape.3,v 1.2 2002/03/06 07:44:49 bagder Exp $
+.\"
+.TH curl_escape 3 "6 March 2002" "libcurl 7.9" "libcurl Manual"
+.SH NAME
+curl_escape - URL encodes the given string
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "char *curl_escape( char *" url ", int "length " );"
+.ad
+.SH DESCRIPTION
+This function will convert the given input string to an URL encoded string and
+return that as a new allocated string. All input characters that are not a-z,
+A-Z or 0-9 will be converted to their "URL escaped" version (%NN where NN is a
+two-digit hexadecimal number).
+
+If the 'length' argument is set to 0, curl_escape() will use strlen() on the
+input 'url' string to find out the size.
+
+You must free() the returned string when you're done with it.
+.SH RETURN VALUE
+A pointer to a zero terminated string or NULL if it failed.
+.SH "SEE ALSO"
+.I curl_unescape(), RFC 2396
diff --git a/Build/source/libs/curl/docs/libcurl/curl_escape.html b/Build/source/libs/curl/docs/libcurl/curl_escape.html
new file mode 100644
index 00000000000..975dac2bbe1
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_escape.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_escape - URL encodes the given string
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>char</B> <B>*curl_escape(</B> <B>char</B> <B>*</B><I>url</I><B>,</B> <B>int</B> <I>length</I> <B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function will convert the given input string to an URL
+ encoded string and return that as a new allocated string.
+ All input characters that are not a-z, A-Z or 0-9 will be
+ converted to their "URL escaped" version (%NN where NN is a
+ two-digit hexadecimal number).
+
+ If the 'length' argument is set to 0, curl_escape() will use
+ strlen() on the input 'url' string to find out the size.
+
+ You must free() the returned string when you're done with
+ it.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ A pointer to a zero terminated string or NULL if it failed.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <I>curl</I><B>_</B><I>unescape(),</I> <I>RFC</I> <I>2396</I>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formadd.3 b/Build/source/libs/curl/docs/libcurl/curl_formadd.3
new file mode 100644
index 00000000000..c80b4fba1af
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formadd.3
@@ -0,0 +1,165 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_formadd.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_formadd 3 "1 Match 2002" "libcurl 7.9.1" "libcurl Manual"
+.SH NAME
+curl_formadd - add a section to a multipart/formdata HTTP POST
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "int curl_formadd(struct HttpPost ** " firstitem,
+.BI "struct HttpPost ** " lastitem, " ...);"
+.ad
+.SH DESCRIPTION
+curl_formadd() is used to append sections when building a multipart/formdata
+HTTP POST (sometimes refered to as rfc1867-style posts). Append one section at
+a time until you've added all the sections you want included and then you pass
+the \fIfirstitem\fP pointer as parameter to \fBCURLOPT_HTTPPOST\fP.
+\fIlastitem\fP is set after each call and on repeated invokes it should be
+left as set to allow repeated invokes to find the end of the list faster.
+
+After the \fIlastitem\fP pointer follow the real arguments. (If the following
+description confuses you, jump directly to the examples):
+
+\fBCURLFORM_COPYNAME\fP or \fBCURLFORM_PTRNAME\fP followed by a string is used
+for the name of the section. Optionally one may use \fBCURLFORM_NAMELENGTH\fP
+to specify the length of the name (allowing null characters within the
+name). All options that use the word COPY in their names copy the given
+contents, while the ones with PTR in their names simply points to the (static)
+data you must make sure remain until curl no longer needs it.
+
+The four options for providing values are: \fBCURLFORM_COPYCONTENTS\fP,
+\fBCURLFORM_PTRCONTENTS\fP, \fBCURLFORM_FILE\fP, or \fBCURLFORM_FILECONTENT\fP
+followed by a char or void pointer (allowed for PTRCONTENTS).
+
+\fBCURLFORM_FILECONTENT\fP does a normal post like \fBCURLFORM_COPYCONTENTS\fP
+but the actual value is read from the filename given as a string.
+
+Other arguments may be \fBCURLFORM_CONTENTTYPE\fP if the user wishes to
+specify one (for FILE if no type is given the library tries to provide the
+correct one; for CONTENTS no Content-Type is sent in this case).
+
+For \fBCURLFORM_PTRCONTENTS\fP or \fBCURLFORM_COPYNAME\fP the user may also
+add \fBCURLFORM_CONTENTSLENGTH\fP followed by the length as a long (if not
+given the library will use strlen to determine the length).
+
+For \fBCURLFORM_FILE\fP the user may send multiple files in one section by
+providing multiple \fBCURLFORM_FILE\fP arguments each followed by the filename
+(and each FILE is allowed to have a CONTENTTYPE).
+
+Another possibility to send single or multiple files in one section is to use
+\fBCURLFORM_ARRAY\fP that gets a struct curl_forms array pointer as its
+value. Each structure element has a CURLformoption and a char pointer. For the
+options only \fBCURLFORM_FILE\fP, \fBCURLFORM_CONTENTTYPE\fP, and
+\fBCURLFORM_END\fP (that is used to determine the end of the array and thus
+must be the option of the last and no other element of the curl_forms array)
+are allowed. The effect of this parameter is the same as giving multiple
+\fBCURLFORM_FILE\fP options possibly with \fBCURLFORM_CONTENTTYPE\fP after or
+before each \fBCURLFORM_FILE\fP option.
+
+Should you need to specify extra headers for the form POST section, use
+\fBCURLFORM_CONTENTHEADER\fP. This takes a curl_slist prepared in the usual way
+using \fBcurl_slist_append\fP and appends the list of headers to those Curl
+automatically generates for \fBCURLFORM_CONTENTTYPE\fP and the content
+disposition. The list must exist while the POST occurs, if you free it before
+the post completes you may experience problems.
+
+The last argument in such an array must always be \fBCURLFORM_END\fP.
+
+The pointers \fI*firstitem\fP and \fI*lastitem\fP should both be pointing to
+NULL in the first call to this function. All list-data will be allocated by
+the function itself. You must call \fIcurl_formfree\fP after the form post has
+been done to free the resources again.
+
+This function will copy all input data except the data pointed to by the
+arguments after \fBCURLFORM_PTRNAME\fP and \fBCURLFORM_PTRCONTENTS\fP and keep
+its own version of it allocated until you call \fIcurl_formfree\fP. When
+you've passed the pointer to \fIcurl_easy_setopt\fP, you must not free the
+list until after you've called \fIcurl_easy_cleanup\fP for the curl handle. If
+you provide a pointer as an arguments after \fBCURLFORM_PTRNAME\fP or
+\fBCURLFORM_PTRCONTENTS\fP you must ensure that the pointer stays valid until
+you call \fIcurl_form_free\fP and \fIcurl_easy_cleanup\fP.
+
+See example below.
+.SH RETURN VALUE
+Returns non-zero if an error occurs.
+.SH EXAMPLE
+.nf
+
+ struct HttpPost* post = NULL;
+ struct HttpPost* last = NULL;
+ char namebuffer[] = "name buffer";
+ long namelength = strlen(namebuffer);
+ char buffer[] = "test buffer";
+ char htmlbuffer[] = "<HTML>test buffer</HTML>";
+ long htmlbufferlength = strlen(htmlbuffer);
+ struct curl_forms forms[3];
+ char file1[] = "my-face.jpg";
+ char file2[] = "your-face.jpg";
+ /* add null character into htmlbuffer, to demonstrate that
+ transfers of buffers containing null characters actually work
+ */
+ htmlbuffer[8] = '\\0';
+
+ /* Add simple name/content section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "name",
+ CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
+
+ /* Add simple name/content/contenttype section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "htmlcode",
+ CURLFORM_COPYCONTENTS, "<HTML></HTML>",
+ CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
+
+ /* Add name/ptrcontent section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "name_for_ptrcontent",
+ CURLFORM_PTRCONTENTS, buffer, CURLFORM_END);
+
+ /* Add ptrname/ptrcontent section */
+ curl_formadd(&post, &last, CURLFORM_PTRNAME, namebuffer,
+ CURLFORM_PTRCONTENTS, buffer, CURLFORM_NAMELENGTH,
+ namelength, CURLFORM_END);
+
+ /* Add name/ptrcontent/contenttype section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "html_code_with_hole",
+ CURLFORM_PTRCONTENTS, htmlbuffer,
+ CURLFORM_CONTENTSLENGTH, htmlbufferlength,
+ CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
+
+ /* Add simple file section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
+ CURLFORM_FILE, "my-face.jpg", CURLFORM_END);
+
+ /* Add file/contenttype section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
+ CURLFORM_FILE, "my-face.jpg",
+ CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
+
+ /* Add two file section */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
+ CURLFORM_FILE, "my-face.jpg",
+ CURLFORM_FILE, "your-face.jpg", CURLFORM_END);
+
+ /* Add two file section using CURLFORM_ARRAY */
+ forms[0].option = CURLFORM_FILE;
+ forms[0].value = file1;
+ forms[1].option = CURLFORM_FILE;
+ forms[1].value = file2;
+ forms[2].option = CURLFORM_END;
+
+ /* no option needed for the end marker */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
+ CURLFORM_ARRAY, forms, CURLFORM_END);
+ /* Add the content of a file as a normal post text value */
+ curl_formadd(&post, &last, CURLFORM_COPYNAME, "filecontent",
+ CURLFORM_FILECONTENT, ".bashrc", CURLFORM_END);
+ /* Set the form info */
+ curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
+
+.SH "SEE ALSO"
+.BR curl_easy_setopt "(3), "
+.BR curl_formparse "(3) [deprecated], "
+.BR curl_formfree "(3)"
+.SH BUGS
+Surely there are some, you tell me!
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formadd.html b/Build/source/libs/curl/docs/libcurl/curl_formadd.html
new file mode 100644
index 00000000000..2264480aa0b
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formadd.html
@@ -0,0 +1,234 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_formadd - add a section to a multipart/formdata HTTP
+ POST
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>int</B> <B>curl_formadd(struct</B> <B>HttpPost</B> <B>**</B> <I>firstitem,</I> <B>struct</B> <B>Http­</B>
+ <B>Post</B> <B>**</B> <I>lastitem,</I> <B>...);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_formadd() is used to append sections when building a
+ multipart/formdata HTTP POST (sometimes refered to as
+ rfc1867-style posts). Append one section at a time until
+ you've added all the sections you want included and then you
+ pass the <I>firstitem</I> pointer as parameter to <B>CURLOPT_HTTPPOST</B>.
+ <I>lastitem</I> is set after each call and on repeated invokes it
+ should be left as set to allow repeated invokes to find the
+ end of the list faster.
+
+ After the <I>lastitem</I> pointer follow the real arguments. (If
+ the following description confuses you, jump directly to the
+ examples):
+
+ <B>CURLFORM_COPYNAME</B> or <B>CURLFORM_PTRNAME</B> followed by a string
+ is used for the name of the section. Optionally one may use
+ <B>CURLFORM_NAMELENGTH</B> to specify the length of the name
+ (allowing null characters within the name). All options that
+ use the word COPY in their names copy the given contents,
+ while the ones with PTR in their names simply points to the
+ (static) data you must make sure remain until curl no longer
+ needs it.
+
+ The four options for providing values are: <B>CURLFORM_COPYCON­</B>
+ <B>TENTS</B>, <B>CURLFORM_PTRCONTENTS</B>, <B>CURLFORM_FILE</B>, or <B>CURL­</B>
+ <B>FORM_FILECONTENT</B> followed by a char or void pointer (allowed
+ for PTRCONTENTS).
+
+ <B>CURLFORM_FILECONTENT</B> does a normal post like <B>CURLFORM_COPY­</B>
+ <B>CONTENTS</B> but the actual value is read from the filename
+ given as a string.
+
+ Other arguments may be <B>CURLFORM_CONTENTTYPE</B> if the user
+ wishes to specify one (for FILE if no type is given the
+ library tries to provide the correct one; for CONTENTS no
+ Content-Type is sent in this case).
+
+ For <B>CURLFORM_PTRCONTENTS</B> or <B>CURLFORM_COPYNAME</B> the user may
+ also add <B>CURLFORM_CONTENTSLENGTH</B> followed by the length as a
+ long (if not given the library will use strlen to determine
+ the length).
+
+ For <B>CURLFORM_FILE</B> the user may send multiple files in one
+ section by providing multiple <B>CURLFORM_FILE</B> arguments each
+ followed by the filename (and each FILE is allowed to have a
+ CONTENTTYPE).
+
+ Another possibility to send single or multiple files in one
+ section is to use <B>CURLFORM_ARRAY</B> that gets a struct
+ curl_forms array pointer as its value. Each structure ele­
+ ment has a CURLformoption and a char pointer. For the
+ options only <B>CURLFORM_FILE</B>, <B>CURLFORM_CONTENTTYPE</B>, and <B>CURL­</B>
+ <B>FORM_END</B> (that is used to determine the end of the array and
+ thus must be the option of the last and no other element of
+ the curl_forms array) are allowed. The effect of this param­
+ eter is the same as giving multiple <B>CURLFORM_FILE</B> options
+ possibly with <B>CURLFORM_CONTENTTYPE</B> after or before each
+ <B>CURLFORM_FILE</B> option.
+
+ Should you need to specify extra headers for the form POST
+ section, use <B>CURLFORM_CONTENTHEADER</B>. This takes a curl_slist
+ prepared in the usual way using <B>curl_slist_append</B> and
+ appends the list of headers to those Curl automatically gen­
+ erates for <B>CURLFORM_CONTENTTYPE</B> and the content disposition.
+ The list must exist while the POST occurs, if you free it
+ before the post completes you may experience problems.
+
+ The last argument in such an array must always be <B>CURL­</B>
+ <B>FORM_END</B>.
+
+ The pointers <I>*firstitem</I> and <I>*lastitem</I> should both be point­
+ ing to NULL in the first call to this function. All list-
+ data will be allocated by the function itself. You must call
+ <I>curl</I><B>_</B><I>formfree</I> after the form post has been done to free the
+ resources again.
+
+ This function will copy all input data except the data
+ pointed to by the arguments after <B>CURLFORM_PTRNAME</B> and <B>CURL­</B>
+ <B>FORM_PTRCONTENTS</B> and keep its own version of it allocated
+ until you call <I>curl</I><B>_</B><I>formfree</I>. When you've passed the pointer
+ to <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt</I>, you must not free the list until after
+ you've called <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup</I> for the curl handle. If you
+ provide a pointer as an arguments after <B>CURLFORM_PTRNAME</B> or
+ <B>CURLFORM_PTRCONTENTS</B> you must ensure that the pointer stays
+ valid until you call <I>curl</I><B>_</B><I>form</I><B>_</B><I>free</I> and <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup</I>.
+
+ See example below.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ Returns non-zero if an error occurs.
+
+
+</PRE>
+<H2>EXAMPLE</H2><PRE>
+ struct HttpPost* post = NULL;
+ struct HttpPost* last = NULL;
+ char namebuffer[] = "name buffer";
+ long namelength = strlen(namebuffer);
+ char buffer[] = "test buffer";
+ char htmlbuffer[] = "&lt;HTML&gt;test buffer&lt;/HTML&gt;";
+ long htmlbufferlength = strlen(htmlbuffer);
+ struct curl_forms forms[3];
+ char file1[] = "my-face.jpg";
+ char file2[] = "your-face.jpg";
+ /* add null character into htmlbuffer, to demonstrate that
+ transfers of buffers containing null characters actually work
+ */
+ htmlbuffer[8] = '\0';
+
+ /* Add simple name/content section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "name",
+ CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
+
+ /* Add simple name/content/contenttype section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "htmlcode",
+ CURLFORM_COPYCONTENTS, "&lt;HTML&gt;&lt;/HTML&gt;",
+ CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
+
+ /* Add name/ptrcontent section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "name_for_ptrcontent",
+ CURLFORM_PTRCONTENTS, buffer, CURLFORM_END);
+
+ /* Add ptrname/ptrcontent section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_PTRNAME, namebuffer,
+ CURLFORM_PTRCONTENTS, buffer, CURLFORM_NAMELENGTH,
+ namelength, CURLFORM_END);
+
+ /* Add name/ptrcontent/contenttype section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "html_code_with_hole",
+ CURLFORM_PTRCONTENTS, htmlbuffer,
+ CURLFORM_CONTENTSLENGTH, htmlbufferlength,
+ CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
+
+ /* Add simple file section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "picture",
+ CURLFORM_FILE, "my-face.jpg", CURLFORM_END);
+
+ /* Add file/contenttype section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "picture",
+ CURLFORM_FILE, "my-face.jpg",
+ CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
+
+ /* Add two file section */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "pictures",
+ CURLFORM_FILE, "my-face.jpg",
+ CURLFORM_FILE, "your-face.jpg", CURLFORM_END);
+
+ /* Add two file section using CURLFORM_ARRAY */
+ forms[0].option = CURLFORM_FILE;
+ forms[0].value = file1;
+ forms[1].option = CURLFORM_FILE;
+ forms[1].value = file2;
+ forms[2].option = CURLFORM_END;
+
+ /* no option needed for the end marker */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "pictures",
+ CURLFORM_ARRAY, forms, CURLFORM_END);
+ /* Add the content of a file as a normal post text value */
+ curl_formadd(&amp;post, &amp;last, CURLFORM_COPYNAME, "filecontent",
+ CURLFORM_FILECONTENT, ".bashrc", CURLFORM_END);
+ /* Set the form info */
+ curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
+
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_easy_setopt(3)</B>, <B>curl_formparse(3)</B> [deprecated],
+ <B>curl_formfree(3)</B>
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formfree.3 b/Build/source/libs/curl/docs/libcurl/curl_formfree.3
new file mode 100644
index 00000000000..31a55eceb6a
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formfree.3
@@ -0,0 +1,27 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_formfree.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_formfree 3 "6 April 2001" "libcurl 7.7.1" "libcurl Manual"
+.SH NAME
+curl_formfree - free a previously build multipart/formdata HTTP POST chain
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "void curl_formfree(struct HttpPost *" form);
+.ad
+.SH DESCRIPTION
+curl_formfree() is used to clean up data previously built/appended with
+curl_formadd()/curl_formparse(). This must be called when the data has
+been used, which typically means after the curl_easy_perform() has
+been called.
+.SH RETURN VALUE
+None
+.SH "SEE ALSO"
+.BR curl_formparse "(3) [deprecated], "
+.BR curl_formadd "(3) "
+.SH BUGS
+libcurl 7.7.1 and earlier versions does not allow a NULL pointer to be used as
+argument.
+
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formfree.html b/Build/source/libs/curl/docs/libcurl/curl_formfree.html
new file mode 100644
index 00000000000..bd7233016f5
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formfree.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_formfree - free a previously build multipart/formdata
+ HTTP POST chain
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>void</B> <B>curl_formfree(struct</B> <B>HttpPost</B> <B>*</B><I>form);</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_formfree() is used to clean up data previously
+ built/appended with curl_formadd()/curl_formparse(). This
+ must be called when the data has been used, which typically
+ means after the curl_easy_perform() has been called.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ None
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_formparse(3)</B> [deprecated], <B>curl_formadd(3)</B>
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ libcurl 7.7.1 and earlier versions does not allow a NULL
+ pointer to be used as argument.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formparse.3 b/Build/source/libs/curl/docs/libcurl/curl_formparse.3
new file mode 100644
index 00000000000..8c169c8bd03
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formparse.3
@@ -0,0 +1,18 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_formparse.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_formparse 3 "17 Dec 2001" "libcurl 7.9.2" "libcurl Manual"
+.SH NAME
+curl_formparse - add a section to a multipart/formdata HTTP POST:
+deprecated (use curl_formadd instead)
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURLcode curl_formparse(char * " string, " struct HttpPost ** " firstitem,
+.BI "struct HttpPost ** " lastitem ");"
+.ad
+.SH DESCRIPTION
+This has been removed deliberately. The \fBcurl_formadd\fP has been introduced
+to replace this function. Do not use this. Convert to the new function
+now. curl_formparse() will be removed from a future version of libcurl.
diff --git a/Build/source/libs/curl/docs/libcurl/curl_formparse.html b/Build/source/libs/curl/docs/libcurl/curl_formparse.html
new file mode 100644
index 00000000000..1370b8b3b4e
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_formparse.html
@@ -0,0 +1,70 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_formparse - add a section to a multipart/formdata HTTP
+ POST: deprecated (use curl_formadd instead)
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURLcode</B> <B>curl_formparse(char</B> <B>*</B> <I>string,</I> <B>struct</B> <B>HttpPost</B> <B>**</B>
+ <I>firstitem,</I> <B>struct</B> <B>HttpPost</B> <B>**</B> <I>lastitem</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This has been removed deliberately. The <B>curl_formadd</B> has
+ been introduced to replace this function. Do not use this.
+ Convert to the new function now. curl_formparse() will be
+ removed from a future version of libcurl.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_getdate.3 b/Build/source/libs/curl/docs/libcurl/curl_getdate.3
new file mode 100644
index 00000000000..684250f756d
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_getdate.3
@@ -0,0 +1,80 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_getdate.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_getdate 3 "5 March 2001" "libcurl 7.0" "libcurl Manual"
+.SH NAME
+curl_getdate - Convert an date in a ASCII string to number of seconds since
+January 1, 1970
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "time_t curl_getdate(char *" datestring ", time_t *"now" );
+.ad
+.SH DESCRIPTION
+This function returns the number of seconds since January 1st 1970, for the
+date and time that the
+.I datestring
+parameter specifies. The
+.I now
+parameter is there and should hold the current time to allow the datestring to
+specify relative dates/times. Read further in the date string parser section
+below.
+.SH PARSING DATES AND TIMES
+A "date" is a string, possibly empty, containing many items separated by
+whitespace. The whitespace may be omitted when no ambiguity arises. The
+empty string means the beginning of today (i.e., midnight). Order of the
+items is immaterial. A date string may contain many flavors of items:
+.TP 0.8i
+.B calendar date items
+This can be specified in a number of different ways. Including 1970-09-17, 70-9-17, 70-09-17, 9/17/72, 24 September 1972, 24 Sept 72, 24 Sep 72, Sep 24, 1972, 24-sep-72, 24sep72.
+The year can also be omitted, for example: 9/17 or "sep 17".
+.TP
+.B time of the day items
+This string specifies the time on a given day. Syntax supported includes:
+18:19:0, 18:19, 6:19pm, 18:19-0500 (for specifying the time zone as well).
+.TP
+.B time zone items
+Specifies international time zone. There are a few acronyms supported, but in
+general you should instead use the specific realtive time compared to
+UTC. Supported formats include: -1200, MST, +0100.
+.TP
+.B day of the week items
+Specifies a day of the week. If this is mentioned alone it means that day of
+the week in the future.
+
+Days of the week may be spelled out in full: `Sunday', `Monday', etc or they
+may be abbreviated to their first three letters, optionally followed by a
+period. The special abbreviations `Tues' for `Tuesday', `Wednes' for
+`Wednesday' and `Thur' or `Thurs' for `Thursday' are also allowed.
+
+A number may precede a day of the week item to move forward supplementary
+weeks. It is best used in expression like `third monday'. In this context,
+`last DAY' or `next DAY' is also acceptable; they move one week before or
+after the day that DAY by itself would represent.
+.TP
+.B relative items
+A relative item adjusts a date (or the current date if none) forward or
+backward. Example syntax includes: "1 year", "1 year ago", "2 days", "4
+weeks".
+
+The string `tomorrow' is worth one day in the future (equivalent to `day'),
+the string `yesterday' is worth one day in the past (equivalent to `day ago').
+.TP
+.B pure numbers
+If the decimal number is of the form YYYYMMDD and no other calendar date item
+appears before it in the date string, then YYYY is read as the year, MM as the
+month number and DD as the day of the month, for the specified calendar date.
+.PP
+.SH RETURN VALUE
+This function returns zero when it fails to parse the date string. Otherwise
+it returns the number of seconds as described.
+.SH AUTHORS
+Originally written by Steven M. Bellovin <smb@research.att.com> while at the
+University of North Carolina at Chapel Hill. Later tweaked by a couple of
+people on Usenet. Completely overhauled by Rich $alz <rsalz@bbn.com> and Jim
+Berets <jberets@bbn.com> in August, 1990.
+.SH "SEE ALSO"
+.BR
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_getdate.html b/Build/source/libs/curl/docs/libcurl/curl_getdate.html
new file mode 100644
index 00000000000..c0519e90b8b
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_getdate.html
@@ -0,0 +1,132 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_getdate - Convert an date in a ASCII string to number
+ of seconds since January 1, 1970
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>time_t</B> <B>curl_getdate(char</B> <B>*</B><I>datestring</I><B>,</B> <B>time_t</B> <B>*</B><I>now</I> <I>);</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function returns the number of seconds since January
+ 1st 1970, for the date and time that the <I>datestring</I> parame­
+ ter specifies. The <I>now</I> parameter is there and should hold
+ the current time to allow the datestring to specify relative
+ dates/times. Read further in the date string parser section
+ below.
+
+
+</PRE>
+<H2>PARSING DATES AND TIMES</H2><PRE>
+ A "date" is a string, possibly empty, containing many items
+ separated by whitespace. The whitespace may be omitted when
+ no ambiguity arises. The empty string means the beginning
+ of today (i.e., midnight). Order of the items is immate­
+ rial. A date string may contain many flavors of items:
+
+ <B>calendar</B> <B>date</B> <B>items</B>
+ This can be specified in a number of different ways.
+ Including 1970-09-17, 70-9-17, 70-09-17, 9/17/72, 24
+ September 1972, 24 Sept 72, 24 Sep 72, Sep 24, 1972,
+ 24-sep-72, 24sep72. The year can also be omitted,
+ for example: 9/17 or "sep 17".
+
+ <B>time</B> <B>of</B> <B>the</B> <B>day</B> <B>items</B>
+ This string specifies the time on a given day. Syn­
+ tax supported includes: 18:19:0, 18:19, 6:19pm,
+ 18:19-0500 (for specifying the time zone as well).
+
+ <B>time</B> <B>zone</B> <B>items</B>
+ Specifies international time zone. There are a few
+ acronyms supported, but in general you should
+ instead use the specific realtive time compared to
+ UTC. Supported formats include: -1200, MST, +0100.
+
+ <B>day</B> <B>of</B> <B>the</B> <B>week</B> <B>items</B>
+ Specifies a day of the week. If this is mentioned
+ alone it means that day of the week in the future.
+
+ Days of the week may be spelled out in full: `Sun­
+ day', `Monday', etc or they may be abbreviated to
+ their first three letters, optionally followed by a
+ period. The special abbreviations `Tues' for `Tues­
+ day', `Wednes' for `Wednesday' and `Thur' or `Thurs'
+ for `Thursday' are also allowed.
+ A number may precede a day of the week item to move
+ forward supplementary weeks. It is best used in
+ expression like `third monday'. In this context,
+ `last DAY' or `next DAY' is also acceptable; they
+ move one week before or after the day that DAY by
+ itself would represent.
+
+ <B>relative</B> <B>items</B>
+ A relative item adjusts a date (or the current date
+ if none) forward or backward. Example syntax
+ includes: "1 year", "1 year ago", "2 days", "4
+ weeks".
+
+ The string `tomorrow' is worth one day in the future
+ (equivalent to `day'), the string `yesterday' is
+ worth one day in the past (equivalent to `day ago').
+
+ <B>pure</B> <B>numbers</B>
+ If the decimal number is of the form YYYYMMDD and no
+ other calendar date item appears before it in the
+ date string, then YYYY is read as the year, MM as
+ the month number and DD as the day of the month, for
+ the specified calendar date.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ This function returns zero when it fails to parse the date
+ string. Otherwise it returns the number of seconds as
+ described.
+
+
+</PRE>
+<H2>AUTHORS</H2><PRE>
+ Originally written by Steven M. Bellovin
+ &lt;smb@research.att.com&gt; while at the University of North Car­
+ olina at Chapel Hill. Later tweaked by a couple of people
+ on Usenet. Completely overhauled by Rich $alz
+ &lt;rsalz@bbn.com&gt; and Jim Berets &lt;jberets@bbn.com&gt; in August,
+ 1990.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_getenv.3 b/Build/source/libs/curl/docs/libcurl/curl_getenv.3
new file mode 100644
index 00000000000..7f0082bf661
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_getenv.3
@@ -0,0 +1,32 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_getenv.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_getenv 3 "15 August 2001" "libcurl 7.8.1" "libcurl Manual"
+.SH NAME
+curl_getenv - return value for environment name
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "char *curl_getenv(const char *" name ");
+.ad
+.SH DESCRIPTION
+curl_getenv() is a portable wrapper for the getenv() function, meant to
+emulate its behaviour and provide an identical interface for all operating
+systems libcurl builds on (including win32).
+.SH RETURN VALUE
+If successful, curl_getenv() returns a pointer to the value of the specified
+environment. The memory it refers to is malloc()ed why the application must
+free() this when the data has completed to serve its purpose. When
+.I curl_getenv()
+fails to find the specified name, it returns a null pointer.
+.SH NOTE
+Under unix operating systems, there isn't any point in returning an allocated
+memory, although other systems won't work properly if this isn't done. The
+unix implementation thus have to suffer slightly from the drawbacks of other
+systems.
+.SH "SEE ALSO"
+.BR getenv "(3C), "
+.SH BUGS
+Surely there are some, you tell me!
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_getenv.html b/Build/source/libs/curl/docs/libcurl/curl_getenv.html
new file mode 100644
index 00000000000..ceedd6f78e8
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_getenv.html
@@ -0,0 +1,78 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_getenv - return value for environment name
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>char</B> <B>*curl_getenv(const</B> <B>char</B> <B>*</B><I>name</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_getenv() is a portable wrapper for the getenv() func­
+ tion, meant to emulate its behaviour and provide an identi­
+ cal interface for all operating systems libcurl builds on
+ (including win32).
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ If successful, curl_getenv() returns a pointer to the value
+ of the specified environment. The memory it refers to is
+ malloc()ed why the application must free() this when the
+ data has completed to serve its purpose. When <I>curl</I><B>_</B><I>getenv()</I>
+ fails to find the specified name, it returns a null pointer.
+
+
+</PRE>
+<H2>NOTE</H2><PRE>
+ Under unix operating systems, there isn't any point in
+ returning an allocated memory, although other systems won't
+ work properly if this isn't done. The unix implementation
+ thus have to suffer slightly from the drawbacks of other
+ systems.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>getenv(3C)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.3 b/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.3
new file mode 100644
index 00000000000..b18fbe47f26
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.3
@@ -0,0 +1,27 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_global_cleanup.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_global_cleanup 3 "28 May 2001" "libcurl 7.8" "libcurl Manual"
+.SH NAME
+curl_global_cleanup - Global libcurl cleanup
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "void curl_global_cleanup(void);"
+.ad
+.SH DESCRIPTION
+curl_global_cleanup must be called once (no matter how many threads or libcurl
+sessions that'll be used) by every application that uses libcurl, after all
+uses of libcurl is complete.
+
+This is the opposite of \fIcurl_global_init\fP.
+
+Not calling this function may result in memory leaks.
+
+This function was added in libcurl 7.8.
+.SH "SEE ALSO"
+.BR curl_global_init "(3), "
+.SH BUGS
+None?
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.html b/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.html
new file mode 100644
index 00000000000..fa8c06cfeec
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_global_cleanup.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_global_cleanup - Global libcurl cleanup
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>void</B> <B>curl_global_cleanup(void);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_global_cleanup must be called once (no matter how many
+ threads or libcurl sessions that'll be used) by every appli­
+ cation that uses libcurl, after all uses of libcurl is com­
+ plete.
+
+ This is the opposite of <I>curl</I><B>_</B><I>global</I><B>_</B><I>init</I>.
+
+ Not calling this function may result in memory leaks.
+
+ This function was added in libcurl 7.8.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_global_init(3)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ None?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_global_init.3 b/Build/source/libs/curl/docs/libcurl/curl_global_init.3
new file mode 100644
index 00000000000..280bb47d316
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_global_init.3
@@ -0,0 +1,49 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_global_init.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_global_init 3 "13 Nov 2001" "libcurl 7.9.1" "libcurl Manual"
+.SH NAME
+curl_global_init - Global libcurl initialisation
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "CURLcode curl_global_init(long " flags ");"
+.ad
+.SH DESCRIPTION
+This function should only be called once (no matter how many threads or
+libcurl sessions that'll be used) by every application that uses libcurl.
+
+If this function hasn't been invoked when \fIcurl_easy_init\fP is called, it
+will be done automatically by libcurl.
+
+The flags option is a bit pattern that tells libcurl exact what features to
+init, as described below. Set the desired bits by ORing the values together.
+
+You must however \fBalways\fP use the \fIcurl_global_cleanup\fP function, as
+that cannot be called automatically for you by libcurl.
+
+Calling this function more than once will cause unpredictable results.
+
+This function was added in libcurl 7.8.
+.SH FLAGS
+.TP 5
+.B CURL_GLOBAL_ALL
+Initialize everything possible. This sets all known bits.
+.TP
+.B CURL_GLOBAL_SSL
+Initialize SSL
+.TP
+.B CURL_GLOBAL_WIN32
+Initialize the Win32 socket libraries. (added in libcurl 7.8.1)
+.TP
+.B CURL_GLOBAL_NOTHING
+Initialise nothing extra. This sets no bit.
+.SH RETURN VALUE
+If this function returns non-zero, something went wrong and you cannot use the
+other curl functions.
+.SH "SEE ALSO"
+.BR curl_global_cleanup "(3), "
+.SH BUGS
+None.
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_global_init.html b/Build/source/libs/curl/docs/libcurl/curl_global_init.html
new file mode 100644
index 00000000000..c1066eb3d07
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_global_init.html
@@ -0,0 +1,130 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_global_init - Global libcurl initialisation
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>CURLcode</B> <B>curl_global_init(long</B> <I>flags</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function should only be called once (no matter how many
+ threads or libcurl sessions that'll be used) by every appli­
+ cation that uses libcurl.
+
+ If this function hasn't been invoked when <I>curl</I><B>_</B><I>easy</I><B>_</B><I>init</I> is
+ called, it will be done automatically by libcurl.
+
+ The flags option is a bit pattern that tells libcurl exact
+ what features to init, as described below. Set the desired
+ bits by ORing the values together.
+
+ You must however <B>always</B> use the <I>curl</I><B>_</B><I>global</I><B>_</B><I>cleanup</I> func­
+ tion, as that cannot be called automatically for you by
+ libcurl.
+
+ Calling this function more than once will cause unpre­
+ dictable results.
+
+ This function was added in libcurl 7.8.
+
+
+</PRE>
+<H2>FLAGS</H2><PRE>
+ <B>CURL_GLOBAL_ALL</B>
+ Initialize everything possible. This sets all known
+ bits.
+
+ <B>CURL_GLOBAL_SSL</B>
+ Initialize SSL
+
+ <B>CURL_GLOBAL_WIN32</B>
+ Initialize the Win32 socket libraries. (added in
+ libcurl 7.8.1)
+
+ <B>CURL_GLOBAL_NOTHING</B>
+ Initialise nothing extra. This sets no bit.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ If this function returns non-zero, something went wrong and
+ you cannot use the other curl functions.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_global_cleanup(3)</B>,
+
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ None.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_mprintf.3 b/Build/source/libs/curl/docs/libcurl/curl_mprintf.3
new file mode 100644
index 00000000000..126fe2f78ea
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_mprintf.3
@@ -0,0 +1,88 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_mprintf.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_printf 3 "20 April 2001" "libcurl 7.7.2" "libcurl Manual"
+.SH NAME
+curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
+curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf,
+curl_mvsprintf - formatted output conversion
+.SH SYNOPSIS
+.B #include <curl/mprintf.h>
+.sp
+.BI "int curl_mprintf(const char *" format ", ...);"
+.br
+.BI "int curl_mfprintf(FILE *" fd ", const char *" format ", ...);"
+.br
+.BI "int curl_msprintf(char *" buffer ", const char *" format ", ...);"
+.br
+.BI "int curl_msnprintf(char *" buffer ", size_t " maxlength ", const char *" format ", ...);"
+.br
+.BI "int curl_mvprintf(const char *" format ", va_list " args ");"
+.br
+.BI "int curl_mvfprintf(FILE *" fd ", const char *" format ", va_list " args ");"
+.br
+.BI "int curl_mvsprintf(char *" buffer ", const char *" format ", va_list " args ");"
+.br
+.BI "int curl_mvsnprintf(char *" buffer ", size_t " maxlength ", const char *" format ", va_list " args ");"
+.br
+.BI "char *curl_maprintf(const char *" format ", ...);"
+.br
+.BI "char *curl_mvaprintf(const char *" format ", va_list " args ");"
+.SH DESCRIPTION
+These are all functions that produces output according to a format string and
+given arguments. These are mostly clones of the well-known C-style functions
+and there will be no detailed explanation of all available formatting rules
+and usage here.
+
+See this table for notable exceptions.
+.RS
+.TP
+.B curl_mprintf()
+Normal printf() clone.
+.TP
+.B curl_mfprintf()
+Normal fprinf() clone.
+.TP
+.B curl_msprintf()
+Normal sprintf() clone.
+.TP
+.B curl_msnprintf()
+snprintf() clone. Many systems don't have this. It is just like \fBsprintf\fP
+but with an extra argument after the buffer that specifies the length of the
+target buffer.
+.TP
+.B curl_mvprintf()
+Normal vprintf() clone.
+.TP
+.B curl_mvfprintf()
+Normal vfprintf() clone.
+.TP
+.B curl_mvsprintf()
+Normal vsprintf() clone.
+.TP
+.B curl_mvsnprintf()
+vsnprintf() clone. Many systems don't have this. It is just like
+\fBvsprintf\fP but with an extra argument after the buffer that specifies the
+length of the target buffer.
+.TP
+.B curl_maprintf()
+Like printf() but returns the output string as a malloc()ed string. The
+returned string must be free()ed by the receiver.
+.TP
+.B curl_mvaprintf()
+Like curl_maprintf() but takes a va_list pointer argument instead of a
+variable amount of arguments.
+.RE
+
+To easily use all these cloned functions instead of the normal ones, #define
+_MPRINTF_REPLACE before you include the <curl/mprintf.h> file. Then all the
+normal names like printf, fprintf, sprintf etc will use the curl-functions
+instead.
+.SH RETURN VALUE
+The \fBcurl_maprintf\fP and \fBcurl_mvaprintf\fP functions return a pointer to
+a newly allocated string, or NULL it it failed.
+
+All other functions return the number of character they actually outputed.
+.SH "SEE ALSO"
+.BR printf "(3), " sprintf "(3), " fprintf "(3), " vprintf "(3) "
diff --git a/Build/source/libs/curl/docs/libcurl/curl_mprintf.html b/Build/source/libs/curl/docs/libcurl/curl_mprintf.html
new file mode 100644
index 00000000000..ce0ce1332a5
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_mprintf.html
@@ -0,0 +1,126 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf,
+ curl_msprintf curl_mvaprintf, curl_mvfprintf, curl_mvprintf,
+ curl_mvsnprintf, curl_mvsprintf - formatted output conver­
+ sion
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/mprintf.h&gt;</B>
+
+ <B>int</B> <B>curl_mprintf(const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>...);</B>
+ <B>int</B> <B>curl_mfprintf(FILE</B> <B>*</B><I>fd</I><B>,</B> <B>const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>...);</B>
+ <B>int</B> <B>curl_msprintf(char</B> <B>*</B><I>buffer</I><B>,</B> <B>const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>...);</B>
+ <B>int</B> <B>curl_msnprintf(char</B> <B>*</B><I>buffer</I><B>,</B> <B>size_t</B> <I>maxlength</I><B>,</B> <B>const</B>
+ <B>char</B> <B>*</B><I>format</I>
+ <B>int</B> <B>curl_mvprintf(const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>va_list</B> <I>args</I><B>);</B>
+ <B>int</B> <B>curl_mvfprintf(FILE</B> <B>*</B><I>fd</I><B>,</B> <B>const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>va_list</B>
+ <I>args</I>
+ <B>int</B> <B>curl_mvsprintf(char</B> <B>*</B><I>buffer</I><B>,</B> <B>const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>va_list</B>
+ <I>args</I>
+ <B>int</B> <B>curl_mvsnprintf(char</B> <B>*</B><I>buffer</I><B>,</B> <B>size_t</B> <I>maxlength</I><B>,</B> <B>const</B>
+ <B>char</B> <B>*</B><I>format</I>
+ <B>char</B> <B>*curl_maprintf(const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>...);</B>
+ <B>char</B> <B>*curl_mvaprintf(const</B> <B>char</B> <B>*</B><I>format</I><B>,</B> <B>va_list</B> <I>args</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ These are all functions that produces output according to a
+ format string and given arguments. These are mostly clones
+ of the well-known C-style functions and there will be no
+ detailed explanation of all available formatting rules and
+ usage here.
+
+ See this table for notable exceptions.
+
+ <B>curl_mprintf()</B>
+ Normal printf() clone.
+
+ <B>curl_mfprintf()</B>
+ Normal fprinf() clone.
+
+ <B>curl_msprintf()</B>
+ Normal sprintf() clone.
+
+ <B>curl_msnprintf()</B>
+ snprintf() clone. Many systems don't have this. It
+ is just like <B>sprintf</B> but with an extra argument
+ after the buffer that specifies the length of the
+ target buffer.
+
+ <B>curl_mvprintf()</B>
+ Normal vprintf() clone.
+
+ <B>curl_mvfprintf()</B>
+ Normal vfprintf() clone.
+
+ <B>curl_mvsprintf()</B>
+ Normal vsprintf() clone.
+
+ <B>curl_mvsnprintf()</B>
+ vsnprintf() clone. Many systems don't have this.
+ It is just like <B>vsprintf</B> but with an extra argu­
+ ment after the buffer that specifies the length of
+ the target buffer.
+
+ <B>curl_maprintf()</B>
+ Like printf() but returns the output string as a
+ malloc()ed string. The returned string must be
+ free()ed by the receiver.
+
+ <B>curl_mvaprintf()</B>
+ Like curl_maprintf() but takes a va_list pointer
+ argument instead of a variable amount of argu­
+ ments.
+
+ To easily use all these cloned functions instead of the nor­
+ mal ones, #define _MPRINTF_REPLACE before you include the
+ &lt;curl/mprintf.h&gt; file. Then all the normal names like
+ printf, fprintf, sprintf etc will use the curl-functions
+ instead.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ The <B>curl_maprintf</B> and <B>curl_mvaprintf</B> functions return a
+ pointer to a newly allocated string, or NULL it it failed.
+
+ All other functions return the number of character they
+ actually outputed.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>printf(3)</B>, <B>sprintf(3)</B>, <B>fprintf(3)</B>,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_slist_append.3 b/Build/source/libs/curl/docs/libcurl/curl_slist_append.3
new file mode 100644
index 00000000000..0db884b13a3
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_slist_append.3
@@ -0,0 +1,29 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_slist_append.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_slist_append 3 "5 March 2001" "libcurl 7.0" "libcurl Manual"
+.SH NAME
+curl_slist_append - add a string to an slist
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "struct curl_slist *curl_slist_append(struct curl_slist *" list,
+.BI "const char * "string ");"
+.ad
+.SH DESCRIPTION
+curl_slist_append() appends a specified string to a linked list of
+strings. The existing
+.I list
+should be passed as the first argument while the new list is returned from
+this function. The specified
+.I string
+has been appended when this function returns.
+.SH RETURN VALUE
+A null pointer is returned if anything went wrong, otherwise the new list
+pointer is returned.
+.SH "SEE ALSO"
+.BR curl_slist_free_all "(3), "
+.SH BUGS
+Surely there are some, you tell me!
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_slist_append.html b/Build/source/libs/curl/docs/libcurl/curl_slist_append.html
new file mode 100644
index 00000000000..a837048d00c
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_slist_append.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_slist_append - add a string to an slist
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>struct</B> <B>curl_slist</B> <B>*curl_slist_append(struct</B> <B>curl_slist</B>
+ <B>*</B><I>list,</I> <B>const</B> <B>char</B> <B>*</B> <I>string</I><B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_slist_append() appends a specified string to a linked
+ list of strings. The existing <I>list</I> should be passed as the
+ first argument while the new list is returned from this
+ function. The specified <I>string</I> has been appended when this
+ function returns.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ A null pointer is returned if anything went wrong, otherwise
+ the new list pointer is returned.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_slist_free_all(3)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.3 b/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.3
new file mode 100644
index 00000000000..184989d5468
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.3
@@ -0,0 +1,22 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_slist_free_all.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_slist_free_all 3 "5 March 2001" "libcurl 7.0" "libcurl Manual"
+.SH NAME
+curl_slist_free_all - free an entire curl_slist list
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "void curl_slist_free_all(struct curl_slist *" list);
+.ad
+.SH DESCRIPTION
+curl_slist_free_all() removes all traces of a previously built curl_slist
+linked list.
+.SH RETURN VALUE
+Nothing.
+.SH "SEE ALSO"
+.BR curl_slist_append "(3), "
+.SH BUGS
+Surely there are some, you tell me!
+
diff --git a/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.html b/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.html
new file mode 100644
index 00000000000..c52a5af5628
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_slist_free_all.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_slist_free_all - free an entire curl_slist list
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>void</B> <B>curl_slist_free_all(struct</B> <B>curl_slist</B> <B>*</B><I>list);</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ curl_slist_free_all() removes all traces of a previously
+ built curl_slist linked list.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ Nothing.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>curl_slist_append(3)</B>,
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_strequal.3 b/Build/source/libs/curl/docs/libcurl/curl_strequal.3
new file mode 100644
index 00000000000..7da8d0d7429
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_strequal.3
@@ -0,0 +1,30 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_strequal.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_strequal 3 "20 April 2001" "libcurl 7.7.2" "libcurl Manual"
+.SH NAME
+curl_strequal, curl_strnequal - case insensitive string comparisons
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "int curl_strequal(char *" str1 ", char *" str2 ");"
+.sp
+.BI "int curl_strenqual(char *" str1 ", char *" str2 ", size_t " len ");"
+.SH DESCRIPTION
+The
+.B curl_strequal()
+function compares the two strings \fIstr1\fP and \fIstr2\fP, ignoring the case
+of the characters. It returns a non-zero (TRUE) integer if the strings are
+identical.
+.sp
+The \fBcurl_strnequal()\fP function is similar, except it only compares the
+first \fIlen\fP characters of \fIstr1\fP.
+.sp
+These functions are provided by libcurl to enable applications to compare
+strings in a truly portable manner. There are no standard portable case
+insensitive string comparison functions. These two works on all platforms.
+.SH RETURN VALUE
+Non-zero if the strings are identical. Zero if they're not.
+.SH "SEE ALSO"
+.BR strcmp "(3), " strcasecmp "(3)"
diff --git a/Build/source/libs/curl/docs/libcurl/curl_strequal.html b/Build/source/libs/curl/docs/libcurl/curl_strequal.html
new file mode 100644
index 00000000000..38ba37ec30b
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_strequal.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_strequal, curl_strnequal - case insensitive string com­
+ parisons
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>int</B> <B>curl_strequal(char</B> <B>*</B><I>str1</I><B>,</B> <B>char</B> <B>*</B><I>str2</I><B>);</B>
+
+ <B>int</B> <B>curl_strenqual(char</B> <B>*</B><I>str1</I><B>,</B> <B>char</B> <B>*</B><I>str2</I><B>,</B> <B>size_t</B> <I>len</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ The <B>curl_strequal()</B> function compares the two strings <I>str1</I>
+ and <I>str2</I>, ignoring the case of the characters. It returns a
+ non-zero (TRUE) integer if the strings are identical.
+
+ The <B>curl_strnequal()</B> function is similar, except it only
+ compares the first <I>len</I> characters of <I>str1</I>.
+
+ These functions are provided by libcurl to enable applica­
+ tions to compare strings in a truly portable manner. There
+ are no standard portable case insensitive string comparison
+ functions. These two works on all platforms.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ Non-zero if the strings are identical. Zero if they're not.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>strcmp(3)</B>, <B>strcasecmp(3)</B>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_strnequal.3 b/Build/source/libs/curl/docs/libcurl/curl_strnequal.3
new file mode 100644
index 00000000000..c7d91cca86c
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_strnequal.3
@@ -0,0 +1 @@
+.so curl_strequal.3
diff --git a/Build/source/libs/curl/docs/libcurl/curl_strnequal.html b/Build/source/libs/curl/docs/libcurl/curl_strnequal.html
new file mode 100644
index 00000000000..38ba37ec30b
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_strnequal.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_strequal, curl_strnequal - case insensitive string com­
+ parisons
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>int</B> <B>curl_strequal(char</B> <B>*</B><I>str1</I><B>,</B> <B>char</B> <B>*</B><I>str2</I><B>);</B>
+
+ <B>int</B> <B>curl_strenqual(char</B> <B>*</B><I>str1</I><B>,</B> <B>char</B> <B>*</B><I>str2</I><B>,</B> <B>size_t</B> <I>len</I>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ The <B>curl_strequal()</B> function compares the two strings <I>str1</I>
+ and <I>str2</I>, ignoring the case of the characters. It returns a
+ non-zero (TRUE) integer if the strings are identical.
+
+ The <B>curl_strnequal()</B> function is similar, except it only
+ compares the first <I>len</I> characters of <I>str1</I>.
+
+ These functions are provided by libcurl to enable applica­
+ tions to compare strings in a truly portable manner. There
+ are no standard portable case insensitive string comparison
+ functions. These two works on all platforms.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ Non-zero if the strings are identical. Zero if they're not.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <B>strcmp(3)</B>, <B>strcasecmp(3)</B>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_unescape.3 b/Build/source/libs/curl/docs/libcurl/curl_unescape.3
new file mode 100644
index 00000000000..385544b2a17
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_unescape.3
@@ -0,0 +1,27 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_unescape.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_unescape 3 "22 March 2001" "libcurl 7.7" "libcurl Manual"
+.SH NAME
+curl_unescape - URL decodes the given string
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "char *curl_unescape( char *" url ", int "length " );"
+.ad
+.SH DESCRIPTION
+This function will convert the given URL encoded input string to a "plain
+string" and return that as a new allocated string. All input characters that
+are URL encoded (%XX where XX is a two-digit hexadecimal number, or +) will be
+converted to their plain text versions (up to a ? letter, no letters to the
+right of a ? letter will be converted).
+
+If the 'length' argument is set to 0, curl_unescape() will use strlen() on the
+input 'url' string to find out the size.
+
+You must free() the returned string when you're done with it.
+.SH RETURN VALUE
+A pointer to a zero terminated string or NULL if it failed.
+.SH "SEE ALSO"
+.I curl_escape(), RFC 2396
diff --git a/Build/source/libs/curl/docs/libcurl/curl_unescape.html b/Build/source/libs/curl/docs/libcurl/curl_unescape.html
new file mode 100644
index 00000000000..29b3dfa7ba8
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_unescape.html
@@ -0,0 +1,74 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_unescape - URL decodes the given string
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>char</B> <B>*curl_unescape(</B> <B>char</B> <B>*</B><I>url</I><B>,</B> <B>int</B> <I>length</I> <B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This function will convert the given URL encoded input
+ string to a "plain string" and return that as a new allo­
+ cated string. All input characters that are URL encoded (%XX
+ where XX is a two-digit hexadecimal number, or +) will be
+ converted to their plain text versions (up to a ? letter, no
+ letters to the right of a ? letter will be converted).
+
+ If the 'length' argument is set to 0, curl_unescape() will
+ use strlen() on the input 'url' string to find out the size.
+
+ You must free() the returned string when you're done with
+ it.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ A pointer to a zero terminated string or NULL if it failed.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ <I>curl</I><B>_</B><I>escape(),</I> <I>RFC</I> <I>2396</I>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/curl_version.3 b/Build/source/libs/curl/docs/libcurl/curl_version.3
new file mode 100644
index 00000000000..f4e1b1961c5
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_version.3
@@ -0,0 +1,27 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: curl_version.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH curl_version 3 "5 March 2001" "libcurl 7.0" "libcurl Manual"
+.SH NAME
+curl_version - returns the libcurl version string
+.SH SYNOPSIS
+.B #include <curl/curl.h>
+.sp
+.BI "char *curl_version( );"
+.ad
+.SH DESCRIPTION
+Returns a human readable string with the version number of libcurl and some of
+its important components (like OpenSSL version).
+
+Note: this returns the actual running lib's version, you might have installed
+a newer lib's include files in your system which may turn your LIBCURL_VERSION
+#define value to differ from this result.
+.SH RETURN VALUE
+A pointer to a zero terminated string.
+.SH "SEE ALSO"
+The
+.I LIBCURL_VERSION
+#define in <curl/curl.h>
+.SH BUGS
+Surely there are some, you tell me!
diff --git a/Build/source/libs/curl/docs/libcurl/curl_version.html b/Build/source/libs/curl/docs/libcurl/curl_version.html
new file mode 100644
index 00000000000..3e50a1979d7
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/curl_version.html
@@ -0,0 +1,76 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ curl_version - returns the libcurl version string
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+ <B>#include</B> <B>&lt;curl/curl.h&gt;</B>
+
+ <B>char</B> <B>*curl_version(</B> <B>);</B>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ Returns a human readable string with the version number of
+ libcurl and some of its important components (like OpenSSL
+ version).
+
+ Note: this returns the actual running lib's version, you
+ might have installed a newer lib's include files in your
+ system which may turn your LIBCURL_VERSION #define value to
+ differ from this result.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ A pointer to a zero terminated string.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+ The <I>LIBCURL</I><B>_</B><I>VERSION</I> #define in &lt;curl/curl.h&gt;
+
+
+</PRE>
+<H2>BUGS</H2><PRE>
+ Surely there are some, you tell me!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/index.html b/Build/source/libs/curl/docs/libcurl/index.html
new file mode 100644
index 00000000000..b3300013b75
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/index.html
@@ -0,0 +1,38 @@
+HTML>
+<HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<TITLE>Index to Curl documentation</TITLE>
+</HEAD>
+
+<BODY>
+<H1 ALIGN="CENTER">Index to Curl documentation</H1>
+
+<H2>Programs</H2>
+<P><A HREF="curl-config.html">curl-config.html</A>
+<P><A HREF="curl.html">curl.html</A>
+
+<H2>Library routines</H2>
+<P><A HREF="libcurl.html">libcurl.html</A>
+<P><A HREF="curl_easy_cleanup.html">curl_easy_cleanup.html</A>
+<P><A HREF="curl_easy_duphandle.html">curl_easy_duphandle.html</A>
+<P><A HREF="curl_easy_getinfo.html">curl_easy_getinfo.html</A>
+<P><A HREF="curl_easy_init.html">curl_easy_init.html</A>
+<P><A HREF="curl_easy_perform.html">curl_easy_perform.html</A>
+<P><A HREF="curl_easy_setopt.html">curl_easy_setopt.html</A>
+<P><A HREF="curl_escape.html">curl_escape.html</A>
+<P><A HREF="curl_formadd.html">curl_formadd.html</A>
+<P><A HREF="curl_formfree.html">curl_formfree.html</A>
+<P><A HREF="curl_formparse.html">curl_formparse.html</A>
+<P><A HREF="curl_getdate.html">curl_getdate.html</A>
+<P><A HREF="curl_getenv.html">curl_getenv.html</A>
+<P><A HREF="curl_global_cleanup.html">curl_global_cleanup.html</A>
+<P><A HREF="curl_global_init.html">curl_global_init.html</A>
+<P><A HREF="curl_mprintf.html">curl_mprintf.html</A>
+<P><A HREF="curl_slist_append.html">curl_slist_append.html</A>
+<P><A HREF="curl_slist_free_all.html">curl_slist_free_all.html</A>
+<P><A HREF="curl_strequal.html">curl_strequal.html</A>
+<P><A HREF="curl_strnequal.html">curl_strnequal.html</A>
+<P><A HREF="curl_unescape.html">curl_unescape.html</A>
+<P><A HREF="curl_version.html">curl_version.html</A>
+</BODY>
+</HTML>
diff --git a/Build/source/libs/curl/docs/libcurl/libcurl.3 b/Build/source/libs/curl/docs/libcurl/libcurl.3
new file mode 100644
index 00000000000..9dc18c1bcf5
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/libcurl.3
@@ -0,0 +1,132 @@
+.\" You can view this file with:
+.\" nroff -man [file]
+.\" $Id: libcurl.3,v 1.1 2002/03/04 10:09:49 bagder Exp $
+.\"
+.TH libcurl 5 "14 August 2001" "libcurl 7.8.1" "libcurl overview"
+.SH NAME
+libcurl \- client-side URL transfers
+.SH DESCRIPTION
+This is an overview on how to use libcurl in your C programs. There are
+specific man pages for each function mentioned in here. There's also the
+libcurl-the-guide document for a complete tutorial to programming with
+libcurl.
+
+libcurl can also be used directly from within your Java, PHP, Perl, Ruby or
+Tcl programs as well, look elsewhere for documentation on this!
+
+All applications that use libcurl should call \fIcurl_global_init()\fP exactly
+once before any libcurl function can be used. After all usage of libcurl is
+complete, it \fBmust\fP call \fIcurl_global_cleanup()\fP. In between those two
+calls, you can use libcurl as described below.
+
+When using libcurl you init your session and get a handle, which you use as
+input to the following interface functions you use. Use \fIcurl_easy_init()\fP
+to get the handle.
+
+You continue by setting all the options you want in the upcoming transfer,
+most important among them is the URL itself (you can't transfer anything
+without a specified URL as you may have figured out yourself). You might want
+to set some callbacks as well that will be called from the library when data
+is available etc. \fIcurl_easy_setopt()\fP is there for this.
+
+When all is setup, you tell libcurl to perform the transfer using
+\fIcurl_easy_perform()\fP. It will then do the entire operation and won't
+return until it is done (successfully or not).
+
+After the transfer has been made, you can set new options and make another
+transfer, or if you're done, cleanup the session by calling
+\fIcurl_easy_cleanup()\fP. If you want persistant connections, you don't
+cleanup immediately, but instead run ahead and perform other transfers using
+the same handle. See the chapter below for Persistant Connections.
+
+There is also a series of other helpful functions to use. They are:
+
+.RS
+.TP 10
+.B curl_version()
+displays the libcurl version
+.TP
+.B curl_getdate()
+converts a date string to time_t
+.TP
+.B curl_getenv()
+portable environment variable reader
+.TP
+.B curl_easy_getinfo()
+get information about a performed transfer
+.TP
+.B curl_formadd()
+helps building a HTTP form POST
+.TP
+.B curl_formfree()
+free a list built with curl_formparse()/curl_formadd()
+.TP
+.B curl_slist_append()
+builds a linked list
+.TP
+.B curl_slist_free_all()
+frees a whole curl_slist
+.TP
+.B curl_mprintf()
+portable printf() functions
+.TP
+.B curl_strequal()
+portable case insensitive string comparisons
+.RE
+
+.SH "LINKING WITH LIBCURL"
+Starting with 7.7.2 (on unix-like machines), there's a tool named curl-config
+that gets installed with the rest of the curl stuff when 'make install' is
+performed.
+
+curl-config is added to make it easier for applications to link with libcurl
+and developers to learn about libcurl and how to use it.
+
+Run 'curl-config --libs' to get the (additional) linker options you need to
+link with the particular version of libcurl you've installed.
+
+For details, see the curl-config.1 man page.
+.SH "LIBCURL SYMBOL NAMES"
+All public functions in the libcurl interface are prefixed with 'curl_' (with
+a lowercase c). You can find other functions in the library source code, but
+other prefixes indicate the functions are private and may change without
+further notice in the next release.
+
+Only use documented functions and functionality!
+.SH "PORTABILITY"
+libcurl works
+.B exactly
+the same, on any of the platforms it compiles and builds on.
+
+There's only one caution, and that is the win32 platform that may(*) require
+you to init the winsock stuff before you use the libcurl functions. Details on
+this are noted on the curl_easy_init() man page.
+
+(*) = it appears as if users of the cygwin environment get this done
+automatically, also libcurl 7.8.1 and later can handle this for you.
+.SH "THREADS"
+Never ever call curl-functions simultaneously using the same handle from
+several threads. libcurl is thread-safe and can be used in any number of
+threads, but you must use separate curl handles if you want to use libcurl in
+more than one thread simultaneously.
+.SH "PERSISTANT CONNECTIONS"
+With libcurl 7.7, persistant connections were added. Persistant connections
+means that libcurl can re-use the same connection for several transfers, if
+the conditions are right.
+
+libcurl will *always* attempt to use persistant connections. Whenever you use
+curl_easy_perform(), libcurl will attempt to use an existing connection to do
+the transfer, and if none exists it'll open a new one that will be subject
+for re-use on a possible following call to curl_easy_perform().
+
+To allow libcurl to take full advantage of persistant connections, you should
+do as many of your file transfers as possible using the same curl
+handle. When you call curl_easy_cleanup(), all the possibly open connections
+held by libcurl will be closed and forgotten.
+
+Note that the options set with curl_easy_setopt() will be used in on every
+repeat curl_easy_perform() call
+.SH "COMPATIBILITY WITH OLDER LIBCURLS"
+Repeated curl_easy_perform() calls on the same handle were not supported in
+pre-7.7 versions, and caused confusion and undefined behaviour.
+
diff --git a/Build/source/libs/curl/docs/libcurl/libcurl.html b/Build/source/libs/curl/docs/libcurl/libcurl.html
new file mode 100644
index 00000000000..30f3681fbb0
--- /dev/null
+++ b/Build/source/libs/curl/docs/libcurl/libcurl.html
@@ -0,0 +1,185 @@
+<HTML>
+<BODY>
+<PRE>
+<!-- Manpage converted by man2html 3.0.1 -->
+
+</PRE>
+<H2>NAME</H2><PRE>
+ libcurl - client-side URL transfers
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+ This is an overview on how to use libcurl in your C pro­
+ grams. There are specific man pages for each function men­
+ tioned in here. There's also the libcurl-the-guide document
+ for a complete tutorial to programming with libcurl.
+
+ libcurl can also be used directly from within your Java,
+ PHP, Perl, Ruby or Tcl programs as well, look elsewhere for
+ documentation on this!
+
+ All applications that use libcurl should call
+ <I>curl</I><B>_</B><I>global</I><B>_</B><I>init()</I> exactly once before any libcurl function
+ can be used. After all usage of libcurl is complete, it <B>must</B>
+ call <I>curl</I><B>_</B><I>global</I><B>_</B><I>cleanup()</I>. In between those two calls, you
+ can use libcurl as described below.
+
+ When using libcurl you init your session and get a handle,
+ which you use as input to the following interface functions
+ you use. Use <I>curl</I><B>_</B><I>easy</I><B>_</B><I>init()</I> to get the handle.
+
+ You continue by setting all the options you want in the
+ upcoming transfer, most important among them is the URL
+ itself (you can't transfer anything without a specified URL
+ as you may have figured out yourself). You might want to set
+ some callbacks as well that will be called from the library
+ when data is available etc. <I>curl</I><B>_</B><I>easy</I><B>_</B><I>setopt()</I> is there for
+ this.
+
+ When all is setup, you tell libcurl to perform the transfer
+ using <I>curl</I><B>_</B><I>easy</I><B>_</B><I>perform()</I>. It will then do the entire oper­
+ ation and won't return until it is done (successfully or
+ not).
+
+ After the transfer has been made, you can set new options
+ and make another transfer, or if you're done, cleanup the
+ session by calling <I>curl</I><B>_</B><I>easy</I><B>_</B><I>cleanup()</I>. If you want persis­
+ tant connections, you don't cleanup immediately, but instead
+ run ahead and perform other transfers using the same handle.
+ See the chapter below for Persistant Connections.
+
+ There is also a series of other helpful functions to use.
+ They are:
+
+
+ <B>curl_version()</B>
+ displays the libcurl version
+
+ <B>curl_getdate()</B>
+ converts a date string to time_t
+
+ <B>curl_getenv()</B>
+ portable environment variable reader
+
+ <B>curl_easy_getinfo()</B>
+ get information about a performed transfer
+
+ <B>curl_formadd()</B>
+ helps building a HTTP form POST
+
+ <B>curl_formfree()</B>
+ free a list built with curl_form­
+ parse()/curl_formadd()
+
+ <B>curl_slist_append()</B>
+ builds a linked list
+
+ <B>curl_slist_free_all()</B>
+ frees a whole curl_slist
+
+ <B>curl_mprintf()</B>
+ portable printf() functions
+
+ <B>curl_strequal()</B>
+ portable case insensitive string comparisons
+
+
+
+</PRE>
+<H2>LINKING WITH LIBCURL</H2><PRE>
+ Starting with 7.7.2 (on unix-like machines), there's a tool
+ named curl-config that gets installed with the rest of the
+ curl stuff when 'make install' is performed.
+
+ curl-config is added to make it easier for applications to
+ link with libcurl and developers to learn about libcurl and
+ how to use it.
+
+ Run 'curl-config --libs' to get the (additional) linker
+ options you need to link with the particular version of
+ libcurl you've installed.
+
+ For details, see the curl-config.1 man page.
+
+
+</PRE>
+<H2>LIBCURL SYMBOL NAMES</H2><PRE>
+ All public functions in the libcurl interface are prefixed
+ with 'curl_' (with a lowercase c). You can find other func­
+ tions in the library source code, but other prefixes indi­
+ cate the functions are private and may change without fur­
+ ther notice in the next release.
+
+ Only use documented functions and functionality!
+
+
+</PRE>
+<H2>PORTABILITY</H2><PRE>
+ libcurl works <B>exactly</B> the same, on any of the platforms it
+ compiles and builds on.
+
+ There's only one caution, and that is the win32 platform
+ that may(*) require you to init the winsock stuff before you
+ use the libcurl functions. Details on this are noted on the
+ curl_easy_init() man page.
+
+ (*) = it appears as if users of the cygwin environment get
+ this done automatically, also libcurl 7.8.1 and later can
+ handle this for you.
+
+
+</PRE>
+<H2>THREADS</H2><PRE>
+ Never ever call curl-functions simultaneously using the same
+ handle from several threads. libcurl is thread-safe and can
+ be used in any number of threads, but you must use separate
+ curl handles if you want to use libcurl in more than one
+ thread simultaneously.
+
+
+</PRE>
+<H2>PERSISTANT CONNECTIONS</H2><PRE>
+ With libcurl 7.7, persistant connections were added. Persis­
+ tant connections means that libcurl can re-use the same con­
+ nection for several transfers, if the conditions are right.
+
+ libcurl will *always* attempt to use persistant connections.
+ Whenever you use curl_easy_perform(), libcurl will attempt
+ to use an existing connection to do the transfer, and if
+ none exists it'll open a new one that will be subject for
+ re-use on a possible following call to curl_easy_perform().
+
+ To allow libcurl to take full advantage of persistant con­
+ nections, you should do as many of your file transfers as
+ possible using the same curl handle. When you call
+ curl_easy_cleanup(), all the possibly open connections held
+ by libcurl will be closed and forgotten.
+
+ Note that the options set with curl_easy_setopt() will be
+ used in on every repeat curl_easy_perform() call
+
+
+</PRE>
+<H2>COMPATIBILITY WITH OLDER LIBCURLS</H2><PRE>
+ Repeated curl_easy_perform() calls on the same handle were
+ not supported in pre-7.7 versions, and caused confusion and
+ undefined behaviour.
+
+
+
+
+
+
+
+
+
+
+</PRE>
+<HR>
+<ADDRESS>
+Man(1) output converted with
+<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
+</ADDRESS>
+</BODY>
+</HTML>