summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAlessandro Ghedini <alessandro@ghedini.me>2014-05-21 12:49:50 +0200
committerAlessandro Ghedini <alessandro@ghedini.me>2014-05-21 12:49:50 +0200
commita87e878305851b0d8c48f5c06370ab8d0725560a (patch)
tree6d055277be1b91d8af0a44e9e729e68a4c8251e5 /docs
parent406f619a33e3b0e01cc04e8e77a90ee93b229602 (diff)
Imported Upstream version 7.37.0
Diffstat (limited to 'docs')
-rw-r--r--docs/CONTRIBUTE4
-rw-r--r--docs/FAQ14
-rw-r--r--docs/INSTALL52
-rw-r--r--docs/KNOWN_BUGS11
-rw-r--r--docs/MANUAL8
-rw-r--r--docs/THANKS18
-rw-r--r--docs/TODO63
-rw-r--r--docs/curl-config.pdfbin6016 -> 6016 bytes
-rw-r--r--docs/curl.169
-rw-r--r--docs/curl.html22
-rw-r--r--docs/curl.pdfbin100390 -> 101129 bytes
-rw-r--r--docs/examples/cacertinmem.c6
-rw-r--r--docs/examples/imap-append.c1
-rw-r--r--docs/libcurl/curl_easy_cleanup.pdfbin4280 -> 4280 bytes
-rw-r--r--docs/libcurl/curl_easy_duphandle.pdfbin4029 -> 4029 bytes
-rw-r--r--docs/libcurl/curl_easy_escape.pdf16
-rw-r--r--docs/libcurl/curl_easy_getinfo.36
-rw-r--r--docs/libcurl/curl_easy_getinfo.html2
-rw-r--r--docs/libcurl/curl_easy_getinfo.pdfbin17281 -> 17442 bytes
-rw-r--r--docs/libcurl/curl_easy_init.pdfbin4064 -> 4064 bytes
-rw-r--r--docs/libcurl/curl_easy_pause.pdfbin7457 -> 7457 bytes
-rw-r--r--docs/libcurl/curl_easy_perform.pdfbin4863 -> 4863 bytes
-rw-r--r--docs/libcurl/curl_easy_recv.pdfbin5447 -> 5447 bytes
-rw-r--r--docs/libcurl/curl_easy_reset.pdfbin3683 -> 3683 bytes
-rw-r--r--docs/libcurl/curl_easy_send.pdfbin5179 -> 5179 bytes
-rw-r--r--docs/libcurl/curl_easy_setopt.388
-rw-r--r--docs/libcurl/curl_easy_setopt.html32
-rw-r--r--docs/libcurl/curl_easy_setopt.pdfbin150297 -> 154332 bytes
-rw-r--r--docs/libcurl/curl_easy_strerror.pdfbin3411 -> 3411 bytes
-rw-r--r--docs/libcurl/curl_easy_unescape.pdfbin4140 -> 4140 bytes
-rw-r--r--docs/libcurl/curl_escape.pdfbin4014 -> 4014 bytes
-rw-r--r--docs/libcurl/curl_formadd.pdfbin12196 -> 12196 bytes
-rw-r--r--docs/libcurl/curl_formfree.pdfbin3769 -> 3769 bytes
-rw-r--r--docs/libcurl/curl_formget.pdfbin4410 -> 4410 bytes
-rw-r--r--docs/libcurl/curl_free.pdf16
-rw-r--r--docs/libcurl/curl_getdate.pdfbin6340 -> 6340 bytes
-rw-r--r--docs/libcurl/curl_getenv.pdfbin4188 -> 4188 bytes
-rw-r--r--docs/libcurl/curl_global_cleanup.pdfbin3860 -> 3860 bytes
-rw-r--r--docs/libcurl/curl_global_init.pdfbin5093 -> 5093 bytes
-rw-r--r--docs/libcurl/curl_global_init_mem.pdfbin4083 -> 4083 bytes
-rw-r--r--docs/libcurl/curl_mprintf.pdfbin5924 -> 5924 bytes
-rw-r--r--docs/libcurl/curl_multi_add_handle.pdfbin4508 -> 4508 bytes
-rw-r--r--docs/libcurl/curl_multi_assign.pdfbin4577 -> 4577 bytes
-rw-r--r--docs/libcurl/curl_multi_cleanup.pdfbin3812 -> 3812 bytes
-rw-r--r--docs/libcurl/curl_multi_fdset.pdfbin5180 -> 5180 bytes
-rw-r--r--docs/libcurl/curl_multi_info_read.pdfbin4915 -> 4915 bytes
-rw-r--r--docs/libcurl/curl_multi_init.pdfbin3423 -> 3423 bytes
-rw-r--r--docs/libcurl/curl_multi_perform.pdfbin5655 -> 5655 bytes
-rw-r--r--docs/libcurl/curl_multi_remove_handle.pdfbin3877 -> 3877 bytes
-rw-r--r--docs/libcurl/curl_multi_setopt.pdfbin11603 -> 11603 bytes
-rw-r--r--docs/libcurl/curl_multi_socket.pdfbin9402 -> 9402 bytes
-rw-r--r--docs/libcurl/curl_multi_socket_action.pdfbin9638 -> 9638 bytes
-rw-r--r--docs/libcurl/curl_multi_strerror.pdfbin3433 -> 3433 bytes
-rw-r--r--docs/libcurl/curl_multi_timeout.pdfbin4628 -> 4628 bytes
-rw-r--r--docs/libcurl/curl_multi_wait.pdfbin4952 -> 4952 bytes
-rw-r--r--docs/libcurl/curl_share_cleanup.pdfbin3630 -> 3630 bytes
-rw-r--r--docs/libcurl/curl_share_init.pdfbin3819 -> 3819 bytes
-rw-r--r--docs/libcurl/curl_share_setopt.pdfbin5585 -> 5585 bytes
-rw-r--r--docs/libcurl/curl_share_strerror.pdfbin3432 -> 3432 bytes
-rw-r--r--docs/libcurl/curl_slist_append.pdf16
-rw-r--r--docs/libcurl/curl_slist_free_all.pdf16
-rw-r--r--docs/libcurl/curl_strequal.pdfbin4148 -> 4148 bytes
-rw-r--r--docs/libcurl/curl_unescape.pdfbin3977 -> 3977 bytes
-rw-r--r--docs/libcurl/curl_version.pdfbin3490 -> 3490 bytes
-rw-r--r--docs/libcurl/curl_version_info.pdfbin8459 -> 8459 bytes
-rw-r--r--docs/libcurl/libcurl-easy.pdfbin4231 -> 4231 bytes
-rw-r--r--docs/libcurl/libcurl-errors.pdfbin17118 -> 17118 bytes
-rw-r--r--docs/libcurl/libcurl-multi.pdfbin9397 -> 9397 bytes
-rw-r--r--docs/libcurl/libcurl-share.pdfbin4940 -> 4940 bytes
-rw-r--r--docs/libcurl/libcurl-tutorial.pdfbin72192 -> 72192 bytes
-rw-r--r--docs/libcurl/libcurl.pdfbin13818 -> 13818 bytes
-rw-r--r--docs/libcurl/symbols-in-versions8
-rw-r--r--docs/mk-ca-bundle.html19
-rw-r--r--docs/mk-ca-bundle.pdfbin5144 -> 7052 bytes
74 files changed, 321 insertions, 166 deletions
diff --git a/docs/CONTRIBUTE b/docs/CONTRIBUTE
index 75e7ebbb..83fa4209 100644
--- a/docs/CONTRIBUTE
+++ b/docs/CONTRIBUTE
@@ -278,6 +278,10 @@
[full description, no wider than 72 columns that describe as much as
possible as to why this change is made, and possibly what things
it fixes and everything else that is related]
+
+ [Bug: link to source of the report or more related discussion]
+ [Reported-by: John Doe - credit the reporter]
+ [whatever-else-by: credit all helpers, finders, doers]
---- stop ----
Don't forget to use commit --author="" if you commit someone else's work,
diff --git a/docs/FAQ b/docs/FAQ
index 3704f056..29355f09 100644
--- a/docs/FAQ
+++ b/docs/FAQ
@@ -99,6 +99,7 @@ FAQ
5.15 How do I get an FTP directory listing?
5.16 I want a different time-out!
5.17 Can I write a server with libcurl?
+ 5.18 Does libcurl use threads?
6. License Issues
6.1 I have a GPL program, can I use the libcurl library?
@@ -1365,6 +1366,19 @@ FAQ
server for. And there are really good stand-alone ones that have been tested
and proven for many years. There's no need for you to reinvent them!
+ 5.18 Does libcurl use threads?
+
+ Put simply: no, libcurl will execute in the same thread you call it in. All
+ callbacks will be called in the same thread as the one you call libcurl in.
+
+ If you want to avoid your thread to be blocked by the libcurl call, you make
+ sure you use the non-blocking API which will do transfers asynchronously -
+ but still in the same single thread.
+
+ libcurl will potentially internally use threads for name resolving, if it
+ was built to work like that, but in those cases it'll create the child
+ threads by itself and they will only be used and then killed internally by
+ libcurl and never exposed to the outside.
6. License Issues
diff --git a/docs/INSTALL b/docs/INSTALL
index b9d75802..86f99ddd 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -252,8 +252,10 @@ Win32
MSVC 6 caveats
--------------
- If you use MSVC 6 it is required that you use the February 2003 edition PSDK:
- http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
+ If you use MSVC 6 it is required that you use the February 2003 edition of
+ the 'Platform SDK' which can be downloaded from:
+
+ http://www.microsoft.com/en-us/download/details.aspx?id=12261
Building any software with MSVC 6 without having PSDK installed is just
asking for trouble down the road once you have released it, you might notice
@@ -261,8 +263,6 @@ Win32
choice of static vs dynamic runtime and third party libraries. Anyone using
software built in such way will at some point regret having done so.
- When someone uses MSVC 6 without PSDK he is using a compiler back from 1998.
-
If the compiler has been updated with the installation of a service pack as
those mentioned in http://support.microsoft.com/kb/194022 the compiler can be
safely used to read source code, translate and make it object code.
@@ -272,13 +272,6 @@ Win32
header files and libraries with bugs and security issues which have already
been addressed and fixed long time ago.
- In order to make use of the updated system headers and fixed libraries
- for MSVC 6, it is required that 'Platform SDK', PSDK from now onwards,
- is installed. The specific PSDK that must be installed for MSVC 6 is the
- February 2003 edition, which is the latest one supporting the MSVC 6 compiler,
- this PSDK is also known as 'Windows Server 2003 PSDK' and can be downloaded
- from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-
So, building curl and libcurl with MSVC 6 without PSDK is absolutely
discouraged for the benefit of anyone using software built in such
environment. And it will not be supported in any way, as we could just
@@ -340,39 +333,18 @@ Win32
at runtime.
Run 'nmake vc-ssl-zlib' to build with both ssl and zlib support.
- MSVC 6 IDE
- ----------
-
- A minimal VC++ 6.0 reference workspace (vc6curl.dsw) is available with the
- source distribution archive to allow proper building of the two included
- projects, the libcurl library and the curl tool.
-
- 1) Open the vs/vc6/vc6curl.dsw workspace with MSVC6's IDE.
- 2) Select 'Build' from top menu.
- 3) Select 'Batch Build' from dropdown menu.
- 4) Make sure that the eight project configurations are 'checked'.
- 5) Click on the 'Build' button.
- 6) Once the eight project configurations are built you are done.
-
- Dynamic and static libcurl libraries are built in debug and release flavours,
- and can be located each one in its own subdirectory, dll-debug, dll-release,
- lib-debug and lib-release, all of them below the 'vs/vc6/lib' subdirectory.
-
- In the same way four curl executables are created, each using its respective
- library. The resulting curl executables are located in its own subdirectory,
- dll-debug, dll-release, lib-debug and lib-release, below 'vs/vc6/src' subdir.
-
- These reference VC++ 6.0 configurations are generated using the dynamic CRT.
+ MSVC IDE
+ --------
- Intentionally, these reference VC++ 6.0 projects and configurations don't use
- third party libraries, such as OpenSSL or Zlib, to allow proper compilation
- and configuration for all new users without further requirements.
+ A fairly comprehensive set of Visual Studio project files are available for
+ v6.0 through v12.0 and are located in the projects folder to allow proper
+ building of both the libcurl library as well as the curl tool.
- If you need something more 'involved' you might adjust them for your own use,
- or explore the world of makefiles described above 'MSVC from command line'.
+ For more information about these projects and building via Visual Studio
+ please see the README file located in the projects folder.
Borland C++ compiler
- ---------------------
+ --------------------
Ensure that your build environment is properly set up to use the compiler
and associated tools. PATH environment variable must include the path to
diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS
index ad997a0c..c8ad032a 100644
--- a/docs/KNOWN_BUGS
+++ b/docs/KNOWN_BUGS
@@ -180,16 +180,7 @@ may have been fixed since this was written!
--cflags suffers from the same effects with CFLAGS/CPPFLAGS.
30. You need to use -g to the command line tool in order to use RFC2732-style
- IPv6 numerical addresses in URLs.
-
-29. IPv6 URLs with zone ID is not nicely supported.
- http://www.ietf.org/internet-drafts/draft-fenner-literal-zone-02.txt (expired)
- specifies the use of a plus sign instead of a percent when specifying zone
- IDs in URLs to get around the problem of percent signs being
- special. According to the reporter, Firefox deals with the URL _with_ a
- percent letter (which seems like a blatant URL spec violation).
- libcurl supports zone IDs where the percent sign is URL-escaped (i.e. %25):
- http://curl.haxx.se/bug/view.cgi?id=555
+ or RFC6874-style IPv6 numerical addresses in URLs.
26. NTLM authentication using SSPI (on Windows) when (lib)curl is running in
"system context" will make it use wrong(?) user name - at least when compared
diff --git a/docs/MANUAL b/docs/MANUAL
index 4ad2e135..11960e1b 100644
--- a/docs/MANUAL
+++ b/docs/MANUAL
@@ -50,7 +50,7 @@ SIMPLE USAGE
Get the main page from an IPv6 web server:
- curl -g "http://[2001:1890:1112:1::20]/"
+ curl "http://[2001:1890:1112:1::20]/"
DOWNLOAD TO A FILE
@@ -956,9 +956,9 @@ IPv6
When this style is used, the -g option must be given to stop curl from
interpreting the square brackets as special globbing characters. Link local
and site local addresses including a scope identifier, such as fe80::1234%1,
- may also be used, but the scope portion must be numeric and the percent
- character must be URL escaped. The previous example in an SFTP URL might
- look like:
+ may also be used, but the scope portion must be numeric or match an existing
+ network interface on Linux and the percent character must be URL escaped. The
+ previous example in an SFTP URL might look like:
sftp://[fe80::1234%251]/
diff --git a/docs/THANKS b/docs/THANKS
index 78a67539..3642adde 100644
--- a/docs/THANKS
+++ b/docs/THANKS
@@ -4,6 +4,7 @@
If you have contributed but are missing here, please let us know!
+Aaro Koskinen
Aaron Oneal
Aaron Orenstein
Abram Pousada
@@ -192,6 +193,7 @@ Clarence Gardner
Clemens Gruber
Clifford Wolf
Cody Jones
+Cody Mack
Colby Ranger
Colin Hogben
Colin Watson
@@ -209,6 +211,7 @@ Cédric Deltheil
D. Flinkmann
Dag Ekengren
Dagobert Michelsen
+Damian Dixon
Damien Adant
Dan Becker
Dan C
@@ -260,6 +263,7 @@ David Strauss
David Tarendash
David Thiel
David Walser
+David Woodhouse
David Wright
David Yan
Dengminwen
@@ -267,6 +271,7 @@ Derek Higgins
Detlef Schmier
Didier Brisebourg
Diego Casorran
+Dilyan Palauzov
Dima Barsky
Dima Tisnek
Dimitre Dimitrov
@@ -446,6 +451,7 @@ Ingmar Runge
Ingo Ralf Blum
Ingo Wilken
Ishan SinghLevett
+Ivo Bellin Salarin
Jack Zhang
Jacky Lam
Jacob Meuser
@@ -497,6 +503,7 @@ Jeff Weber
Jeffrey Pohlmeyer
Jeremy Friesner
Jeremy Huddleston
+Jeroen Koekkoek
Jerome Muffat-Meridol
Jerome Vouillon
Jerry Krinock
@@ -543,6 +550,7 @@ Johnny Luong
Jon Grubbs
Jon Nelson
Jon Sargeant
+Jon Torrey
Jon Travis
Jon Turner
Jonas Forsman
@@ -615,6 +623,7 @@ Kyle Sallee
Lachlan O'Dea
Larry Campbell
Larry Fahnoe
+Larry Lin
Lars Buitinck
Lars Gustafsson
Lars J. Aas
@@ -629,6 +638,7 @@ Leif W
Len Krause
Lenaic Lefever
Lenny Rachitsky
+Leon Winter
Liam Healy
Lijo Antony
Linas Vepstas
@@ -649,6 +659,7 @@ Luke Call
Luke Dashjr
Luong Dinh Dung
Maciej Karpiuk
+Maciej Puzio
Maciej W. Rozycki
Maks Naumov
Mamoru Tasaka
@@ -814,6 +825,7 @@ Patrick Bihan-Faou
Patrick Monnerat
Patrick Scott
Patrick Smith
+Patrick Watson
Patrik Thunstrom
Pau Garcia i Quiles
Paul Donohue
@@ -874,6 +886,7 @@ Puneet Pawaia
Quagmire
Quanah Gibson-Mount
Quinn Slack
+Radu Simionescu
Rafa Muyo
Rafael Sagula
Rainer Canavan
@@ -945,6 +958,7 @@ Roy Shan
Rune Kleveland
Ruslan Gazizov
Rutger Hofman
+Ryan Braud
Ryan Chan
Ryan Nelson
Ryan Schmidt
@@ -1040,6 +1054,7 @@ Thomas Lopatic
Thomas Schwinge
Thomas Tonino
Tiit Pikma
+Till Maas
Tim Ansell
Tim Baker
Tim Bartley
@@ -1066,6 +1081,7 @@ Tom Mattison
Tom Moers
Tom Mueller
Tom Regner
+Tom Sparrow
Tom Wright
Tom Zerucha
Tomas Hoger
@@ -1087,12 +1103,14 @@ Troels Walsted Hansen
Troy Engel
Tupone Alfredo
Tyler Hall
+Török Edwin
Ulf Härnhammar
Ulf Samuelsson
Ulrich Doehner
Ulrich Zadow
Venkat Akella
Victor Snezhko
+Vijay Panghal
Vikram Saxena
Viktor Szakáts
Vilmos Nebehaj
diff --git a/docs/TODO b/docs/TODO
index 2b7ac96d..585c4908 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -17,7 +17,7 @@
1.4 signal-based resolver timeouts
1.5 get rid of PATH_MAX
1.6 Modified buffer size approach
- 1.7 Detect when called from witin callbacks
+ 1.7 Detect when called from within callbacks
1.8 Allow SSL (HTTPS) to proxy
2. libcurl - multi interface
@@ -25,7 +25,7 @@
2.2 Fix HTTP Pipelining for PUT
3. Documentation
- 3.1 More and better
+ 3.1 Update date and version in man pages
4. FTP
4.1 HOST
@@ -88,7 +88,6 @@
15.4 simultaneous parallel transfers
15.5 provide formpost headers
15.6 warning when setting an option
- 15.7 IPv6 addresses with globbing
16. Build
16.1 roffit
@@ -98,9 +97,10 @@
17.2 nicer lacking perl message
17.3 more protocols supported
17.4 more platforms supported
+ 17.5 Add support for concurrent connections
18. Next SONAME bump
- 18.1 http-style HEAD output for ftp
+ 18.1 http-style HEAD output for FTP
18.2 combine error codes
18.3 extend CURLOPT_SOCKOPTFUNCTION prototype
@@ -174,7 +174,7 @@
Dynamically allocate buffer size depending on protocol in use in combination
with freeing it after each individual transfer? Other suggestions?
-1.7 Detect when called from witin callbacks
+1.7 Detect when called from within callbacks
We should set a state variable before calling callbacks, so that we
subsequently can add code within libcurl that returns error if called within
@@ -186,6 +186,8 @@
by Chrome already:
http://www.chromium.org/developers/design-documents/secure-web-proxy
+ ...and by Firefox soon:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=378637
2. libcurl - multi interface
@@ -211,18 +213,20 @@
3. Documentation
-3.1 More and better
+3.1 Update date and version in man pages
- Exactly
+ 'maketgz' or another suitable script could update the .TH sections of the man
+ pages at release time to use the current date and curl/libcurl version
+ number.
4. FTP
4.1 HOST
- HOST is a suggested command in the works for a client to tell which host name
- to use, to offer FTP servers named-based virtual hosting:
+ HOST is a command for a client to tell which host name to use, to offer FTP
+ servers named-based virtual hosting:
- http://tools.ietf.org/html/draft-hethmon-mcmurray-ftp-hosts-11
+ http://tools.ietf.org/html/rfc7151
4.2 Alter passive/active on failure and retry
@@ -233,7 +237,7 @@
4.3 Earlier bad letter detection
- Make the detection of (bad) %0d and %0a codes in FTP url parts earlier in the
+ Make the detection of (bad) %0d and %0a codes in FTP URL parts earlier in the
process to avoid doing a resolve and connect in vain.
4.4 REST for large files
@@ -287,7 +291,7 @@
For example:
- http://test:pass;auth=NTLM@example.com would be equivalent to specifing --user
+ http://test:pass;auth=NTLM@example.com would be equivalent to specifying --user
test:pass;auth=NTLM or --user test:pass --ntlm from the command line.
Additionally this should be implemented for proxy base URLs as well.
@@ -352,7 +356,7 @@ to provide the data to send.
Currently the LDAP module only supports ldap_simple_bind_s() in order to bind
to an LDAP server. However, this function sends username and password details
using the simple authentication mechanism (as clear text). However, it should
- be possible to use ldap_bind_s() instead specifing the security context
+ be possible to use ldap_bind_s() instead specifying the security context
information ourselves.
11. New protocols
@@ -383,7 +387,7 @@ to provide the data to send.
12.4 Cache OpenSSL contexts
"Look at SSL cafile - 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
+ request as well, when they should only be necessary once per SSL context (or
once per handle)". The major improvement we can rather easily do is to make
sure we don't create and kill a new SSL "context" for every request, but
instead make one for every connection and re-use that SSL context in the same
@@ -489,13 +493,6 @@ to provide the data to send.
This can be useful to tell when support for a particular feature hasn't been
compiled into the library.
-15.7 IPv6 addresses with globbing
-
- Currently the command line client needs to get url globbing disabled (with
- -g) for it to support IPv6 numerical addresses. This is a rather silly flaw
- that should be corrected. It probably involves a smarter detection of the
- '[' and ']' letters.
-
16. Build
16.1 roffit
@@ -518,7 +515,7 @@ to provide the data to send.
17.3 more protocols supported
- Extend the test suite to include more protocols. The telnet could just do ftp
+ Extend the test suite to include more protocols. The telnet could just do FTP
or http operations (for which we have test servers).
17.4 more platforms supported
@@ -526,12 +523,26 @@ to provide the data to send.
Make the test suite work on more platforms. OpenBSD and Mac OS. Remove
fork()s and it should become even more portable.
+17.5 Add support for concurrent connections
+
+ Tests 836, 882 and 938 were designed to verify that separate connections aren't
+ used when using different login credentials in protocols that shouldn't re-use
+ a connection under such circumstances.
+
+ Unfortunately, ftpserver.pl doesn't appear to support multiple concurrent
+ connections. The read while() loop seems to loop until it receives a disconnect
+ from the client, where it then enters the waiting for connections loop. When
+ the client opens a second connection to the server, the first connection hasn't
+ been dropped (unless it has been forced - which we shouldn't do in these tests)
+ and thus the wait for connections loop is never entered to receive the second
+ connection.
+
18. Next SONAME bump
-18.1 http-style HEAD output for ftp
+18.1 http-style HEAD output for FTP
#undef CURL_FTP_HTTPSTYLE_HEAD in lib/ftp.c to remove the HTTP-style headers
- from being output in NOBODY requests over ftp
+ from being output in NOBODY requests over FTP
18.2 combine error codes
@@ -629,7 +640,7 @@ to provide the data to send.
but instead often restricts how the form functions can or can't be modified.
Changing them to return a private handle will benefit the implementation and
- allow us much greater freedoms while still maintining a solid API and ABI.
+ allow us much greater freedoms while still maintaining a solid API and ABI.
19.9 have form functions use CURL handle argument
@@ -643,7 +654,7 @@ to provide the data to send.
Rather than use the URL to specify the mail client string to present in the
HELO and EHLO commands, libcurl should support a new CURLOPT specifically for
- specifing this data as the URL is non-standard and to be honest a bit of a
+ specifying this data as the URL is non-standard and to be honest a bit of a
hack ;-)
Please see the following thread for more information:
diff --git a/docs/curl-config.pdf b/docs/curl-config.pdf
index 411b966c..9889ac5c 100644
--- a/docs/curl-config.pdf
+++ b/docs/curl-config.pdf
Binary files differ
diff --git a/docs/curl.1 b/docs/curl.1
index 929e86c1..a9ddcd7f 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -678,16 +678,16 @@ If this option is used several times, only the first one is used. This is
because undoing a GET doesn't make sense, but you should then instead enforce
the alternative method you prefer.
.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. Remove an
-internal header by giving a replacement without content on the right side of
-the colon, as in: -H \&"Host:". If you send the custom header with no-value
-then its header must be terminated with a semicolon, such as \-H
-\&"X-Custom-Header;" to send "X-Custom-Header:".
+(HTTP) Extra header to include in the request when sending HTTP to a
+server. 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. Remove an internal header by giving a replacement
+without content on the right side of the colon, as in: -H \&"Host:". If you
+send the custom header with no-value then its header must be terminated with a
+semicolon, such as \-H \&"X-Custom-Header;" to send "X-Custom-Header:".
curl will make sure that each header you add/replace is sent with the proper
end-of-line marker, you should thus \fBnot\fP add that as a part of the header
@@ -696,6 +696,9 @@ for you.
See also the \fI-A, --user-agent\fP and \fI-e, --referer\fP options.
+Starting in 7.37.0, you need \fI--proxy-header\fP to send custom headers
+intended for a proxy.
+
This option can be used multiple times to add/replace/remove multiple headers.
.IP "--hostpubmd5 <md5>"
(SCP/SFTP) Pass a string containing 32 hexadecimal digits. The string should
@@ -908,6 +911,16 @@ timeout increases in decimal precision. See also the \fI--connect-timeout\fP
option.
If this option is used several times, the last one will be used.
+.IP "--login-options <options>"
+Specify the login options to use during server authentication.
+
+You can use the login options to specify protocol specific options that may
+be used during authentication. At present only IMAP, POP3 and SMTP support
+login options. For more information about the login options please see
+RFC 2384, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt (Added in
+7.34.0).
+
+If this option is used several times, the last one will be used.
.IP "--mail-auth <address>"
(SMTP) Specify a single address. This will be used to specify the
authentication address (identity) of a submitted message that is being relayed
@@ -1107,6 +1120,24 @@ is used in conjunction with the user name which can be specified as part of the
The Bearer Token and user name are formatted according to RFC 6750.
If this option is used several times, the last one will be used.
+.IP "--proxy-header <header>"
+(HTTP) Extra header to include in the request when sending HTTP to a
+proxy. You may specify any number of extra headers. This is the equivalent
+option to \fI-H, --header\fP but is for proxy communication only like in
+CONNECT requests when you want a separate header sent to the proxy to what is
+sent to the actual remote host.
+
+curl will make sure that each header you add/replace is sent with the proper
+end-of-line marker, you should thus \fBnot\fP add that as a part of the header
+content: do not add newlines or carriage returns, they will only mess things
+up for you.
+
+Headers specified with this option will not be included in requests that curl
+knows will not be sent to a proxy.
+
+This option can be used multiple times to add/replace/remove multiple headers.
+
+(Added in 7.37.0)
.IP "-p, --proxytunnel"
When an HTTP proxy is used (\fI-x, --proxy\fP), this option will cause non-HTTP
protocols to attempt to tunnel through the proxy instead of merely using it to
@@ -1592,23 +1623,15 @@ If this option is used several times, the last one will be used.
.IP "--trace-time"
Prepends a time stamp to each trace or verbose line that curl displays.
(Added in 7.14.0)
-.IP "-u, --user <user:password;options>"
-Specify the user name, password and optional login options to use for server
-authentication. Overrides \fI-n, --netrc\fP and \fI--netrc-optional\fP.
+.IP "-u, --user <user:password>"
+Specify the user name and password to use for server authentication. Overrides
+\fI-n, --netrc\fP and \fI--netrc-optional\fP.
-If you simply specify the user name, with or without the login options, curl
-will prompt for a password.
+If you simply specify the user name, curl will prompt for a password.
If you use an SSPI-enabled curl binary and perform NTLM authentication, you
can force curl to select the user name and password from your environment by
-simply specifying a single colon with this option: "-u :" or by specifying the
-login options on their own, for example "-u ;auth=NTLM".
-
-You can use the optional login options part to specify protocol specific
-options that may be used during authentication. At present only IMAP, POP3 and
-SMTP support login options as part of the user login information. For more
-information about the login options please see RFC 2384, RFC 5092 and IETF
-draft draft-earhart-url-smtp-00.txt (Added in 7.31.0).
+specifying a single colon with this option: "-u :".
If this option is used several times, the last one will be used.
.IP "-U, --proxy-user <user:password>"
diff --git a/docs/curl.html b/docs/curl.html
index 14ea9cc3..f0832d00 100644
--- a/docs/curl.html
+++ b/docs/curl.html
@@ -296,9 +296,10 @@ p.roffit {
<p class="level1">If used in combination with -I, the POST data will instead be appended to the URL with a HEAD request.
<p class="level1">If this option is used several times, only the first one is used. This is because undoing a GET doesn't make sense, but you should then instead enforce the alternative method you prefer.
<p class="level0"><a name="-H"></a><span class="nroffip">-H, --header &lt;header&gt;</span>
-<p class="level1">(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. Remove an internal header by giving a replacement without content on the right side of the colon, as in: -H "Host:". If you send the custom header with no-value then its header must be terminated with a semicolon, such as -H "X-Custom-Header;" to send "X-Custom-Header:".
+<p class="level1">(HTTP) Extra header to include in the request when sending HTTP to a server. 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. Remove an internal header by giving a replacement without content on the right side of the colon, as in: -H "Host:". If you send the custom header with no-value then its header must be terminated with a semicolon, such as -H "X-Custom-Header;" to send "X-Custom-Header:".
<p class="level1">curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus <span Class="bold">not</span> add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you.
<p class="level1">See also the <a class="emphasis" href="#-A">-A, --user-agent</a> and <a class="emphasis" href="#-e">-e, --referer</a> options.
+<p class="level1">Starting in 7.37.0, you need <a class="emphasis" href="#--proxy-header">--proxy-header</a> to send custom headers intended for a proxy.
<p class="level1">This option can be used multiple times to add/replace/remove multiple headers.
<p class="level0"><a name="--hostpubmd5"></a><span class="nroffip">--hostpubmd5 &lt;md5&gt;</span>
<p class="level1">(SCP/SFTP) Pass a string containing 32 hexadecimal digits. The string should be the 128 bit MD5 checksum of the remote host's public key, curl will refuse the connection with the host unless the md5sums match. (Added in 7.17.1)
@@ -382,6 +383,10 @@ p.roffit {
<p class="level0"><a name="-m"></a><span class="nroffip">-m, --max-time &lt;seconds&gt;</span>
<p class="level1">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. Since 7.32.0, this option accepts decimal values, but the actual timeout will decrease in accuracy as the specified timeout increases in decimal precision. See also the <a class="emphasis" href="#--connect-timeout">--connect-timeout</a> option.
<p class="level1">If this option is used several times, the last one will be used.
+<p class="level0"><a name="--login-options"></a><span class="nroffip">--login-options &lt;options&gt;</span>
+<p class="level1">Specify the login options to use during server authentication.
+<p class="level1">You can use the login options to specify protocol specific options that may be used during authentication. At present only IMAP, POP3 and SMTP support login options. For more information about the login options please see <a href="http://www.ietf.org/rfc/rfc2384.txt">RFC 2384</a>, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt (Added in 7.34.0).
+<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="--mail-auth"></a><span class="nroffip">--mail-auth &lt;address&gt;</span>
<p class="level1">(SMTP) Specify a single address. This will be used to specify the authentication address (identity) of a submitted message that is being relayed to another server.
<p class="level1">(Added in 7.25.0)
@@ -457,6 +462,12 @@ p.roffit {
<p class="level1">(IMAP, POP3, SMTP) Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token is used in conjunction with the user name which can be specified as part of the <a class="emphasis" href="#--url">--url</a> or <a class="emphasis" href="#-u">-u, --user</a> options.
<p class="level1">The Bearer Token and user name are formatted according to <a href="http://www.ietf.org/rfc/rfc6750.txt">RFC 6750</a>.
<p class="level1">If this option is used several times, the last one will be used.
+<p class="level0"><a name="--proxy-header"></a><span class="nroffip">--proxy-header &lt;header&gt;</span>
+<p class="level1">(HTTP) Extra header to include in the request when sending HTTP to a proxy. You may specify any number of extra headers. This is the equivalent option to <a class="emphasis" href="#-H">-H, --header</a> but is for proxy communication only like in CONNECT requests when you want a separate header sent to the proxy to what is sent to the actual remote host.
+<p class="level1">curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus <span Class="bold">not</span> add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you.
+<p class="level1">Headers specified with this option will not be included in requests that curl knows will not be sent to a proxy.
+<p class="level1">This option can be used multiple times to add/replace/remove multiple headers.
+<p class="level1">(Added in 7.37.0)
<p class="level0"><a name="-p"></a><span class="nroffip">-p, --proxytunnel</span>
<p class="level1">When an HTTP proxy is used (<a class="emphasis" href="#-x">-x, --proxy</a>), 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.
<p class="level0"><a name="-P"></a><span class="nroffip">-P, --ftp-port &lt;address&gt;</span>
@@ -671,11 +682,10 @@ p.roffit {
<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="--trace-time"></a><span class="nroffip">--trace-time</span>
<p class="level1">Prepends a time stamp to each trace or verbose line that curl displays. (Added in 7.14.0)
-<p class="level0"><a name="-u"></a><span class="nroffip">-u, --user &lt;user:password;options&gt;</span>
-<p class="level1">Specify the user name, password and optional login options to use for server authentication. Overrides <a class="emphasis" href="#-n">-n, --netrc</a> and <a class="emphasis" href="#--netrc-optional">--netrc-optional</a>.
-<p class="level1">If you simply specify the user name, with or without the login options, curl will prompt for a password.
-<p class="level1">If you use an SSPI-enabled curl binary and perform NTLM authentication, you can force curl to select the user name and password from your environment by simply specifying a single colon with this option: "-u :" or by specifying the login options on their own, for example "-u ;auth=NTLM".
-<p class="level1">You can use the optional login options part to specify protocol specific options that may be used during authentication. At present only IMAP, POP3 and SMTP support login options as part of the user login information. For more information about the login options please see <a href="http://www.ietf.org/rfc/rfc2384.txt">RFC 2384</a>, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt (Added in 7.31.0).
+<p class="level0"><a name="-u"></a><span class="nroffip">-u, --user &lt;user:password&gt;</span>
+<p class="level1">Specify the user name and password to use for server authentication. Overrides <a class="emphasis" href="#-n">-n, --netrc</a> and <a class="emphasis" href="#--netrc-optional">--netrc-optional</a>.
+<p class="level1">If you simply specify the user name, curl will prompt for a password.
+<p class="level1">If you use an SSPI-enabled curl binary and perform NTLM authentication, you can force curl to select the user name and password from your environment by specifying a single colon with this option: "-u :".
<p class="level1">If this option is used several times, the last one will be used.
<p class="level0"><a name="-U"></a><span class="nroffip">-U, --proxy-user &lt;user:password&gt;</span>
<p class="level1">Specify the user name and password to use for proxy authentication.
diff --git a/docs/curl.pdf b/docs/curl.pdf
index d0c26a19..53f072c6 100644
--- a/docs/curl.pdf
+++ b/docs/curl.pdf
Binary files differ
diff --git a/docs/examples/cacertinmem.c b/docs/examples/cacertinmem.c
index 051afbca..b660c0d8 100644
--- a/docs/examples/cacertinmem.c
+++ b/docs/examples/cacertinmem.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -103,6 +103,10 @@ static CURLcode sslctx_function(CURL * curl, void * sslctx, void * parm)
if (X509_STORE_add_cert(store, cert)==0)
printf("error adding certificate\n");
+ /* decrease reference counts */
+ X509_free(cert);
+ BIO_free(bio);
+
/* all set to go */
return CURLE_OK ;
}
diff --git a/docs/examples/imap-append.c b/docs/examples/imap-append.c
index 8f0ebcb3..fa531a8c 100644
--- a/docs/examples/imap-append.c
+++ b/docs/examples/imap-append.c
@@ -20,6 +20,7 @@
*
***************************************************************************/
#include <stdio.h>
+#include <string.h>
#include <curl/curl.h>
/* This is a simple example showing how to send mail using libcurl's IMAP
diff --git a/docs/libcurl/curl_easy_cleanup.pdf b/docs/libcurl/curl_easy_cleanup.pdf
index c2c03d22..97e0ec1e 100644
--- a/docs/libcurl/curl_easy_cleanup.pdf
+++ b/docs/libcurl/curl_easy_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_duphandle.pdf b/docs/libcurl/curl_easy_duphandle.pdf
index b68facd8..bca4d8a6 100644
--- a/docs/libcurl/curl_easy_duphandle.pdf
+++ b/docs/libcurl/curl_easy_duphandle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_escape.pdf b/docs/libcurl/curl_easy_escape.pdf
index 6a838057..97e0dd26 100644
--- a/docs/libcurl/curl_easy_escape.pdf
+++ b/docs/libcurl/curl_easy_escape.pdf
@@ -69,12 +69,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:45878295-eccf-11ee-0000-e20d2ea3735f' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
-<rdf:Description rdf:about='uuid:45878295-eccf-11ee-0000-e20d2ea3735f' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-03-26T07:49:05+01:00</xmp:ModifyDate>
-<xmp:CreateDate>2014-03-26T07:49:05+01:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:94b2b0f7-18c9-11ef-0000-e20d2ea3735f' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
+<rdf:Description rdf:about='uuid:94b2b0f7-18c9-11ef-0000-e20d2ea3735f' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-05-21T07:59:12+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2014-05-21T07:59:12+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.2</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:45878295-eccf-11ee-0000-e20d2ea3735f' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:45878295-eccf-11ee-0000-e20d2ea3735f'/>
-<rdf:Description rdf:about='uuid:45878295-eccf-11ee-0000-e20d2ea3735f' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:94b2b0f7-18c9-11ef-0000-e20d2ea3735f' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:94b2b0f7-18c9-11ef-0000-e20d2ea3735f'/>
+<rdf:Description rdf:about='uuid:94b2b0f7-18c9-11ef-0000-e20d2ea3735f' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -84,8 +84,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.05)
-/CreationDate(D:20140326074905+01'00')
-/ModDate(D:20140326074905+01'00')
+/CreationDate(D:20140521075912+02'00')
+/ModDate(D:20140521075912+02'00')
/Creator(groff version 1.22.2)>>endobj
xref
0 15
@@ -106,7 +106,7 @@ xref
0000002013 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<2A3E25FCA68D262E2BE199C54800B63A><2A3E25FCA68D262E2BE199C54800B63A>]
+/ID [<701202C49FCE4E2426B5E8AA9D1CDAA1><701202C49FCE4E2426B5E8AA9D1CDAA1>]
>>
startxref
3590
diff --git a/docs/libcurl/curl_easy_getinfo.3 b/docs/libcurl/curl_easy_getinfo.3
index 8d000c05..19646968 100644
--- a/docs/libcurl/curl_easy_getinfo.3
+++ b/docs/libcurl/curl_easy_getinfo.3
@@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____|
.\" *
-.\" * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
@@ -109,7 +109,9 @@ uploaded.
.IP CURLINFO_SIZE_DOWNLOAD
Pass a pointer to a double to receive the total amount of bytes that were
downloaded. The amount is only for the latest transfer and will be reset again
-for each new transfer.
+for each new transfer. This counts actual payload data, what's also commonly
+called body. All meta and header data are excluded and will not be counted in
+this number.
.IP CURLINFO_SPEED_DOWNLOAD
Pass a pointer to a double to receive the average download speed that curl
measured for the complete download. Measured in bytes/second.
diff --git a/docs/libcurl/curl_easy_getinfo.html b/docs/libcurl/curl_easy_getinfo.html
index bf2aecc8..2f3b4f93 100644
--- a/docs/libcurl/curl_easy_getinfo.html
+++ b/docs/libcurl/curl_easy_getinfo.html
@@ -83,7 +83,7 @@ p.roffit {
<p class="level0"><a name="CURLINFOSIZEUPLOAD"></a><span class="nroffip">CURLINFO_SIZE_UPLOAD</span>
<p class="level1">Pass a pointer to a double to receive the total amount of bytes that were uploaded.
<p class="level0"><a name="CURLINFOSIZEDOWNLOAD"></a><span class="nroffip">CURLINFO_SIZE_DOWNLOAD</span>
-<p class="level1">Pass a pointer to a double to receive the total amount of bytes that were downloaded. The amount is only for the latest transfer and will be reset again for each new transfer.
+<p class="level1">Pass a pointer to a double to receive the total amount of bytes that were downloaded. The amount is only for the latest transfer and will be reset again for each new transfer. This counts actual payload data, what's also commonly called body. All meta and header data are excluded and will not be counted in this number.
<p class="level0"><a name="CURLINFOSPEEDDOWNLOAD"></a><span class="nroffip">CURLINFO_SPEED_DOWNLOAD</span>
<p class="level1">Pass a pointer to a double to receive the average download speed that curl measured for the complete download. Measured in bytes/second.
<p class="level0"><a name="CURLINFOSPEEDUPLOAD"></a><span class="nroffip">CURLINFO_SPEED_UPLOAD</span>
diff --git a/docs/libcurl/curl_easy_getinfo.pdf b/docs/libcurl/curl_easy_getinfo.pdf
index 3e1aaba2..944621ab 100644
--- a/docs/libcurl/curl_easy_getinfo.pdf
+++ b/docs/libcurl/curl_easy_getinfo.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_init.pdf b/docs/libcurl/curl_easy_init.pdf
index 37a575a7..3afd8363 100644
--- a/docs/libcurl/curl_easy_init.pdf
+++ b/docs/libcurl/curl_easy_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_pause.pdf b/docs/libcurl/curl_easy_pause.pdf
index 482f0def..0b860ddf 100644
--- a/docs/libcurl/curl_easy_pause.pdf
+++ b/docs/libcurl/curl_easy_pause.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_perform.pdf b/docs/libcurl/curl_easy_perform.pdf
index 3f8ed2f3..472b88e0 100644
--- a/docs/libcurl/curl_easy_perform.pdf
+++ b/docs/libcurl/curl_easy_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_recv.pdf b/docs/libcurl/curl_easy_recv.pdf
index 5a5520a3..30c51e8e 100644
--- a/docs/libcurl/curl_easy_recv.pdf
+++ b/docs/libcurl/curl_easy_recv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_reset.pdf b/docs/libcurl/curl_easy_reset.pdf
index 75ae92da..a2d2288d 100644
--- a/docs/libcurl/curl_easy_reset.pdf
+++ b/docs/libcurl/curl_easy_reset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_send.pdf b/docs/libcurl/curl_easy_send.pdf
index e3e97595..d5d14980 100644
--- a/docs/libcurl/curl_easy_send.pdf
+++ b/docs/libcurl/curl_easy_send.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 5422bca8..c044163d 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -347,6 +347,8 @@ Pass a pointer to a function that matches the following prototype:
\fBint function(void *clientp, double dltotal, double dlnow, double ultotal,
double ulnow);\fP
+We encourage users to use \fICURLOPT_XFERINFOFUNCTION\fP instead, if you can.
+
This function gets called by libcurl instead of its internal equivalent with a
frequent interval. While data is being transferred it will be called very
frequently, and during slow periods like when nothing is being transferred it
@@ -821,8 +823,9 @@ the user
The path part of an IMAP request not only specifies the mailbox to list (Added
in 7.30.0) or select, but can also be used to check the UIDVALIDITY of the
-mailbox and to specify the UID and SECTION of the message to fetch (Added in
-7.30.0).
+mailbox, to specify the UID, SECTION (Added in 7.30.0) and PARTIAL octets
+(Added in 7.37.0) of the message to fetch and to specify what nessages to
+search for (Added in 7.37.0).
imap://user:password@mail.example.com - Performs a top level folder list
@@ -837,7 +840,17 @@ the user's inbox, checks the UIDVALIDITY of the mailbox is 50 and fetches
message 2 if it is
imap://user:password@mail.example.com/INBOX/;UID=3/;SECTION=TEXT - Selects the
-user's inbox and fetches message 3 with only the text portion of the message
+user's inbox and fetches the text portial of message 3
+
+imap://user:password@mail.example.com/INBOX/;UID=4/;PARTIAL=0.1024 - Selects
+the user's inbox and fetches the first 1024 octets of message 4
+
+imap://user:password@mail.example.com/INBOX?NEW - Selects the user's inbox and
+checks for NEW messages
+
+imap://user:password@mail.example.com/INBOX?SUBJECT%20shadows - Selects the
+user's inbox and searches for messages containing "shadows" in the subject
+line
For more information about the individual components of an IMAP URL please
see RFC5092.
@@ -1515,17 +1528,20 @@ 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.
.IP 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
-content 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. To add a
-header with no content (nothing to the right side of the colon), use the
-form 'MyHeader;' (note the ending semicolon).
+Pass a pointer to a linked list of HTTP headers to pass to the server and/or
+proxy in your HTTP request. The same list is used for both host and proxy
+requests!
+
+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 content as in 'Accept:'
+(no data on the right side of the colon), the internally used header will get
+disabled. With this option you can add new headers, replace internal headers
+and remove internal headers. To add a header with no content (nothing to the
+right side of the colon), use the form 'MyHeader;' (note the ending
+semicolon).
The headers included in the linked list must not be CRLF-terminated, because
curl adds CRLF after each header item. Failure to comply with this will result
@@ -1541,6 +1557,42 @@ Pass a NULL to this to reset back to no custom headers.
The most commonly replaced headers have "shortcuts" in the options
\fICURLOPT_COOKIE\fP, \fICURLOPT_USERAGENT\fP and \fICURLOPT_REFERER\fP.
+
+There's an alternative option that sets or replaces headers only for requests
+that are sent with CONNECT to a proxy: \fICURLOPT_PROXYHEADER\fP. Use
+\fICURLOPT_HEADEROPT\fP to control the behavior.
+.IP CURLOPT_HEADEROPT
+Pass a long that is a bitmask of options of how to deal with headers. The two
+mutually exclusive options are:
+
+CURLHEADER_UNIFIED - keep working as before. This means CURLOPT_HTTPHEADER
+headers will be used in requests both to servers and proxies. With this option
+enabled, \fICURLOPT_PROXYHEADER\fP will not have any effect.
+
+CURLHEADER_SEPARATE - makes \fICURLOPT_HTTPHEADER\fP headers only get sent to
+a server and not to a proxy. Proxy headers must be set with
+\fICURLOPT_PROXYHEADER\fP to get used. Note that if a non-CONNECT request is
+sent to a proxy, libcurl will send both server headers and proxy headers. When
+doing CONNECT, libcurl will send \fICURLOPT_PROXYHEADER\fP headers only do the
+proxy and then \fICURLOPT_HTTPHEADER\fP headers only to the server.
+
+(Added in 7.37.0)
+.IP CURLOPT_PROXYHEADER
+Pass a pointer to a linked list of HTTP headers to pass in your HTTP request
+sent to a proxy. The rules for this list is identical to the
+\fICURLOPT_HTTPHEADER\fP option's.
+
+The headers set with this option is only ever used in requests sent to a proxy
+- when there's also a request sent to a host.
+
+The first line in a request (containing the method, usually a GET or POST) is
+NOT a header and cannot be replaced using this option. Only the lines
+following the request-line are headers. Adding this method line in this list
+of headers will only cause your request to send an invalid header.
+
+Pass a NULL to this to reset back to no custom headers.
+
+This option was added in libcurl 7.37.0.
.IP CURLOPT_HTTP200ALIASES
Pass a pointer to a linked list of aliases to be treated as valid HTTP 200
responses. Some servers respond with a custom header response line. For
@@ -2743,6 +2795,14 @@ known_host matching has been done, to allow the application to act and decide
for libcurl how to proceed. The callback will only be called if
\fICURLOPT_SSH_KNOWNHOSTS\fP is also set.
+.nf
+int curl_sshkeycallback (CURL *easy, /* easy handle */
+ const struct curl_khkey *knownkey, /* known */
+ const struct curl_khkey *foundkey, /* found */
+ enum curl_khmatch, /* libcurl's view on the keys */
+ void *clientp);
+.fi
+
The curl_sshkeycallback function gets passed the CURL handle, the key from the
known_hosts file, the key from the remote site, info from libcurl on the
matching status and a custom pointer (set with \fICURLOPT_SSH_KEYDATA\fP). It
diff --git a/docs/libcurl/curl_easy_setopt.html b/docs/libcurl/curl_easy_setopt.html
index d7e8d0a1..f31d17fb 100644
--- a/docs/libcurl/curl_easy_setopt.html
+++ b/docs/libcurl/curl_easy_setopt.html
@@ -151,6 +151,7 @@ p.roffit {
<p class="level0"><a name="CURLOPTPROGRESSFUNCTION"></a><span class="nroffip">CURLOPT_PROGRESSFUNCTION</span>
<p class="level1">Pass a pointer to a function that matches the following prototype:
<p class="level1"><span class="bold">int function(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow);</span>
+<p class="level1">We encourage users to use <a class="emphasis" href="#CURLOPTXFERINFOFUNCTION">CURLOPT_XFERINFOFUNCTION</a> instead, if you can.
<p class="level1">This function gets called by libcurl instead of its internal equivalent with a frequent interval. While data is being transferred it will be called very frequently, and during slow periods like when nothing is being transferred it can slow down to about one call per second.
<p class="level1"><span Class="emphasis">clientp</span> is the pointer set with <a class="emphasis" href="#CURLOPTPROGRESSDATA">CURLOPT_PROGRESSDATA</a>, it is not actually used by libcurl but is only passed along from the application to the callback.
<p class="level1">The callback gets told how much data libcurl will transfer and has transferred, in number of bytes. <span Class="emphasis">dltotal</span> is the total number of bytes libcurl expects to download in this transfer. <span Class="emphasis">dlnow</span> is the number of bytes downloaded so far. <span Class="emphasis">ultotal</span> is the total number of bytes libcurl expects to upload in this transfer. <span Class="emphasis">ulnow</span> is the number of bytes uploaded so far.
@@ -310,12 +311,15 @@ p.roffit {
<p class="level1">pop3://user:password@mail.example.com - This lists the available messages for the user
<p class="level1">pop3://user:password@mail.example.com/1 - This retrieves the first message for the user
<p class="level1"><span Class="bold">IMAP</span>
-<p class="level1">The path part of an IMAP request not only specifies the mailbox to list (Added in 7.30.0) or select, but can also be used to check the UIDVALIDITY of the mailbox and to specify the UID and SECTION of the message to fetch (Added in 7.30.0).
+<p class="level1">The path part of an IMAP request not only specifies the mailbox to list (Added in 7.30.0) or select, but can also be used to check the UIDVALIDITY of the mailbox, to specify the UID, SECTION (Added in 7.30.0) and PARTIAL octets (Added in 7.37.0) of the message to fetch and to specify what nessages to search for (Added in 7.37.0).
<p class="level1">imap://user:password@mail.example.com - Performs a top level folder list
<p class="level1">imap://user:password@mail.example.com/INBOX - Performs a folder list on the user's inbox
<p class="level1">imap://user:password@mail.example.com/INBOX/;UID=1 - Selects the user's inbox and fetches message 1
<p class="level1">imap://user:password@mail.example.com/INBOX;UIDVALIDITY=50/;UID=2 - Selects the user's inbox, checks the UIDVALIDITY of the mailbox is 50 and fetches message 2 if it is
-<p class="level1">imap://user:password@mail.example.com/INBOX/;UID=3/;SECTION=TEXT - Selects the user's inbox and fetches message 3 with only the text portion of the message
+<p class="level1">imap://user:password@mail.example.com/INBOX/;UID=3/;SECTION=TEXT - Selects the user's inbox and fetches the text portial of message 3
+<p class="level1">imap://user:password@mail.example.com/INBOX/;UID=4/;PARTIAL=0.1024 - Selects the user's inbox and fetches the first 1024 octets of message 4
+<p class="level1">imap://user:password@mail.example.com/INBOX?NEW - Selects the user's inbox and checks for NEW messages
+<p class="level1">imap://user:password@mail.example.com/INBOX?SUBJECT%20shadows - Selects the user's inbox and searches for messages containing "shadows" in the subject line
<p class="level1">For more information about the individual components of an IMAP URL please see <a href="http://www.ietf.org/rfc/rfc5092.txt">RFC 5092</a>.
<p class="level1"><span Class="bold">SCP</span>
<p class="level1">The path part of a SCP request specifies the file to retrieve and from what directory. The file part may not be omitted. The file is taken as an absolute path from the root directory on the server. To specify a path relative to the user's home directory on the server, prepend ~/ to the path portion. If the user name is not embedded in the URL, it can be set with the <a class="emphasis" href="#CURLOPTUSERPWD">CURLOPT_USERPWD</a> or <a class="bold" href="#CURLOPTUSERNAME">CURLOPT_USERNAME</a> option.
@@ -539,11 +543,24 @@ p.roffit {
<p class="level0"><a name="CURLOPTUSERAGENT"></a><span class="nroffip">CURLOPT_USERAGENT</span>
<p class="level1">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 <a class="emphasis" href="#CURLOPTHTTPHEADER">CURLOPT_HTTPHEADER</a>.
<p class="level0"><a name="CURLOPTHTTPHEADER"></a><span class="nroffip">CURLOPT_HTTPHEADER</span>
-<p class="level1">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 <span class="bold">struct curl_slist</span> structs properly filled in. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to create the list and <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a> 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 content 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. To add a header with no content (nothing to the right side of the colon), use the form 'MyHeader;' (note the ending semicolon).
+<p class="level1">Pass a pointer to a linked list of HTTP headers to pass to the server and/or proxy in your HTTP request. The same list is used for both host and proxy requests!
+<p class="level1">The linked list should be a fully valid list of <span Class="bold">struct curl_slist</span> structs properly filled in. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to create the list and <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a> 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 content as in 'Accept:' (no data on the right side of the colon), the internally used header will get disabled. With this option you can add new headers, replace internal headers and remove internal headers. To add a header with no content (nothing to the right side of the colon), use the form 'MyHeader;' (note the ending semicolon).
<p class="level1">The headers included in the linked list must not be CRLF-terminated, because curl adds CRLF after each header item. Failure to comply with this will result in strange bugs because the server will most likely ignore part of the headers you specified.
<p class="level1">The first line in a request (containing the method, usually a GET or POST) is not a header and cannot be replaced using this option. Only the lines following the request-line are headers. Adding this method line in this list of headers will only cause your request to send an invalid header.
<p class="level1">Pass a NULL to this to reset back to no custom headers.
<p class="level1">The most commonly replaced headers have "shortcuts" in the options <a class="emphasis" href="#CURLOPTCOOKIE">CURLOPT_COOKIE</a>, <a class="emphasis" href="#CURLOPTUSERAGENT">CURLOPT_USERAGENT</a> and <a class="emphasis" href="#CURLOPTREFERER">CURLOPT_REFERER</a>.
+<p class="level1">There's an alternative option that sets or replaces headers only for requests that are sent with CONNECT to a proxy: <a class="emphasis" href="#CURLOPTPROXYHEADER">CURLOPT_PROXYHEADER</a>. Use <a class="emphasis" href="#CURLOPTHEADEROPT">CURLOPT_HEADEROPT</a> to control the behavior.
+<p class="level0"><a name="CURLOPTHEADEROPT"></a><span class="nroffip">CURLOPT_HEADEROPT</span>
+<p class="level1">Pass a long that is a bitmask of options of how to deal with headers. The two mutually exclusive options are:
+<p class="level1">CURLHEADER_UNIFIED - keep working as before. This means CURLOPT_HTTPHEADER headers will be used in requests both to servers and proxies. With this option enabled, <a class="emphasis" href="#CURLOPTPROXYHEADER">CURLOPT_PROXYHEADER</a> will not have any effect.
+<p class="level1">CURLHEADER_SEPARATE - makes <a class="emphasis" href="#CURLOPTHTTPHEADER">CURLOPT_HTTPHEADER</a> headers only get sent to a server and not to a proxy. Proxy headers must be set with <a class="emphasis" href="#CURLOPTPROXYHEADER">CURLOPT_PROXYHEADER</a> to get used. Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers. When doing CONNECT, libcurl will send <a class="emphasis" href="#CURLOPTPROXYHEADER">CURLOPT_PROXYHEADER</a> headers only do the proxy and then <a class="emphasis" href="#CURLOPTHTTPHEADER">CURLOPT_HTTPHEADER</a> headers only to the server.
+<p class="level1">(Added in 7.37.0)
+<p class="level0"><a name="CURLOPTPROXYHEADER"></a><span class="nroffip">CURLOPT_PROXYHEADER</span>
+<p class="level1">Pass a pointer to a linked list of HTTP headers to pass in your HTTP request sent to a proxy. The rules for this list is identical to the <a class="emphasis" href="#CURLOPTHTTPHEADER">CURLOPT_HTTPHEADER</a> option's.
+<p class="level1">The headers set with this option is only ever used in requests sent to a proxy - when there's also a request sent to a host.
+<p class="level1">The first line in a request (containing the method, usually a GET or POST) is NOT a header and cannot be replaced using this option. Only the lines following the request-line are headers. Adding this method line in this list of headers will only cause your request to send an invalid header.
+<p class="level1">Pass a NULL to this to reset back to no custom headers.
+<p class="level1">This option was added in libcurl 7.37.0.
<p class="level0"><a name="CURLOPTHTTP200ALIASES"></a><span class="nroffip">CURLOPT_HTTP200ALIASES</span>
<p class="level1">Pass a pointer to a linked list of aliases to be treated as valid HTTP 200 responses. Some servers respond with a custom header response line. For example, IceCast servers respond with "ICY 200 OK". By including this string in your list of aliases, the response will be treated as a valid HTTP header line such as "HTTP/1.0 200 OK". (Added in 7.10.3)
<p class="level1">The linked list should be a fully valid list of struct curl_slist structs, and be properly filled in. Use <a class="emphasis" href="./curl_slist_append.html">curl_slist_append(3)</a> to create the list and <a class="emphasis" href="./curl_slist_free_all.html">curl_slist_free_all(3)</a> to clean up an entire list.
@@ -1003,6 +1020,15 @@ p.roffit {
<p class="level1">Pass a pointer to a zero terminated string holding the file name of the known_host file to use. The known_hosts file should use the OpenSSH file format as supported by libssh2. If this file is specified, libcurl will only accept connections with hosts that are known and present in that file, with a matching public key. Use <a class="emphasis" href="#CURLOPTSSHKEYFUNCTION">CURLOPT_SSH_KEYFUNCTION</a> to alter the default behavior on host and key (mis)matching. (Added in 7.19.6)
<p class="level0"><a name="CURLOPTSSHKEYFUNCTION"></a><span class="nroffip">CURLOPT_SSH_KEYFUNCTION</span>
<p class="level1">Pass a pointer to a curl_sshkeycallback function. It gets called when the known_host matching has been done, to allow the application to act and decide for libcurl how to proceed. The callback will only be called if <a class="emphasis" href="#CURLOPTSSHKNOWNHOSTS">CURLOPT_SSH_KNOWNHOSTS</a> is also set.
+<p class="level1"><pre>
+<p class="level1">int curl_sshkeycallback (CURL *easy, /* easy handle */
+ &nbsp; const struct curl_khkey *knownkey, /* known */
+ &nbsp; const struct curl_khkey *foundkey, /* found */
+ &nbsp; enum curl_khmatch, /* libcurl's view on the keys */
+ &nbsp; void *clientp);
+ </pre>
+
+<p class="level1">
<p class="level1">The curl_sshkeycallback function gets passed the CURL handle, the key from the known_hosts file, the key from the remote site, info from libcurl on the matching status and a custom pointer (set with <a class="emphasis" href="#CURLOPTSSHKEYDATA">CURLOPT_SSH_KEYDATA</a>). It MUST return one of the following return codes to tell libcurl how to act:
<p class="level2">
<p class="level1"><a name="CURLKHSTATFINEADDTOFILE"></a><span class="nroffip">CURLKHSTAT_FINE_ADD_TO_FILE</span>
diff --git a/docs/libcurl/curl_easy_setopt.pdf b/docs/libcurl/curl_easy_setopt.pdf
index ab701b06..7a5a74ac 100644
--- a/docs/libcurl/curl_easy_setopt.pdf
+++ b/docs/libcurl/curl_easy_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_strerror.pdf b/docs/libcurl/curl_easy_strerror.pdf
index 125545c9..0dd503c8 100644
--- a/docs/libcurl/curl_easy_strerror.pdf
+++ b/docs/libcurl/curl_easy_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_easy_unescape.pdf b/docs/libcurl/curl_easy_unescape.pdf
index 85ebc18c..b9d28bd7 100644
--- a/docs/libcurl/curl_easy_unescape.pdf
+++ b/docs/libcurl/curl_easy_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_escape.pdf b/docs/libcurl/curl_escape.pdf
index 73392344..c819971b 100644
--- a/docs/libcurl/curl_escape.pdf
+++ b/docs/libcurl/curl_escape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formadd.pdf b/docs/libcurl/curl_formadd.pdf
index 19c25e60..1c7979f8 100644
--- a/docs/libcurl/curl_formadd.pdf
+++ b/docs/libcurl/curl_formadd.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formfree.pdf b/docs/libcurl/curl_formfree.pdf
index 1aad1229..d0c5f391 100644
--- a/docs/libcurl/curl_formfree.pdf
+++ b/docs/libcurl/curl_formfree.pdf
Binary files differ
diff --git a/docs/libcurl/curl_formget.pdf b/docs/libcurl/curl_formget.pdf
index 93fd662f..e1695f9b 100644
--- a/docs/libcurl/curl_formget.pdf
+++ b/docs/libcurl/curl_formget.pdf
Binary files differ
diff --git a/docs/libcurl/curl_free.pdf b/docs/libcurl/curl_free.pdf
index 43307abc..984cdd5f 100644
--- a/docs/libcurl/curl_free.pdf
+++ b/docs/libcurl/curl_free.pdf
@@ -63,12 +63,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:43bdbf15-eccf-11ee-0000-156c038b2dc2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
-<rdf:Description rdf:about='uuid:43bdbf15-eccf-11ee-0000-156c038b2dc2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-03-26T07:49:02+01:00</xmp:ModifyDate>
-<xmp:CreateDate>2014-03-26T07:49:02+01:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:91b7c077-18c9-11ef-0000-156c038b2dc2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
+<rdf:Description rdf:about='uuid:91b7c077-18c9-11ef-0000-156c038b2dc2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-05-21T07:59:07+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2014-05-21T07:59:07+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.2</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:43bdbf15-eccf-11ee-0000-156c038b2dc2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:43bdbf15-eccf-11ee-0000-156c038b2dc2'/>
-<rdf:Description rdf:about='uuid:43bdbf15-eccf-11ee-0000-156c038b2dc2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:91b7c077-18c9-11ef-0000-156c038b2dc2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:91b7c077-18c9-11ef-0000-156c038b2dc2'/>
+<rdf:Description rdf:about='uuid:91b7c077-18c9-11ef-0000-156c038b2dc2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -78,8 +78,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.05)
-/CreationDate(D:20140326074902+01'00')
-/ModDate(D:20140326074902+01'00')
+/CreationDate(D:20140521075907+02'00')
+/ModDate(D:20140521075907+02'00')
/Creator(groff version 1.22.2)>>endobj
xref
0 14
@@ -99,7 +99,7 @@ xref
0000001273 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<77BB764797E05DABA6B0066A7E2C72C8><77BB764797E05DABA6B0066A7E2C72C8>]
+/ID [<CED0AF820D879B0982605660FA99AEB6><CED0AF820D879B0982605660FA99AEB6>]
>>
startxref
2850
diff --git a/docs/libcurl/curl_getdate.pdf b/docs/libcurl/curl_getdate.pdf
index 98c684b7..f36170fb 100644
--- a/docs/libcurl/curl_getdate.pdf
+++ b/docs/libcurl/curl_getdate.pdf
Binary files differ
diff --git a/docs/libcurl/curl_getenv.pdf b/docs/libcurl/curl_getenv.pdf
index 46a7b992..9dd55588 100644
--- a/docs/libcurl/curl_getenv.pdf
+++ b/docs/libcurl/curl_getenv.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_cleanup.pdf b/docs/libcurl/curl_global_cleanup.pdf
index 3b316ab8..dc7cbf3e 100644
--- a/docs/libcurl/curl_global_cleanup.pdf
+++ b/docs/libcurl/curl_global_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init.pdf b/docs/libcurl/curl_global_init.pdf
index 859696fe..ae0d3ae7 100644
--- a/docs/libcurl/curl_global_init.pdf
+++ b/docs/libcurl/curl_global_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_global_init_mem.pdf b/docs/libcurl/curl_global_init_mem.pdf
index b36ba456..0a0f2cbf 100644
--- a/docs/libcurl/curl_global_init_mem.pdf
+++ b/docs/libcurl/curl_global_init_mem.pdf
Binary files differ
diff --git a/docs/libcurl/curl_mprintf.pdf b/docs/libcurl/curl_mprintf.pdf
index 9f54a68e..5bacb4af 100644
--- a/docs/libcurl/curl_mprintf.pdf
+++ b/docs/libcurl/curl_mprintf.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_add_handle.pdf b/docs/libcurl/curl_multi_add_handle.pdf
index 063e2e00..b68fbeee 100644
--- a/docs/libcurl/curl_multi_add_handle.pdf
+++ b/docs/libcurl/curl_multi_add_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_assign.pdf b/docs/libcurl/curl_multi_assign.pdf
index d0d7950c..3a3351a0 100644
--- a/docs/libcurl/curl_multi_assign.pdf
+++ b/docs/libcurl/curl_multi_assign.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_cleanup.pdf b/docs/libcurl/curl_multi_cleanup.pdf
index eec85d5f..b14fc923 100644
--- a/docs/libcurl/curl_multi_cleanup.pdf
+++ b/docs/libcurl/curl_multi_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_fdset.pdf b/docs/libcurl/curl_multi_fdset.pdf
index d605ee1e..79de089f 100644
--- a/docs/libcurl/curl_multi_fdset.pdf
+++ b/docs/libcurl/curl_multi_fdset.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_info_read.pdf b/docs/libcurl/curl_multi_info_read.pdf
index db9516a8..ad47bc72 100644
--- a/docs/libcurl/curl_multi_info_read.pdf
+++ b/docs/libcurl/curl_multi_info_read.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_init.pdf b/docs/libcurl/curl_multi_init.pdf
index a519dd2a..ca2bdbdd 100644
--- a/docs/libcurl/curl_multi_init.pdf
+++ b/docs/libcurl/curl_multi_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_perform.pdf b/docs/libcurl/curl_multi_perform.pdf
index 27fa8c76..a53d3b1d 100644
--- a/docs/libcurl/curl_multi_perform.pdf
+++ b/docs/libcurl/curl_multi_perform.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_remove_handle.pdf b/docs/libcurl/curl_multi_remove_handle.pdf
index ee04c884..74a5fcfd 100644
--- a/docs/libcurl/curl_multi_remove_handle.pdf
+++ b/docs/libcurl/curl_multi_remove_handle.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_setopt.pdf b/docs/libcurl/curl_multi_setopt.pdf
index 0e91a2f0..60afa109 100644
--- a/docs/libcurl/curl_multi_setopt.pdf
+++ b/docs/libcurl/curl_multi_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket.pdf b/docs/libcurl/curl_multi_socket.pdf
index 02fc94ca..e5d19e0a 100644
--- a/docs/libcurl/curl_multi_socket.pdf
+++ b/docs/libcurl/curl_multi_socket.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_socket_action.pdf b/docs/libcurl/curl_multi_socket_action.pdf
index 3610efd1..6ef4bba6 100644
--- a/docs/libcurl/curl_multi_socket_action.pdf
+++ b/docs/libcurl/curl_multi_socket_action.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_strerror.pdf b/docs/libcurl/curl_multi_strerror.pdf
index e41118f0..3f10476b 100644
--- a/docs/libcurl/curl_multi_strerror.pdf
+++ b/docs/libcurl/curl_multi_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_timeout.pdf b/docs/libcurl/curl_multi_timeout.pdf
index 050b0e65..2e74af45 100644
--- a/docs/libcurl/curl_multi_timeout.pdf
+++ b/docs/libcurl/curl_multi_timeout.pdf
Binary files differ
diff --git a/docs/libcurl/curl_multi_wait.pdf b/docs/libcurl/curl_multi_wait.pdf
index 608f09b4..cf2e53b1 100644
--- a/docs/libcurl/curl_multi_wait.pdf
+++ b/docs/libcurl/curl_multi_wait.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_cleanup.pdf b/docs/libcurl/curl_share_cleanup.pdf
index 1fd4bfb2..3dafdf10 100644
--- a/docs/libcurl/curl_share_cleanup.pdf
+++ b/docs/libcurl/curl_share_cleanup.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_init.pdf b/docs/libcurl/curl_share_init.pdf
index 6b8615ff..3f2b28e6 100644
--- a/docs/libcurl/curl_share_init.pdf
+++ b/docs/libcurl/curl_share_init.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_setopt.pdf b/docs/libcurl/curl_share_setopt.pdf
index 88d21bdc..2f0ec3ff 100644
--- a/docs/libcurl/curl_share_setopt.pdf
+++ b/docs/libcurl/curl_share_setopt.pdf
Binary files differ
diff --git a/docs/libcurl/curl_share_strerror.pdf b/docs/libcurl/curl_share_strerror.pdf
index 79b55e12..01771246 100644
--- a/docs/libcurl/curl_share_strerror.pdf
+++ b/docs/libcurl/curl_share_strerror.pdf
Binary files differ
diff --git a/docs/libcurl/curl_slist_append.pdf b/docs/libcurl/curl_slist_append.pdf
index a3c6e591..bcfe6f3a 100644
--- a/docs/libcurl/curl_slist_append.pdf
+++ b/docs/libcurl/curl_slist_append.pdf
@@ -72,12 +72,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-b52b3dcd9ad6' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-b52b3dcd9ad6' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-03-26T07:49:01+01:00</xmp:ModifyDate>
-<xmp:CreateDate>2014-03-26T07:49:01+01:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-b52b3dcd9ad6' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-b52b3dcd9ad6' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-05-21T07:59:05+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2014-05-21T07:59:05+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.2</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-b52b3dcd9ad6' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:43252895-eccf-11ee-0000-b52b3dcd9ad6'/>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-b52b3dcd9ad6' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-b52b3dcd9ad6' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:911f29f7-18c9-11ef-0000-b52b3dcd9ad6'/>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-b52b3dcd9ad6' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -87,8 +87,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.05)
-/CreationDate(D:20140326074901+01'00')
-/ModDate(D:20140326074901+01'00')
+/CreationDate(D:20140521075905+02'00')
+/ModDate(D:20140521075905+02'00')
/Creator(groff version 1.22.2)>>endobj
xref
0 15
@@ -109,7 +109,7 @@ xref
0000001787 00000 n
trailer
<< /Size 15 /Root 1 0 R /Info 2 0 R
-/ID [<31580AEFCA09E361092EBB975190F201><31580AEFCA09E361092EBB975190F201>]
+/ID [<9C5EC16AFD4D898BC2DF684C6B07BEA2><9C5EC16AFD4D898BC2DF684C6B07BEA2>]
>>
startxref
3364
diff --git a/docs/libcurl/curl_slist_free_all.pdf b/docs/libcurl/curl_slist_free_all.pdf
index 97684dad..171a1702 100644
--- a/docs/libcurl/curl_slist_free_all.pdf
+++ b/docs/libcurl/curl_slist_free_all.pdf
@@ -62,12 +62,12 @@ endobj
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-224f381b10d2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-224f381b10d2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-03-26T07:49:01+01:00</xmp:ModifyDate>
-<xmp:CreateDate>2014-03-26T07:49:01+01:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-224f381b10d2' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.05'/>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-224f381b10d2' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2014-05-21T07:59:06+02:00</xmp:ModifyDate>
+<xmp:CreateDate>2014-05-21T07:59:06+02:00</xmp:CreateDate>
<xmp:CreatorTool>groff version 1.22.2</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-224f381b10d2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:43252895-eccf-11ee-0000-224f381b10d2'/>
-<rdf:Description rdf:about='uuid:43252895-eccf-11ee-0000-224f381b10d2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-224f381b10d2' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:911f29f7-18c9-11ef-0000-224f381b10d2'/>
+<rdf:Description rdf:about='uuid:911f29f7-18c9-11ef-0000-224f381b10d2' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -77,8 +77,8 @@ endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.05)
-/CreationDate(D:20140326074901+01'00')
-/ModDate(D:20140326074901+01'00')
+/CreationDate(D:20140521075906+02'00')
+/ModDate(D:20140521075906+02'00')
/Creator(groff version 1.22.2)>>endobj
xref
0 14
@@ -98,7 +98,7 @@ xref
0000001254 00000 n
trailer
<< /Size 14 /Root 1 0 R /Info 2 0 R
-/ID [<A82760907F64424CEF1C129A3F36A247><A82760907F64424CEF1C129A3F36A247>]
+/ID [<1EA6249AF85F135492B65101A7A4D05A><1EA6249AF85F135492B65101A7A4D05A>]
>>
startxref
2831
diff --git a/docs/libcurl/curl_strequal.pdf b/docs/libcurl/curl_strequal.pdf
index 1790ea69..6520dd95 100644
--- a/docs/libcurl/curl_strequal.pdf
+++ b/docs/libcurl/curl_strequal.pdf
Binary files differ
diff --git a/docs/libcurl/curl_unescape.pdf b/docs/libcurl/curl_unescape.pdf
index c9aff67d..64f29508 100644
--- a/docs/libcurl/curl_unescape.pdf
+++ b/docs/libcurl/curl_unescape.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version.pdf b/docs/libcurl/curl_version.pdf
index b938e361..f8ab06ec 100644
--- a/docs/libcurl/curl_version.pdf
+++ b/docs/libcurl/curl_version.pdf
Binary files differ
diff --git a/docs/libcurl/curl_version_info.pdf b/docs/libcurl/curl_version_info.pdf
index 5d03bac2..92507fdf 100644
--- a/docs/libcurl/curl_version_info.pdf
+++ b/docs/libcurl/curl_version_info.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-easy.pdf b/docs/libcurl/libcurl-easy.pdf
index f07d455a..a624e7ae 100644
--- a/docs/libcurl/libcurl-easy.pdf
+++ b/docs/libcurl/libcurl-easy.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-errors.pdf b/docs/libcurl/libcurl-errors.pdf
index d13c13d5..e9c1051a 100644
--- a/docs/libcurl/libcurl-errors.pdf
+++ b/docs/libcurl/libcurl-errors.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-multi.pdf b/docs/libcurl/libcurl-multi.pdf
index 83ec7781..2dc932fd 100644
--- a/docs/libcurl/libcurl-multi.pdf
+++ b/docs/libcurl/libcurl-multi.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-share.pdf b/docs/libcurl/libcurl-share.pdf
index 8f2b7352..5999f01e 100644
--- a/docs/libcurl/libcurl-share.pdf
+++ b/docs/libcurl/libcurl-share.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl-tutorial.pdf b/docs/libcurl/libcurl-tutorial.pdf
index 2a2e68e5..a4a8aa92 100644
--- a/docs/libcurl/libcurl-tutorial.pdf
+++ b/docs/libcurl/libcurl-tutorial.pdf
Binary files differ
diff --git a/docs/libcurl/libcurl.pdf b/docs/libcurl/libcurl.pdf
index e2d41f79..adc08d66 100644
--- a/docs/libcurl/libcurl.pdf
+++ b/docs/libcurl/libcurl.pdf
Binary files differ
diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions
index 2e9fc4da..26d53fe1 100644
--- a/docs/libcurl/symbols-in-versions
+++ b/docs/libcurl/symbols-in-versions
@@ -193,6 +193,8 @@ CURLFTP_CREATE_DIR_RETRY 7.19.4
CURLGSSAPI_DELEGATION_FLAG 7.22.0
CURLGSSAPI_DELEGATION_NONE 7.22.0
CURLGSSAPI_DELEGATION_POLICY_FLAG 7.22.0
+CURLHEADER_SEPARATE 7.37.0
+CURLHEADER_UNIFIED 7.37.0
CURLINFO_APPCONNECT_TIME 7.19.0
CURLINFO_CERTINFO 7.19.1
CURLINFO_CONDITION_UNMET 7.19.4
@@ -370,6 +372,7 @@ CURLOPT_GSSAPI_DELEGATION 7.22.0
CURLOPT_HEADER 7.1
CURLOPT_HEADERDATA 7.10
CURLOPT_HEADERFUNCTION 7.7.2
+CURLOPT_HEADEROPT 7.37.0
CURLOPT_HTTP200ALIASES 7.10.3
CURLOPT_HTTPAUTH 7.10.6
CURLOPT_HTTPGET 7.8.1
@@ -439,6 +442,7 @@ CURLOPT_PROGRESSFUNCTION 7.1 7.32.0
CURLOPT_PROTOCOLS 7.19.4
CURLOPT_PROXY 7.1
CURLOPT_PROXYAUTH 7.10.7
+CURLOPT_PROXYHEADER 7.37.0
CURLOPT_PROXYPASSWORD 7.19.1
CURLOPT_PROXYPORT 7.1
CURLOPT_PROXYTYPE 7.10
@@ -496,11 +500,11 @@ CURLOPT_SSLKEY 7.9.3
CURLOPT_SSLKEYPASSWD 7.9.3 7.17.0
CURLOPT_SSLKEYTYPE 7.9.3
CURLOPT_SSLVERSION 7.1
-CURLOPT_SSL_ENABLE_ALPN 7.36.0
-CURLOPT_SSL_ENABLE_NPN 7.36.0
CURLOPT_SSL_CIPHER_LIST 7.9
CURLOPT_SSL_CTX_DATA 7.10.6
CURLOPT_SSL_CTX_FUNCTION 7.10.6
+CURLOPT_SSL_ENABLE_ALPN 7.36.0
+CURLOPT_SSL_ENABLE_NPN 7.36.0
CURLOPT_SSL_OPTIONS 7.25.0
CURLOPT_SSL_SESSIONID_CACHE 7.16.0
CURLOPT_SSL_VERIFYHOST 7.8.1
diff --git a/docs/mk-ca-bundle.html b/docs/mk-ca-bundle.html
index a9c55154..b783d583 100644
--- a/docs/mk-ca-bundle.html
+++ b/docs/mk-ca-bundle.html
@@ -47,8 +47,8 @@ p.roffit {
<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
<p class="level0">mk-ca-bundle - convert mozilla's certdata.txt to PEM format <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
-<p class="level0">mk-ca-bundle [bilnqtuv] <span Class="emphasis">[outputfile]</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
-<p class="level0">The mk-ca-bundle tool downloads the certdata.txt file from Mozilla's source tree over HTTP, then parses certdata.txt and extracts CA Root Certificates into PEM format. These are then processed with the OpenSSL commandline tool to produce the final ca-bundle file.
+<p class="level0">mk-ca-bundle [bilnpqstuv] <span Class="emphasis">[outputfile]</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
+<p class="level0">The mk-ca-bundle tool downloads the certdata.txt file from Mozilla's source tree over HTTP, then parses certdata.txt and extracts certificates into PEM format. By default, only CA root certificates trusted to issue SSL server authentication certificates are extracted. These are then processed with the OpenSSL commandline tool to produce the final ca-bundle file.
<p class="level0">The default <span Class="emphasis">outputfile</span> name is <span Class="bold">ca-bundle.crt</span>. By setting it to '-' (a single dash) you will get the output sent to STDOUT instead of a file.
<p class="level0">The PEM format this scripts uses for output makes the result readily available for use by just about all OpenSSL or GnuTLS powered applications, such as curl, wget and more. <a name="OPTIONS"></a><h2 class="nroffsh">OPTIONS</h2>
<p class="level0">The following options are supported:
@@ -64,10 +64,25 @@ p.roffit {
<p class="level1">print license info about certdata.txt
<p class="level0"><a name="-n"></a><span class="nroffip">-n</span>
<p class="level1">no download of certdata.txt (to use existing)
+<p class="level0"><a name="-p"></a><span class="nroffip">-p [purposes]:[levels]</span>
+<p class="level1">list of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. The default is to include all certificates trusted to issue SSL Server certificates (SERVER_AUTH:TRUSTED_DELEGATOR).
+<p class="level1">(Added in version 1.21, Perl only)
+<p class="level1">Valid purposes are:
+<p class="level2">ALL, DIGITAL_SIGNATURE, NON_REPUDIATION, KEY_ENCIPHERMENT, DATA_ENCIPHERMENT, KEY_AGREEMENT, KEY_CERT_SIGN, CRL_SIGN, SERVER_AUTH (default), CLIENT_AUTH, CODE_SIGNING, EMAIL_PROTECTION, IPSEC_END_SYSTEM, IPSEC_TUNNEL, IPSEC_USER, TIME_STAMPING, STEP_UP_APPROVED
+<p class="level1">
+<p class="level1">Valid trust levels are:
+<p class="level2">ALL, TRUSTED_DELEGATOR (default), NOT_TRUSTED, MUST_VERIFY_TRUST, TRUSTED
+<p class="level1">
<p class="level0"><a name="-q"></a><span class="nroffip">-q</span>
<p class="level1">be really quiet (no progress output at all)
<p class="level0"><a name="-t"></a><span class="nroffip">-t</span>
<p class="level1">include plain text listing of certificates
+<p class="level0"><a name="-s"></a><span class="nroffip">-s [algorithms]</span>
+<p class="level1">comma separated list of signature algorithms with which to hash/fingerprint each certificate and output when run in plain text mode.
+<p class="level1">(Added in version 1.21, Perl only)
+<p class="level1">Valid algorithms are:
+<p class="level2">ALL, NONE, MD5 (default), SHA1, SHA256, SHA512
+<p class="level1">
<p class="level0"><a name="-u"></a><span class="nroffip">-u</span>
<p class="level1">unlink (remove) certdata.txt after processing
<p class="level0"><a name="-v"></a><span class="nroffip">-v</span>
diff --git a/docs/mk-ca-bundle.pdf b/docs/mk-ca-bundle.pdf
index 89f06ab4..9dd5eb1b 100644
--- a/docs/mk-ca-bundle.pdf
+++ b/docs/mk-ca-bundle.pdf
Binary files differ