gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 159/163: Merge tag 'curl-7_61_0'


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 159/163: Merge tag 'curl-7_61_0'
Date: Sun, 05 Aug 2018 12:38:05 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit e811856677be94017c4d2bb333830a7f743649a6
Merge: cb5937f5c eb8138405
Author: Nils Gillmann <address@hidden>
AuthorDate: Sun Aug 5 10:00:26 2018 +0000

    Merge tag 'curl-7_61_0'
    
    curl 7.61.0
    
    Signed-off-by: Nils Gillmann <address@hidden>

 .mailmap                                           |   2 +
 .travis.yml                                        |  10 +-
 CMake/CurlTests.c                                  |  30 +-
 CMake/Macros.cmake                                 |  28 +-
 CMake/OtherTests.cmake                             |  61 ++-
 CMake/Platforms/WindowsCache.cmake                 |   7 +-
 CMake/Utilities.cmake                              |  41 +-
 CMakeLists.txt                                     | 126 +++---
 Makefile.dist                                      |  26 +-
 RELEASE-NOTES                                      | 435 ++++++++++-----------
 acinclude.m4                                       | 311 +--------------
 configure.ac                                       |  30 +-
 docs/CIPHERS.md                                    |  61 +++
 docs/DEPRECATE.md                                  |  73 ++++
 docs/GOVERNANCE.md                                 | 144 +++++++
 docs/INSTALL.md                                    |  52 +--
 docs/KNOWN_BUGS                                    |  85 +++-
 docs/MAIL-ETIQUETTE                                |   2 +-
 docs/Makefile.am                                   |  47 ++-
 docs/{RELEASE-PROCEDURE => RELEASE-PROCEDURE.md}   |  13 +-
 docs/THANKS                                        |  25 ++
 docs/TODO                                          |  29 +-
 docs/cmdline-opts/Makefile.inc                     |   3 +-
 docs/cmdline-opts/cert-type.d                      |   6 +-
 docs/cmdline-opts/ciphers.d                        |   2 +-
 docs/cmdline-opts/data.d                           |   2 +-
 docs/cmdline-opts/disallow-username-in-url.d       |   7 +
 docs/cmdline-opts/form.d                           |   2 +-
 docs/cmdline-opts/gen.pl                           |   6 +
 docs/cmdline-opts/haproxy-protocol.d               |   4 +-
 docs/cmdline-opts/ntlm.d                           |   2 +-
 docs/cmdline-opts/post303.d                        |   9 +-
 docs/cmdline-opts/proxy-service-name.d             |   2 +-
 docs/cmdline-opts/proxy-tls13-ciphers.d            |  12 +
 docs/cmdline-opts/remote-time.d                    |   4 +-
 docs/cmdline-opts/retry-delay.d                    |   4 +-
 docs/cmdline-opts/retry-max-time.d                 |   2 +-
 docs/cmdline-opts/sasl-ir.d                        |   2 +-
 docs/cmdline-opts/show-error.d                     |   2 +-
 docs/cmdline-opts/silent.d                         |   2 +-
 docs/cmdline-opts/ssl-reqd.d                       |   2 +-
 docs/cmdline-opts/ssl.d                            |   2 +-
 docs/cmdline-opts/styled-output.d                  |   6 +
 docs/cmdline-opts/tftp-blksize.d                   |   2 +-
 docs/cmdline-opts/tls13-ciphers.d                  |  12 +
 docs/cmdline-opts/tlsv1.1.d                        |   2 +-
 docs/cmdline-opts/tlsv1.2.d                        |   2 +-
 docs/cmdline-opts/tlsv1.3.d                        |   2 +-
 docs/cmdline-opts/tlsv1.d                          |   4 +-
 docs/cmdline-opts/url.d                            |   2 +-
 docs/examples/Makefile.inc                         |   2 +-
 docs/examples/Makefile.netware                     |   4 +-
 docs/examples/cacertinmem.c                        |   4 +-
 docs/examples/chkspeed.c                           |  26 +-
 docs/examples/crawler.c                            | 210 ++++++++++
 docs/examples/curlx.c                              |   2 +-
 docs/examples/debug.c                              |   4 +-
 docs/examples/fileupload.c                         |  12 +-
 docs/examples/getinmemory.c                        |   2 +-
 docs/examples/http2-download.c                     |   4 +-
 docs/examples/http2-serverpush.c                   |   8 +-
 docs/examples/http2-upload.c                       |   4 +-
 docs/examples/multi-debugcallback.c                |   4 +-
 docs/examples/multi-uv.c                           |   4 +-
 docs/examples/progressfunc.c                       |  40 +-
 docs/examples/smtp-mime.c                          |   2 +-
 docs/examples/threaded-shared-conn.c               |   2 +-
 docs/libcurl/gnurl_easy_getinfo.3                  |  46 ++-
 docs/libcurl/gnurl_easy_setopt.3                   |   8 +-
 docs/libcurl/gnurl_multi_add_handle.3              |  12 +-
 docs/libcurl/gnurl_multi_socket.3                  |  21 +-
 docs/libcurl/gnurl_multi_socket_action.3           |  10 +-
 docs/libcurl/gnurl_share_setopt.3                  |   9 +
 docs/libcurl/libgnurl-multi.3                      |  20 +-
 docs/libcurl/libgnurl-security.3                   |  24 +-
 ...CONNECT_TIME.3 => CURLINFO_APPCONNECT_TIME_T.3} |  26 +-
 ...INFO_TOTAL_TIME.3 => CURLINFO_CONNECT_TIME_T.3} |  27 +-
 ...ELOOKUP_TIME.3 => CURLINFO_NAMELOOKUP_TIME_T.3} |  25 +-
 ...ANSFER_TIME.3 => CURLINFO_PRETRANSFER_TIME_T.3} |  24 +-
 ..._REDIRECT_TIME.3 => CURLINFO_REDIRECT_TIME_T.3} |  28 +-
 ...SFER_TIME.3 => CURLINFO_STARTTRANSFER_TIME_T.3} |  26 +-
 ...INFO_CONNECT_TIME.3 => CURLINFO_TOTAL_TIME_T.3} |  26 +-
 ...TTPGET.3 => CURLOPT_DISALLOW_USERNAME_IN_URL.3} |  39 +-
 ...UTH2_BEARER.3 => CURLOPT_PROXY_TLS13_CIPHERS.3} |  39 +-
 ...PT_XOAUTH2_BEARER.3 => CURLOPT_TLS13_CIPHERS.3} |  38 +-
 docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3         |   2 +-
 docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3        |   2 +-
 docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3   |   2 +-
 docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3          |  35 +-
 docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3       |  20 +-
 docs/libcurl/opts/GNURLOPT_HAPROXYPROTOCOL.3       |   8 +-
 docs/libcurl/opts/GNURLOPT_HTTPAUTH.3              |   8 +-
 docs/libcurl/opts/GNURLOPT_HTTPGET.3               |  13 +-
 docs/libcurl/opts/GNURLOPT_INTERFACE.3             |   5 +-
 docs/libcurl/opts/GNURLOPT_POST.3                  |   6 +-
 docs/libcurl/opts/GNURLOPT_POSTFIELDS.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_RESOLVE.3               |   5 +
 docs/libcurl/opts/GNURLOPT_SSLVERSION.3            |  42 +-
 docs/libcurl/opts/GNURLOPT_SSL_VERIFYPEER.3        |  12 +-
 docs/libcurl/opts/GNURLOPT_WILDCARDMATCH.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_XOAUTH2_BEARER.3        |   8 +-
 docs/libcurl/opts/Makefile.inc                     |  10 +
 docs/libcurl/symbols-in-versions                   |  18 +-
 include/README                                     |  19 +-
 include/gnurl/curl.h                               |  22 +-
 include/gnurl/curlver.h                            |   6 +-
 include/gnurl/system.h                             |  20 +-
 include/gnurl/typecheck-gcc.h                      |   2 +-
 lib/CMakeLists.txt                                 |   7 -
 lib/Makefile.am                                    |   4 +-
 lib/Makefile.b32                                   | 185 ---------
 lib/Makefile.inc                                   |   4 +-
 lib/Makefile.netware                               |   4 +-
 lib/asyn-ares.c                                    |  19 +-
 lib/asyn-thread.c                                  |  12 +-
 lib/base64.c                                       |   3 +-
 lib/checksrc.pl                                    |  12 +
 lib/conncache.c                                    |  37 +-
 lib/conncache.h                                    |   4 +-
 lib/connect.c                                      |  12 +-
 lib/content_encoding.c                             |  14 +-
 lib/cookie.c                                       |  54 +--
 lib/curl_addrinfo.c                                |   3 +-
 lib/curl_config.h.cmake                            |   6 +
 lib/curl_fnmatch.c                                 |  43 +-
 lib/curl_sasl.c                                    |   3 +-
 lib/curl_setup.h                                   |  10 +-
 lib/dict.c                                         |   6 +-
 lib/easy.c                                         |  27 +-
 lib/escape.c                                       |   6 +-
 lib/file.c                                         |   8 +-
 lib/formdata.c                                     |   5 +-
 lib/ftp.c                                          |  16 +-
 lib/getinfo.c                                      |  22 ++
 lib/hash.c                                         |  11 +-
 lib/hmac.c                                         |   4 +-
 lib/hostip.c                                       |  34 +-
 lib/hostip6.c                                      |  35 +-
 lib/http.c                                         | 101 +++--
 lib/http2.c                                        |  16 +-
 lib/http_proxy.c                                   |   6 +-
 lib/imap.c                                         |  16 +-
 lib/inet_ntop.c                                    |   2 +-
 lib/ldap.c                                         |   9 -
 lib/md5.c                                          |   2 +-
 lib/memdebug.h                                     |   9 +-
 lib/mime.c                                         |  44 +--
 lib/mk-ca-bundle.pl                                |   7 +-
 lib/multi.c                                        |  73 +++-
 lib/multihandle.h                                  |   8 +-
 lib/netrc.c                                        |   4 +-
 lib/pingpong.c                                     |  10 +-
 lib/pipeline.c                                     |   3 +-
 lib/pop3.c                                         |   4 +-
 lib/progress.c                                     |  39 +-
 lib/progress.h                                     |  13 -
 lib/psl.c                                          | 111 ++++++
 tests/server/testpart.c => lib/psl.h               |  45 +--
 lib/rand.c                                         |   2 +-
 lib/rtsp.c                                         |   6 +-
 lib/security.c                                     |   4 +-
 lib/select.c                                       |   8 +-
 lib/sendf.c                                        |  48 +--
 lib/sendf.h                                        |   5 +-
 lib/setopt.c                                       |  34 +-
 lib/sha256.c                                       |  12 +-
 lib/share.c                                        |  11 +-
 lib/share.h                                        |   6 +-
 lib/smtp.c                                         |   5 +-
 lib/socks.c                                        |   8 +-
 lib/splay.c                                        |   3 +-
 lib/ssh-libssh.c                                   |  27 +-
 lib/ssh.c                                          |   8 +-
 lib/telnet.c                                       |  51 +--
 lib/tftp.c                                         |  21 +-
 lib/transfer.c                                     |  10 +-
 lib/url.c                                          |  61 +--
 lib/urldata.h                                      |  16 +-
 lib/vauth/digest.c                                 |   6 +-
 lib/version.c                                      |   2 +-
 lib/vtls/axtls.c                                   |   5 +
 lib/vtls/cyassl.c                                  |   2 +-
 lib/vtls/darwinssl.c                               |  17 +-
 lib/vtls/gskit.c                                   |  32 +-
 lib/vtls/nss.c                                     |  11 +-
 lib/vtls/openssl.c                                 |  80 ++--
 lib/vtls/schannel.c                                | 188 ++++++++-
 lib/vtls/schannel.h                                |  34 ++
 lib/vtls/schannel_verify.c                         |  18 +-
 lib/vtls/vtls.c                                    |   8 +
 lib/vtls/vtls.h                                    |   5 +-
 lib/x509asn1.c                                     |   4 +-
 m4/ax_compile_check_sizeof.m4                      | 115 ++++++
 m4/curl-confopts.m4                                |  39 +-
 m4/curl-functions.m4                               |   3 +-
 maketgz                                            |  67 ++--
 packages/OS400/README.OS400                        |   8 +-
 packages/OS400/ccsidcurl.c                         |  79 ++++
 packages/OS400/ccsidcurl.h                         |  20 +-
 packages/OS400/curl.inc.in                         | 178 ++++++++-
 packages/vms/build_gnv_curl_pcsi_desc.com          |   2 +-
 packages/vms/setup_gnv_curl_build.com              |   2 +-
 projects/build-openssl.bat                         |   2 +-
 projects/wolfssl_options.h                         |   2 +-
 scripts/Makefile.am                                |   2 +
 src/CMakeLists.txt                                 |   4 -
 src/Makefile.am                                    |   4 +-
 src/Makefile.b32                                   | 154 --------
 src/Makefile.m32                                   |   4 +-
 src/Makefile.netware                               |   4 +-
 src/curl.rc                                        |  50 ++-
 src/tool_cb_dbg.c                                  |  10 +-
 src/tool_cb_hdr.c                                  |  63 ++-
 src/tool_cb_hdr.h                                  |   4 +-
 src/tool_cb_prg.c                                  |  12 +-
 src/tool_cb_wrt.c                                  |  13 +-
 src/tool_cb_wrt.h                                  |   4 +-
 src/tool_cfgable.h                                 |   8 +-
 src/tool_formparse.c                               |  13 +-
 src/tool_getparam.c                                |  38 +-
 src/tool_help.c                                    |  20 +-
 src/tool_libinfo.c                                 |   2 +-
 src/tool_main.c                                    |   3 +-
 src/tool_metalink.c                                |   4 +-
 src/tool_msgs.c                                    |   2 +-
 src/tool_operate.c                                 |  25 +-
 src/tool_paramhlp.c                                |  10 +-
 src/tool_parsecfg.c                                |   8 +-
 src/tool_urlglob.c                                 |   2 +-
 src/tool_writeout.c                                |   4 +-
 tests/Makefile.am                                  |   4 +-
 tests/data/DISABLED                                |   2 -
 tests/data/Makefile.inc                            |   9 +-
 tests/data/test1116                                |   2 +
 tests/data/test1156                                |  70 ++++
 tests/data/test1319                                |   3 -
 tests/data/test1321                                |   3 -
 tests/data/test1400                                |   1 -
 tests/data/test1401                                |   1 -
 tests/data/test1402                                |   1 -
 tests/data/test1403                                |   1 -
 tests/data/test1404                                |   1 -
 tests/data/test1405                                |   1 -
 tests/data/test1406                                |   1 -
 tests/data/test1407                                |   1 -
 tests/data/test1417                                |   1 +
 tests/data/test1420                                |   1 -
 tests/data/test1455                                |   7 +-
 tests/data/test1553                                |   4 +-
 tests/data/test1557                                |  36 ++
 tests/data/{test1553 => test1590}                  |   6 +-
 tests/data/test1609                                |  26 ++
 tests/data/test2010                                |   4 +-
 tests/data/{test1455 => test2074}                  |  21 +-
 tests/data/test2075                                |  34 ++
 tests/data/test266                                 |   1 +
 tests/data/test46                                  |   8 +-
 tests/data/test851                                 |   2 +-
 tests/data/test92                                  |  14 +
 tests/libtest/.gitignore                           |   8 +-
 tests/libtest/CMakeLists.txt                       |  12 +-
 tests/libtest/Makefile.am                          |   7 +-
 tests/libtest/Makefile.inc                         |  13 +-
 tests/libtest/lib1156.c                            | 162 ++++++++
 tests/libtest/lib1537.c                            |  15 +-
 tests/libtest/lib1554.c                            |   3 +-
 tests/{server/testpart.c => libtest/lib1557.c}     |  62 +--
 tests/libtest/lib1900.c                            |   8 +-
 tests/libtest/lib500.c                             |  50 ++-
 tests/libtest/lib506.c                             |   2 +-
 tests/libtest/lib512.c                             |   6 +-
 tests/libtest/lib544.c                             |   2 +-
 tests/libtest/lib552.c                             |   4 +-
 tests/libtest/lib556.c                             |   2 +-
 tests/libtest/lib579.c                             |   3 +-
 tests/libtest/lib586.c                             |   2 +-
 tests/libtest/lib650.c                             |   4 +-
 tests/libtest/lib652.c                             |   4 +-
 tests/libtest/stub_gssapi.c                        |  52 ++-
 tests/libtest/testtrace.c                          |   2 +-
 tests/runtests.pl                                  |   1 +
 tests/server/CMakeLists.txt                        |   6 -
 tests/server/getpart.c                             |   2 +-
 tests/server/rtspd.c                               |  26 +-
 tests/server/sockfilt.c                            |  29 +-
 tests/server/sws.c                                 |  13 +-
 tests/server/testpart.c                            |   6 +-
 tests/server/tftpd.c                               |  16 +-
 tests/server/util.c                                |   5 +-
 tests/unit/Makefile.inc                            |   5 +-
 tests/unit/README                                  |   4 +-
 tests/unit/unit1300.c                              |   2 +-
 tests/unit/unit1303.c                              |   2 +-
 tests/unit/unit1307.c                              | 113 ++++--
 tests/unit/unit1604.c                              |   4 +-
 tests/unit/unit1607.c                              |  10 +-
 tests/unit/{unit1607.c => unit1609.c}              |  91 ++---
 winbuild/MakefileBuild.vc                          |   6 +-
 winbuild/gen_resp_file.bat                         |   4 +-
 303 files changed, 4152 insertions(+), 2566 deletions(-)

diff --cc configure.ac
index 0e3803ac0,22280a5e9..b21dd584f
--- a/configure.ac
+++ b/configure.ac
@@@ -2320,8 -3453,8 +2321,8 @@@ AX_COMPILE_CHECK_SIZEOF(off_t
  
  o=$CPPFLAGS
  CPPFLAGS="-I$srcdir/include $CPPFLAGS"
- AC_CHECK_SIZEOF(curl_off_t, unused , [
+ AX_COMPILE_CHECK_SIZEOF(curl_off_t, [
 -#include <curl/system.h>
 +#include <gnurl/system.h>
  ])
  CPPFLAGS=$o
  
diff --cc docs/examples/progressfunc.c
index b21a79e77,51d75366c..080b4df3a
--- a/docs/examples/progressfunc.c
+++ b/docs/examples/progressfunc.c
@@@ -25,13 -25,27 +25,27 @@@
   * </DESC>
   */
  #include <stdio.h>
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  
- #define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES         6000
+ #if LIBCURL_VERSION_NUM >= 0x073d00
+ /* In libcurl 7.61.0, support was added for extracting the time in plain
+    microseconds. Older libcurl versions are stuck in using 'double' for this
+    information so we complicate this example a bit by supporting either
+    approach. */
+ #define TIME_IN_US 1 /* microseconds */
+ #define TIMETYPE curl_off_t
+ #define TIMEOPT CURLINFO_TOTAL_TIME_T
+ #define MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL     3000000
+ #else
+ #define TIMETYPE double
+ #define TIMEOPT CURLINFO_TOTAL_TIME
  #define MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL     3
+ #endif
+ 
+ #define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES         6000
  
  struct myprogress {
-   double lastruntime;
+   TIMETYPE lastruntime; /* type depends on version, see above */
    CURL *curl;
  };
  
diff --cc docs/libcurl/gnurl_easy_getinfo.3
index 351a6b8d9,000000000..a85d47f6f
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_getinfo.3
+++ b/docs/libcurl/gnurl_easy_getinfo.3
@@@ -1,249 -1,0 +1,277 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH curl_easy_getinfo 3 "11 Feb 2009" "libcurl 7.19.4" "libcurl Manual"
 +.SH NAME
 +curl_easy_getinfo - extract information from a curl handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );"
 +
 +.SH DESCRIPTION
 +Request internal information from the curl session with this function.  The
 +third argument \fBMUST\fP be a pointer to a long, a pointer to a char *, a
 +pointer to a struct curl_slist * 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.  Use
 +this function AFTER a performed transfer if you want to get transfer related
 +data.
 +
 +You should not free the memory returned by this function unless it is
 +explicitly mentioned below.
 +.SH AVAILABLE INFORMATION
 +The following information can be extracted:
 +.IP CURLINFO_EFFECTIVE_URL
 +Last used URL.
 +See \fICURLINFO_EFFECTIVE_URL(3)\fP
 +.IP CURLINFO_RESPONSE_CODE
 +Last received response code.
 +See \fICURLINFO_RESPONSE_CODE(3)\fP
 +.IP CURLINFO_HTTP_CONNECTCODE
 +Last proxy CONNECT response code.
 +See \fICURLINFO_HTTP_CONNECTCODE(3)\fP
 +.IP CURLINFO_HTTP_VERSION
 +The http version used in the connection.
 +See \fICURLINFO_HTTP_VERSION(3)\fP
 +.IP CURLINFO_FILETIME
 +Remote time of the retrieved document. See \fICURLINFO_FILETIME(3)\fP
 +.IP CURLINFO_FILETIME_T
 +Remote time of the retrieved document. See \fICURLINFO_FILETIME_T(3)\fP
 +.IP CURLINFO_TOTAL_TIME
 +Total time of previous transfer.
 +See \fICURLINFO_TOTAL_TIME(3)\fP
++.IP CURLINFO_TOTAL_TIME_T
++Total time of previous transfer.
++See \fICURLINFO_TOTAL_TIME_T(3)\fP
 +.IP CURLINFO_NAMELOOKUP_TIME
 +Time from start until name resolving completed.
 +See \fICURLINFO_NAMELOOKUP_TIME(3)\fP
++.IP CURLINFO_NAMELOOKUP_TIME_T
++Time from start until name resolving completed.
++See \fICURLINFO_NAMELOOKUP_TIME_T(3)\fP
 +.IP CURLINFO_CONNECT_TIME
 +Time from start until remote host or proxy completed.
 +See \fICURLINFO_CONNECT_TIME(3)\fP
++.IP CURLINFO_CONNECT_TIME_T
++Time from start until remote host or proxy completed.
++See \fICURLINFO_CONNECT_TIME_T(3)\fP
 +.IP CURLINFO_APPCONNECT_TIME
 +Time from start until SSL/SSH handshake completed.
 +See \fICURLINFO_APPCONNECT_TIME(3)\fP
++.IP CURLINFO_APPCONNECT_TIME_T
++Time from start until SSL/SSH handshake completed.
++See \fICURLINFO_APPCONNECT_TIME_T(3)\fP
 +.IP CURLINFO_PRETRANSFER_TIME
 +Time from start until just before the transfer begins.
 +See \fICURLINFO_PRETRANSFER_TIME(3)\fP
++.IP CURLINFO_PRETRANSFER_TIME_T
++Time from start until just before the transfer begins.
++See \fICURLINFO_PRETRANSFER_TIME_T(3)\fP
 +.IP CURLINFO_STARTTRANSFER_TIME
 +Time from start until just when the first byte is received.
 +See \fICURLINFO_STARTTRANSFER_TIME(3)\fP
++.IP CURLINFO_STARTTRANSFER_TIME_T
++Time from start until just when the first byte is received.
++See \fICURLINFO_STARTTRANSFER_TIME_T(3)\fP
 +.IP CURLINFO_REDIRECT_TIME
 +Time taken for all redirect steps before the final transfer.
 +See \fICURLINFO_REDIRECT_TIME(3)\fP
++.IP CURLINFO_REDIRECT_TIME_T
++Time taken for all redirect steps before the final transfer.
++See \fICURLINFO_REDIRECT_TIME_T(3)\fP
 +.IP CURLINFO_REDIRECT_COUNT
 +Total number of redirects that were followed.
 +See \fICURLINFO_REDIRECT_COUNT(3)\fP
 +.IP CURLINFO_REDIRECT_URL
 +URL a redirect would take you to, had you enabled redirects.
 +See \fICURLINFO_REDIRECT_URL(3)\fP
 +.IP CURLINFO_SIZE_UPLOAD
 +(Deprecated) Number of bytes uploaded.
 +See \fICURLINFO_SIZE_UPLOAD(3)\fP
 +.IP CURLINFO_SIZE_UPLOAD_T
 +Number of bytes uploaded.
 +See \fICURLINFO_SIZE_UPLOAD_T(3)\fP
 +.IP CURLINFO_SIZE_DOWNLOAD
 +(Deprecated) Number of bytes downloaded.
 +See \fICURLINFO_SIZE_DOWNLOAD(3)\fP
 +.IP CURLINFO_SIZE_DOWNLOAD_T
 +Number of bytes downloaded.
 +See \fICURLINFO_SIZE_DOWNLOAD_T(3)\fP
 +.IP CURLINFO_SPEED_DOWNLOAD
 +(Deprecated) Average download speed.
 +See \fICURLINFO_SPEED_DOWNLOAD(3)\fP
 +.IP CURLINFO_SPEED_DOWNLOAD_T
 +Average download speed.
 +See \fICURLINFO_SPEED_DOWNLOAD_T(3)\fP
 +.IP CURLINFO_SPEED_UPLOAD
 +(Deprecated) Average upload speed.
 +See \fICURLINFO_SPEED_UPLOAD(3)\fP
 +.IP CURLINFO_SPEED_UPLOAD_T
 +Average upload speed.
 +See \fICURLINFO_SPEED_UPLOAD_T(3)\fP
 +.IP CURLINFO_HEADER_SIZE
 +Number of bytes of all headers received.
 +See \fICURLINFO_HEADER_SIZE(3)\fP
 +.IP CURLINFO_REQUEST_SIZE
 +Number of bytes sent in the issued HTTP requests.
 +See \fICURLINFO_REQUEST_SIZE(3)\fP
 +.IP CURLINFO_SSL_VERIFYRESULT
 +Certificate verification result.
 +See \fICURLINFO_SSL_VERIFYRESULT(3)\fP
 +.IP CURLINFO_PROXY_SSL_VERIFYRESULT
 +Proxy certificate verification result.
 +See \fICURLINFO_PROXY_SSL_VERIFYRESULT(3)\fP
 +.IP CURLINFO_SSL_ENGINES
 +A list of OpenSSL crypto engines.
 +See \fICURLINFO_SSL_ENGINES(3)\fP
 +.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
 +(Deprecated) Content length from the Content-Length header.
 +See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD(3)\fP
 +.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
 +Content length from the Content-Length header.
 +See \fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP
 +.IP CURLINFO_CONTENT_LENGTH_UPLOAD
 +(Deprecated) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
 +.IP CURLINFO_CONTENT_LENGTH_UPLOAD_T
 +Upload size.  See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP
 +.IP CURLINFO_CONTENT_TYPE
 +Content type from the Content-Type header.
 +See \fICURLINFO_CONTENT_TYPE(3)\fP
 +.IP CURLINFO_PRIVATE
 +User's private data pointer.
 +See \fICURLINFO_PRIVATE(3)\fP
 +.IP CURLINFO_HTTPAUTH_AVAIL
 +Available HTTP authentication methods.
 +See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP
 +.IP CURLINFO_PROXYAUTH_AVAIL
 +Available HTTP proxy authentication methods.
 +See \fICURLINFO_PROXYAUTH_AVAIL(3)\fP
 +.IP CURLINFO_OS_ERRNO
 +The errno from the last failure to connect.
 +See \fICURLINFO_OS_ERRNO(3)\fP
 +.IP CURLINFO_NUM_CONNECTS
 +Number of new successful connections used for previous transfer.
 +See \fICURLINFO_NUM_CONNECTS(3)\fP
 +.IP CURLINFO_PRIMARY_IP
 +IP address of the last connection.
 +See \fICURLINFO_PRIMARY_IP(3)\fP
 +.IP CURLINFO_PRIMARY_PORT
 +Port of the last connection.
 +See \fICURLINFO_PRIMARY_PORT(3)\fP
 +.IP CURLINFO_LOCAL_IP
 +Local-end IP address of last connection.
 +See \fICURLINFO_LOCAL_IP(3)\fP
 +.IP CURLINFO_LOCAL_PORT
 +Local-end port of last connection.
 +See \fICURLINFO_LOCAL_PORT(3)\fP
 +.IP CURLINFO_COOKIELIST
 +List of all known cookies.
 +See \fICURLINFO_COOKIELIST(3)\fP
 +.IP CURLINFO_LASTSOCKET
 +Last socket used.
 +See \fICURLINFO_LASTSOCKET(3)\fP
 +.IP CURLINFO_ACTIVESOCKET
 +The session's active socket.
 +See \fICURLINFO_ACTIVESOCKET(3)\fP
 +.IP CURLINFO_FTP_ENTRY_PATH
 +The entry path after logging in to an FTP server.
 +See \fICURLINFO_FTP_ENTRY_PATH(3)\fP
 +.IP CURLINFO_CERTINFO
 +Certificate chain.
 +See \fICURLINFO_CERTINFO(3)\fP
 +.IP CURLINFO_TLS_SSL_PTR
 +TLS session info that can be used for further processing.
 +See \fICURLINFO_TLS_SSL_PTR(3)\fP
 +.IP CURLINFO_TLS_SESSION
 +TLS session info that can be used for further processing.  See
 +\fICURLINFO_TLS_SESSION(3)\fP. Deprecated option, use
 +\fICURLINFO_TLS_SSL_PTR(3)\fP instead!
 +.IP CURLINFO_CONDITION_UNMET
 +Whether or not a time conditional was met.
 +See \fICURLINFO_CONDITION_UNMET(3)\fP
 +.IP CURLINFO_RTSP_SESSION_ID
 +RTSP session ID.
 +See \fICURLINFO_RTSP_SESSION_ID(3)\fP
 +.IP CURLINFO_RTSP_CLIENT_CSEQ
 +RTSP CSeq that will next be used.
 +See \fICURLINFO_RTSP_CLIENT_CSEQ(3)\fP
 +.IP CURLINFO_RTSP_SERVER_CSEQ
 +RTSP CSeq that will next be expected.
 +See \fICURLINFO_RTSP_SERVER_CSEQ(3)\fP
 +.IP CURLINFO_RTSP_CSEQ_RECV
 +RTSP CSeq last received.
 +See \fICURLINFO_RTSP_CSEQ_RECV(3)\fP
 +.IP CURLINFO_PROTOCOL
 +The protocol used for the connection. (Added in 7.52.0)
 +See \fICURLINFO_PROTOCOL(3)\fP
 +.IP CURLINFO_SCHEME
 +The scheme used for the connection. (Added in 7.52.0)
 +See \fICURLINFO_SCHEME(3)\fP
 +.SH TIMES
 +.nf
 +An overview of the six time values available from curl_easy_getinfo()
 +
 +curl_easy_perform()
 +    |
 +    |--NAMELOOKUP
 +    |--|--CONNECT
 +    |--|--|--APPCONNECT
 +    |--|--|--|--PRETRANSFER
 +    |--|--|--|--|--STARTTRANSFER
 +    |--|--|--|--|--|--TOTAL
 +    |--|--|--|--|--|--REDIRECT
 +.fi
 +.IP NAMELOOKUP
- \fICURLINFO_NAMELOOKUP_TIME\fP. The time it took from the start until the name
- resolving was completed.
++\fICURLINFO_NAMELOOKUP_TIME\fP and \fIfICURLINFO_NAMELOOKUP_TIME_T\fP.
++The time it took from the start until the name resolving was completed.
 +.IP CONNECT
- \fICURLINFO_CONNECT_TIME\fP. The time it took from the start until the connect
++\fICURLINFO_CONNECT_TIME\fP and \fICURLINFO_CONNECT_TIME_T\fP.
++The time it took from the start until the connect
 +to the remote host (or proxy) was completed.
 +.IP APPCONNECT
- \fICURLINFO_APPCONNECT_TIME\fP. The time it took from the start until the SSL
- connect/handshake with the remote host was completed. (Added in in 7.19.0)
++\fICURLINFO_APPCONNECT_TIME\fP and \fICURLINFO_APPCONNECT_TIME_T\fP.
++The time it took from the start until the SSL
++connect/handshake with the remote host was completed. (Added in 7.19.0)
++The latter is the integer version (measuring microseconds).  (Added in 7.60.0)
 +.IP PRETRANSFER
- \fICURLINFO_PRETRANSFER_TIME\fP. The time it took from the start until the
++\fICURLINFO_PRETRANSFER_TIME\fP and \fICURLINFO_PRETRANSFER_TIME_T\fP.
++The time 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.
 +.IP STARTTRANSFER
- \fICURLINFO_STARTTRANSFER_TIME\fP. The time it took from the start until the
++\fICURLINFO_STARTTRANSFER_TIME\fP and \fICURLINFO_STARTTRANSFER_TIME_T\fP.
++The time it took from the start until the
 +first byte is received by libcurl.
 +.IP TOTAL
- \fICURLINFO_TOTAL_TIME\fP. Total time of the previous request.
++\fICURLINFO_TOTAL_TIME\fP and \fICURLINFO_TOTAL_TIME_T\fP.
++Total time of the previous request.
 +.IP REDIRECT
- \fICURLINFO_REDIRECT_TIME\fP. The time it took for all redirection steps
++\fICURLINFO_REDIRECT_TIME\fP and \fICURLINFO_REDIRECT_TIME_T\fP.
++The time it took for all redirection steps
 +include name lookup, connect, pretransfer and transfer before final
 +transaction was started. So, this is zero if no redirection took place.
 +.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)"
diff --cc docs/libcurl/gnurl_easy_setopt.3
index 50983a647,000000000..7b7cba8da
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_setopt.3
+++ b/docs/libcurl/gnurl_easy_setopt.3
@@@ -1,612 -1,0 +1,618 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH curl_easy_setopt 3 "25 Jun 2014" "libcurl 7.38.0" "libcurl Manual"
 +.SH NAME
 +curl_easy_setopt \- set options for a curl easy handle
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
 +.SH DESCRIPTION
 +\fIcurl_easy_setopt(3)\fP is used to tell libcurl how to behave. By setting
 +the appropriate options, the application can change libcurl's behavior.  All
 +options are set with an \fIoption\fP followed by a \fIparameter\fP. That
 +parameter can be a \fBlong\fP, a \fBfunction pointer\fP, an \fBobject
 +pointer\fP or a \fBcurl_off_t\fP, 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 \fIcurl_easy_setopt(3)\fP calls in the setup phase.
 +
 +Options set with this function call are valid for all forthcoming transfers
 +performed using this \fIhandle\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. You can optionally reset all
 +options back to internal default with \fIcurl_easy_reset(3)\fP.
 +
 +Strings passed to libcurl as 'char *' arguments, are copied by the library;
 +thus the string storage associated to the pointer argument may be overwritten
 +after \fIcurl_easy_setopt(3)\fP returns. The only exception to this rule is
 +really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies the string
 +\fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you need to
 +read up on.
 +
 +The order in which the options are set does not matter.
 +
 +Before version 7.17.0, strings were not copied. Instead the user was forced
 +keep them available until libcurl no longer needed them.
 +
 +The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or
 +\fIcurl_easy_duphandle(3)\fP call.
 +.SH BEHAVIOR OPTIONS
 +.IP CURLOPT_VERBOSE
 +Display verbose information. See \fICURLOPT_VERBOSE(3)\fP
 +.IP CURLOPT_HEADER
 +Include the header in the body output. See \fICURLOPT_HEADER(3)\fP
 +.IP CURLOPT_NOPROGRESS
 +Shut off the progress meter. See \fICURLOPT_NOPROGRESS(3)\fP
 +.IP CURLOPT_NOSIGNAL
 +Do not install signal handlers. See \fICURLOPT_NOSIGNAL(3)\fP
 +.IP CURLOPT_WILDCARDMATCH
 +Transfer multiple files according to a file name pattern. See 
\fICURLOPT_WILDCARDMATCH(3)\fP
 +.SH CALLBACK OPTIONS
 +.IP CURLOPT_WRITEFUNCTION
 +Callback for writing data. See \fICURLOPT_WRITEFUNCTION(3)\fP
 +.IP CURLOPT_WRITEDATA
 +Data pointer to pass to the write callback. See \fICURLOPT_WRITEDATA(3)\fP
 +.IP CURLOPT_READFUNCTION
 +Callback for reading data. See \fICURLOPT_READFUNCTION(3)\fP
 +.IP CURLOPT_READDATA
 +Data pointer to pass to the read callback. See \fICURLOPT_READDATA(3)\fP
 +.IP CURLOPT_IOCTLFUNCTION
 +Callback for I/O operations. See \fICURLOPT_IOCTLFUNCTION(3)\fP
 +.IP CURLOPT_IOCTLDATA
 +Data pointer to pass to the I/O callback. See \fICURLOPT_IOCTLDATA(3)\fP
 +.IP CURLOPT_SEEKFUNCTION
 +Callback for seek operations. See \fICURLOPT_SEEKFUNCTION(3)\fP
 +.IP CURLOPT_SEEKDATA
 +Data pointer to pass to the seek callback. See \fICURLOPT_SEEKDATA(3)\fP
 +.IP CURLOPT_SOCKOPTFUNCTION
 +Callback for sockopt operations. See \fICURLOPT_SOCKOPTFUNCTION(3)\fP
 +.IP CURLOPT_SOCKOPTDATA
 +Data pointer to pass to the sockopt callback. See \fICURLOPT_SOCKOPTDATA(3)\fP
 +.IP CURLOPT_OPENSOCKETFUNCTION
 +Callback for socket creation. See \fICURLOPT_OPENSOCKETFUNCTION(3)\fP
 +.IP CURLOPT_OPENSOCKETDATA
 +Data pointer to pass to the open socket callback. See 
\fICURLOPT_OPENSOCKETDATA(3)\fP
 +.IP CURLOPT_CLOSESOCKETFUNCTION
 +Callback for closing socket. See \fICURLOPT_CLOSESOCKETFUNCTION(3)\fP
 +.IP CURLOPT_CLOSESOCKETDATA
 +Data pointer to pass to the close socket callback. See 
\fICURLOPT_CLOSESOCKETDATA(3)\fP
 +.IP CURLOPT_PROGRESSFUNCTION
 +OBSOLETE callback for progress meter. See \fICURLOPT_PROGRESSFUNCTION(3)\fP
 +.IP CURLOPT_PROGRESSDATA
 +Data pointer to pass to the progress meter callback. See 
\fICURLOPT_PROGRESSDATA(3)\fP
 +.IP CURLOPT_XFERINFOFUNCTION
 +Callback for progress meter. See \fICURLOPT_XFERINFOFUNCTION(3)\fP
 +.IP CURLOPT_XFERINFODATA
 +Data pointer to pass to the progress meter callback. See 
\fICURLOPT_XFERINFODATA(3)\fP
 +.IP CURLOPT_HEADERFUNCTION
 +Callback for writing received headers. See \fICURLOPT_HEADERFUNCTION(3)\fP
 +.IP CURLOPT_HEADERDATA
 +Data pointer to pass to the header callback. See \fICURLOPT_HEADERDATA(3)\fP
 +.IP CURLOPT_DEBUGFUNCTION
 +Callback for debug information. See \fICURLOPT_DEBUGFUNCTION(3)\fP
 +.IP CURLOPT_DEBUGDATA
 +Data pointer to pass to the debug callback. See \fICURLOPT_DEBUGDATA(3)\fP
 +.IP CURLOPT_SSL_CTX_FUNCTION
 +Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(3)\fP
 +.IP CURLOPT_SSL_CTX_DATA
 +Data pointer to pass to the SSL context callback. See 
\fICURLOPT_SSL_CTX_DATA(3)\fP
 +.IP CURLOPT_CONV_TO_NETWORK_FUNCTION
 +Callback for code base conversion. See 
\fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP
 +.IP CURLOPT_CONV_FROM_NETWORK_FUNCTION
 +Callback for code base conversion. See 
\fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP
 +.IP CURLOPT_CONV_FROM_UTF8_FUNCTION
 +Callback for code base conversion. See 
\fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP
 +.IP CURLOPT_INTERLEAVEFUNCTION
 +Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP
 +.IP CURLOPT_INTERLEAVEDATA
 +Data pointer to pass to the RTSP interleave callback. See 
\fICURLOPT_INTERLEAVEDATA(3)\fP
 +.IP CURLOPT_CHUNK_BGN_FUNCTION
 +Callback for wildcard download start of chunk. See 
\fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP
 +.IP CURLOPT_CHUNK_END_FUNCTION
 +Callback for wildcard download end of chunk. See 
\fICURLOPT_CHUNK_END_FUNCTION(3)\fP
 +.IP CURLOPT_CHUNK_DATA
 +Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP
 +.IP CURLOPT_FNMATCH_FUNCTION
 +Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP
 +.IP CURLOPT_FNMATCH_DATA
 +Data pointer to pass to the wildcard matching callback. See 
\fICURLOPT_FNMATCH_DATA(3)\fP
 +.IP CURLOPT_SUPPRESS_CONNECT_HEADERS
 +Suppress proxy CONNECT response headers from user callbacks. See 
\fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP
 +.IP CURLOPT_RESOLVER_START_FUNCTION
 +Callback to be called before a new resolve request is started. See 
\fICURLOPT_RESOLVER_START_FUNCTION(3)\fP
 +.IP CURLOPT_RESOLVER_START_DATA
 +Data pointer to pass to resolver start callback. See 
\fICURLOPT_RESOLVER_START_DATA(3)\fP
 +.SH ERROR OPTIONS
 +.IP CURLOPT_ERRORBUFFER
 +Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
 +.IP CURLOPT_STDERR
 +stderr replacement stream. See \fICURLOPT_STDERR(3)\fP
 +.IP CURLOPT_FAILONERROR
 +Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP
 +.IP CURLOPT_KEEP_SENDING_ON_ERROR
 +Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP
 +.SH NETWORK OPTIONS
 +.IP CURLOPT_URL
 +URL to work on. See \fICURLOPT_URL(3)\fP
 +.IP CURLOPT_PATH_AS_IS
 +Disable squashing /../ and /./ sequences in the path. See 
\fICURLOPT_PATH_AS_IS(3)\fP
 +.IP CURLOPT_PROTOCOLS
 +Allowed protocols. See \fICURLOPT_PROTOCOLS(3)\fP
 +.IP CURLOPT_REDIR_PROTOCOLS
 +Protocols to allow redirects to. See \fICURLOPT_REDIR_PROTOCOLS(3)\fP
 +.IP CURLOPT_DEFAULT_PROTOCOL
 +Default protocol. See \fICURLOPT_DEFAULT_PROTOCOL(3)\fP
 +.IP CURLOPT_PROXY
 +Proxy to use. See \fICURLOPT_PROXY(3)\fP
 +.IP CURLOPT_PRE_PROXY
 +Socks proxy to use. See \fICURLOPT_PRE_PROXY(3)\fP
 +.IP CURLOPT_PROXYPORT
 +Proxy port to use. See \fICURLOPT_PROXYPORT(3)\fP
 +.IP CURLOPT_PROXYTYPE
 +Proxy type. See \fICURLOPT_PROXYTYPE(3)\fP
 +.IP CURLOPT_NOPROXY
 +Filter out hosts from proxy use. \fICURLOPT_NOPROXY(3)\fP
 +.IP CURLOPT_HTTPPROXYTUNNEL
 +Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(3)\fP
 +.IP CURLOPT_CONNECT_TO
 +Connect to a specific host and port. See \fICURLOPT_CONNECT_TO(3)\fP
 +.IP CURLOPT_SOCKS5_AUTH
 +Socks5 authentication methods. See \fICURLOPT_SOCKS5_AUTH(3)\fP
 +.IP CURLOPT_SOCKS5_GSSAPI_SERVICE
 +Socks5 GSSAPI service name. \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP
 +.IP CURLOPT_SOCKS5_GSSAPI_NEC
 +Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP
 +.IP CURLOPT_PROXY_SERVICE_NAME
 +Proxy authentication service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP
 +.IP CURLOPT_HAPROXYPROTOCOL
- Send an HAProxy PROXY protocol header. See \fICURLOPT_HAPROXYPROTOCOL(3)\fP
++Send an HAProxy PROXY protocol v1 header. See \fICURLOPT_HAPROXYPROTOCOL(3)\fP
 +.IP CURLOPT_SERVICE_NAME
 +Authentication service name. \fICURLOPT_SERVICE_NAME(3)\fP
 +.IP CURLOPT_INTERFACE
 +Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP
 +.IP CURLOPT_LOCALPORT
 +Bind connection locally to this port. See \fICURLOPT_LOCALPORT(3)\fP
 +.IP CURLOPT_LOCALPORTRANGE
 +Bind connection locally to port range. See \fICURLOPT_LOCALPORTRANGE(3)\fP
 +.IP CURLOPT_DNS_CACHE_TIMEOUT
 +Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP
 +.IP CURLOPT_DNS_USE_GLOBAL_CACHE
 +OBSOLETE Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP
 +.IP CURLOPT_BUFFERSIZE
 +Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(3)\fP
 +.IP CURLOPT_PORT
 +Port number to connect to. See \fICURLOPT_PORT(3)\fP
 +.IP CURLOPT_TCP_FASTOPEN
 +Enable TFO, TCP Fast Open. See \fICURLOPT_TCP_FASTOPEN(3)\fP
 +.IP CURLOPT_TCP_NODELAY
 +Disable the Nagle algorithm. See \fICURLOPT_TCP_NODELAY(3)\fP
 +.IP CURLOPT_ADDRESS_SCOPE
 +IPv6 scope for local addresses. See \fICURLOPT_ADDRESS_SCOPE(3)\fP
 +.IP CURLOPT_TCP_KEEPALIVE
 +Enable TCP keep-alive. See \fICURLOPT_TCP_KEEPALIVE(3)\fP
 +.IP CURLOPT_TCP_KEEPIDLE
 +Idle time before sending keep-alive. See \fICURLOPT_TCP_KEEPIDLE(3)\fP
 +.IP CURLOPT_TCP_KEEPINTVL
 +Interval between keep-alive probes. See \fICURLOPT_TCP_KEEPINTVL(3)\fP
 +.IP CURLOPT_UNIX_SOCKET_PATH
 +Path to a Unix domain socket. See \fICURLOPT_UNIX_SOCKET_PATH(3)\fP
 +.IP CURLOPT_ABSTRACT_UNIX_SOCKET
 +Path to an abstract Unix domain socket. See 
\fICURLOPT_ABSTRACT_UNIX_SOCKET(3)\fP
 +.SH NAMES and PASSWORDS OPTIONS (Authentication)
 +.IP CURLOPT_NETRC
 +Enable .netrc parsing. See \fICURLOPT_NETRC(3)\fP
 +.IP CURLOPT_NETRC_FILE
 +\&.netrc file name. See \fICURLOPT_NETRC_FILE(3)\fP
 +.IP CURLOPT_USERPWD
 +User name and password. See \fICURLOPT_USERPWD(3)\fP
 +.IP CURLOPT_PROXYUSERPWD
 +Proxy user name and password. See \fICURLOPT_PROXYUSERPWD(3)\fP
 +.IP CURLOPT_USERNAME
 +User name. See \fICURLOPT_USERNAME(3)\fP
 +.IP CURLOPT_PASSWORD
 +Password. See \fICURLOPT_PASSWORD(3)\fP
 +.IP CURLOPT_LOGIN_OPTIONS
 +Login options. See \fICURLOPT_LOGIN_OPTIONS(3)\fP
 +.IP CURLOPT_PROXYUSERNAME
 +Proxy user name. See \fICURLOPT_PROXYUSERNAME(3)\fP
 +.IP CURLOPT_PROXYPASSWORD
 +Proxy password. See \fICURLOPT_PROXYPASSWORD(3)\fP
 +.IP CURLOPT_HTTPAUTH
 +HTTP server authentication methods. See \fICURLOPT_HTTPAUTH(3)\fP
 +.IP CURLOPT_TLSAUTH_USERNAME
 +TLS authentication user name. See \fICURLOPT_TLSAUTH_USERNAME(3)\fP
 +.IP CURLOPT_PROXY_TLSAUTH_USERNAME
 +Proxy TLS authentication user name. See 
\fICURLOPT_PROXY_TLSAUTH_USERNAME(3)\fP
 +.IP CURLOPT_TLSAUTH_PASSWORD
 +TLS authentication password. See \fICURLOPT_TLSAUTH_PASSWORD(3)\fP
 +.IP CURLOPT_PROXY_TLSAUTH_PASSWORD
 +Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP
 +.IP CURLOPT_TLSAUTH_TYPE
 +TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP
 +.IP CURLOPT_PROXY_TLSAUTH_TYPE
 +Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP
 +.IP CURLOPT_PROXYAUTH
 +HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP
 +.IP CURLOPT_SASL_IR
 +Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
 +.IP CURLOPT_XOAUTH2_BEARER
 +OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
++.IP CURLOPT_DISALLOW_USERNAME_IN_URL
++Don't allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
 +.SH HTTP OPTIONS
 +.IP CURLOPT_AUTOREFERER
 +Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP
 +.IP CURLOPT_ACCEPT_ENCODING
 +Accept-Encoding and automatic decompressing data. See 
\fICURLOPT_ACCEPT_ENCODING(3)\fP
 +.IP CURLOPT_TRANSFER_ENCODING
 +Request Transfer-Encoding. See \fICURLOPT_TRANSFER_ENCODING(3)\fP
 +.IP CURLOPT_FOLLOWLOCATION
 +Follow HTTP redirects. See \fICURLOPT_FOLLOWLOCATION(3)\fP
 +.IP CURLOPT_UNRESTRICTED_AUTH
 +Do not restrict authentication to original host. 
\fICURLOPT_UNRESTRICTED_AUTH(3)\fP
 +.IP CURLOPT_MAXREDIRS
 +Maximum number of redirects to follow. See \fICURLOPT_MAXREDIRS(3)\fP
 +.IP CURLOPT_POSTREDIR
 +How to act on redirects after POST. See \fICURLOPT_POSTREDIR(3)\fP
 +.IP CURLOPT_PUT
 +Issue an HTTP PUT request. See \fICURLOPT_PUT(3)\fP
 +.IP CURLOPT_POST
 +Issue an HTTP POST request. See \fICURLOPT_POST(3)\fP
 +.IP CURLOPT_POSTFIELDS
 +Send a POST with this data. See \fICURLOPT_POSTFIELDS(3)\fP
 +.IP CURLOPT_POSTFIELDSIZE
 +The POST data is this big. See \fICURLOPT_POSTFIELDSIZE(3)\fP
 +.IP CURLOPT_POSTFIELDSIZE_LARGE
 +The POST data is this big. See \fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP
 +.IP CURLOPT_COPYPOSTFIELDS
 +Send a POST with this data - and copy it. See \fICURLOPT_COPYPOSTFIELDS(3)\fP
 +.IP CURLOPT_HTTPPOST
 +Multipart formpost HTTP POST. See \fICURLOPT_HTTPPOST(3)\fP
 +.IP CURLOPT_REFERER
 +Referer: header. See \fICURLOPT_REFERER(3)\fP
 +.IP CURLOPT_USERAGENT
 +User-Agent: header. See \fICURLOPT_USERAGENT(3)\fP
 +.IP CURLOPT_HTTPHEADER
 +Custom HTTP headers. See \fICURLOPT_HTTPHEADER(3)\fP
 +.IP CURLOPT_HEADEROPT
 +Control custom headers. See \fICURLOPT_HEADEROPT(3)\fP
 +.IP CURLOPT_PROXYHEADER
 +Custom HTTP headers sent to proxy. See \fICURLOPT_PROXYHEADER(3)\fP
 +.IP CURLOPT_HTTP200ALIASES
 +Alternative versions of 200 OK. See \fICURLOPT_HTTP200ALIASES(3)\fP
 +.IP CURLOPT_COOKIE
 +Cookie(s) to send. See \fICURLOPT_COOKIE(3)\fP
 +.IP CURLOPT_COOKIEFILE
 +File to read cookies from. See \fICURLOPT_COOKIEFILE(3)\fP
 +.IP CURLOPT_COOKIEJAR
 +File to write cookies to. See \fICURLOPT_COOKIEJAR(3)\fP
 +.IP CURLOPT_COOKIESESSION
 +Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP
 +.IP CURLOPT_COOKIELIST
 +Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
 +.IP CURLOPT_HTTPGET
 +Do an HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
 +.IP CURLOPT_REQUEST_TARGET
 +Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP
 +.IP CURLOPT_HTTP_VERSION
 +HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP
 +.IP CURLOPT_IGNORE_CONTENT_LENGTH
 +Ignore Content-Length. See \fICURLOPT_IGNORE_CONTENT_LENGTH(3)\fP
 +.IP CURLOPT_HTTP_CONTENT_DECODING
 +Disable Content decoding. See \fICURLOPT_HTTP_CONTENT_DECODING(3)\fP
 +.IP CURLOPT_HTTP_TRANSFER_DECODING
 +Disable Transfer decoding. See \fICURLOPT_HTTP_TRANSFER_DECODING(3)\fP
 +.IP CURLOPT_EXPECT_100_TIMEOUT_MS
 +100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP
 +.IP CURLOPT_PIPEWAIT
 +Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP
 +.IP CURLOPT_STREAM_DEPENDS
 +This HTTP/2 stream depends on another. See \fICURLOPT_STREAM_DEPENDS(3)\fP
 +.IP CURLOPT_STREAM_DEPENDS_E
 +This HTTP/2 stream depends on another exclusively. See
 +\fICURLOPT_STREAM_DEPENDS_E(3)\fP
 +.IP CURLOPT_STREAM_WEIGHT
 +Set this HTTP/2 stream's weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP
 +.SH SMTP OPTIONS
 +.IP CURLOPT_MAIL_FROM
 +Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP
 +.IP CURLOPT_MAIL_RCPT
 +Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP
 +.IP CURLOPT_MAIL_AUTH
 +Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP
 +.SH TFTP OPTIONS
 +.IP CURLOPT_TFTP_BLKSIZE
 +TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP
 +.IP CURLOPT_TFTP_NO_OPTIONS
 +Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP
 +.SH FTP OPTIONS
 +.IP CURLOPT_FTPPORT
 +Use active FTP. See \fICURLOPT_FTPPORT(3)\fP
 +.IP CURLOPT_QUOTE
 +Commands to run before transfer. See \fICURLOPT_QUOTE(3)\fP
 +.IP CURLOPT_POSTQUOTE
 +Commands to run after transfer. See \fICURLOPT_POSTQUOTE(3)\fP
 +.IP CURLOPT_PREQUOTE
 +Commands to run just before transfer. See \fICURLOPT_PREQUOTE(3)\fP
 +.IP CURLOPT_APPEND
 +Append to remote file. See \fICURLOPT_APPEND(3)\fP
 +.IP CURLOPT_FTP_USE_EPRT
 +Use EPTR. See \fICURLOPT_FTP_USE_EPRT(3)\fP
 +.IP CURLOPT_FTP_USE_EPSV
 +Use EPSV. See \fICURLOPT_FTP_USE_EPSV(3)\fP
 +.IP CURLOPT_FTP_USE_PRET
 +Use PRET. See \fICURLOPT_FTP_USE_PRET(3)\fP
 +.IP CURLOPT_FTP_CREATE_MISSING_DIRS
 +Create missing directories on the remote server. See 
\fICURLOPT_FTP_CREATE_MISSING_DIRS(3)\fP
 +.IP CURLOPT_FTP_RESPONSE_TIMEOUT
 +Timeout for FTP responses. See \fICURLOPT_FTP_RESPONSE_TIMEOUT(3)\fP
 +.IP CURLOPT_FTP_ALTERNATIVE_TO_USER
 +Alternative to USER. See \fICURLOPT_FTP_ALTERNATIVE_TO_USER(3)\fP
 +.IP CURLOPT_FTP_SKIP_PASV_IP
 +Ignore the IP address in the PASV response. See 
\fICURLOPT_FTP_SKIP_PASV_IP(3)\fP
 +.IP CURLOPT_FTPSSLAUTH
 +Control how to do TLS. See \fICURLOPT_FTPSSLAUTH(3)\fP
 +.IP CURLOPT_FTP_SSL_CCC
 +Back to non-TLS again after authentication. See \fICURLOPT_FTP_SSL_CCC(3)\fP
 +.IP CURLOPT_FTP_ACCOUNT
 +Send ACCT command. See \fICURLOPT_FTP_ACCOUNT(3)\fP
 +.IP CURLOPT_FTP_FILEMETHOD
 +Specify how to reach files. See \fICURLOPT_FTP_FILEMETHOD(3)\fP
 +.SH RTSP OPTIONS
 +.IP CURLOPT_RTSP_REQUEST
 +RTSP request. See \fICURLOPT_RTSP_REQUEST(3)\fP
 +.IP CURLOPT_RTSP_SESSION_ID
 +RTSP session-id. See \fICURLOPT_RTSP_SESSION_ID(3)\fP
 +.IP CURLOPT_RTSP_STREAM_URI
 +RTSP stream URI. See \fICURLOPT_RTSP_STREAM_URI(3)\fP
 +.IP CURLOPT_RTSP_TRANSPORT
 +RTSP Transport: header. See \fICURLOPT_RTSP_TRANSPORT(3)\fP
 +.IP CURLOPT_RTSP_CLIENT_CSEQ
 +Client CSEQ number. See \fICURLOPT_RTSP_CLIENT_CSEQ(3)\fP
 +.IP CURLOPT_RTSP_SERVER_CSEQ
 +CSEQ number for RTSP Server->Client request. See 
\fICURLOPT_RTSP_SERVER_CSEQ(3)\fP
 +.SH PROTOCOL OPTIONS
 +.IP CURLOPT_TRANSFERTEXT
 +Use text transfer. See \fICURLOPT_TRANSFERTEXT(3)\fP
 +.IP CURLOPT_PROXY_TRANSFER_MODE
 +Add transfer mode to URL over proxy. See \fICURLOPT_PROXY_TRANSFER_MODE(3)\fP
 +.IP CURLOPT_CRLF
 +Convert newlines. See \fICURLOPT_CRLF(3)\fP
 +.IP CURLOPT_RANGE
 +Range requests. See \fICURLOPT_RANGE(3)\fP
 +.IP CURLOPT_RESUME_FROM
 +Resume a transfer. See \fICURLOPT_RESUME_FROM(3)\fP
 +.IP CURLOPT_RESUME_FROM_LARGE
 +Resume a transfer. See \fICURLOPT_RESUME_FROM_LARGE(3)\fP
 +.IP CURLOPT_CUSTOMREQUEST
 +Custom request/method. See \fICURLOPT_CUSTOMREQUEST(3)\fP
 +.IP CURLOPT_FILETIME
 +Request file modification date and time. See \fICURLOPT_FILETIME(3)\fP
 +.IP CURLOPT_DIRLISTONLY
 +List only. See \fICURLOPT_DIRLISTONLY(3)\fP
 +.IP CURLOPT_NOBODY
 +Do not get the body contents. See \fICURLOPT_NOBODY(3)\fP
 +.IP CURLOPT_INFILESIZE
 +Size of file to send. \fICURLOPT_INFILESIZE(3)\fP
 +.IP CURLOPT_INFILESIZE_LARGE
 +Size of file to send. \fICURLOPT_INFILESIZE_LARGE(3)\fP
 +.IP CURLOPT_UPLOAD
 +Upload data. See \fICURLOPT_UPLOAD(3)\fP
 +.IP CURLOPT_MIMEPOST
 +Post/send MIME data. See \fICURLOPT_MIMEPOST(3)\fP
 +.IP CURLOPT_MAXFILESIZE
 +Maximum file size to get. See \fICURLOPT_MAXFILESIZE(3)\fP
 +.IP CURLOPT_MAXFILESIZE_LARGE
 +Maximum file size to get. See \fICURLOPT_MAXFILESIZE_LARGE(3)\fP
 +.IP CURLOPT_TIMECONDITION
 +Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP
 +.IP CURLOPT_TIMEVALUE
 +Time value for the time conditional request. See \fICURLOPT_TIMEVALUE(3)\fP
 +.IP CURLOPT_TIMEVALUE_LARGE
 +Time value for the time conditional request. See 
\fICURLOPT_TIMEVALUE_LARGE(3)\fP
 +.SH CONNECTION OPTIONS
 +.IP CURLOPT_TIMEOUT
 +Timeout for the entire request. See \fICURLOPT_TIMEOUT(3)\fP
 +.IP CURLOPT_TIMEOUT_MS
 +Millisecond timeout for the entire request. See \fICURLOPT_TIMEOUT_MS(3)\fP
 +.IP CURLOPT_LOW_SPEED_LIMIT
 +Low speed limit to abort transfer. See \fICURLOPT_LOW_SPEED_LIMIT(3)\fP
 +.IP CURLOPT_LOW_SPEED_TIME
 +Time to be below the speed to trigger low speed abort. See 
\fICURLOPT_LOW_SPEED_TIME(3)\fP
 +.IP CURLOPT_MAX_SEND_SPEED_LARGE
 +Cap the upload speed to this. See \fICURLOPT_MAX_SEND_SPEED_LARGE(3)\fP
 +.IP CURLOPT_MAX_RECV_SPEED_LARGE
 +Cap the download speed to this. See \fICURLOPT_MAX_RECV_SPEED_LARGE(3)\fP
 +.IP CURLOPT_MAXCONNECTS
 +Maximum number of connections in the connection pool. See 
\fICURLOPT_MAXCONNECTS(3)\fP
 +.IP CURLOPT_FRESH_CONNECT
 +Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP
 +.IP CURLOPT_FORBID_REUSE
 +Prevent subsequent connections from re-using this. See 
\fICURLOPT_FORBID_REUSE(3)\fP
 +.IP CURLOPT_CONNECTTIMEOUT
 +Timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT(3)\fP
 +.IP CURLOPT_CONNECTTIMEOUT_MS
 +Millisecond timeout for the connection phase. See 
\fICURLOPT_CONNECTTIMEOUT_MS(3)\fP
 +.IP CURLOPT_IPRESOLVE
 +IP version to resolve to. See \fICURLOPT_IPRESOLVE(3)\fP
 +.IP CURLOPT_CONNECT_ONLY
 +Only connect, nothing else. See \fICURLOPT_CONNECT_ONLY(3)\fP
 +.IP CURLOPT_USE_SSL
 +Use TLS/SSL. See \fICURLOPT_USE_SSL(3)\fP
 +.IP CURLOPT_RESOLVE
 +Provide fixed/fake name resolves. See \fICURLOPT_RESOLVE(3)\fP
 +.IP CURLOPT_DNS_INTERFACE
 +Bind name resolves to this interface. See \fICURLOPT_DNS_INTERFACE(3)\fP
 +.IP CURLOPT_DNS_LOCAL_IP4
 +Bind name resolves to this IP4 address. See \fICURLOPT_DNS_LOCAL_IP4(3)\fP
 +.IP CURLOPT_DNS_LOCAL_IP6
 +Bind name resolves to this IP6 address. See \fICURLOPT_DNS_LOCAL_IP6(3)\fP
 +.IP CURLOPT_DNS_SERVERS
 +Preferred DNS servers. See \fICURLOPT_DNS_SERVERS(3)\fP
 +.IP CURLOPT_DNS_SHUFFLE_ADDRESSES
 +Shuffle addresses before use. See \fICURLOPT_DNS_SHUFFLE_ADDRESSES(3)\fP
 +.IP CURLOPT_ACCEPTTIMEOUT_MS
 +Timeout for waiting for the server's connect back to be accepted. See 
\fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP
 +.IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
 +Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP
 +.SH SSL and SECURITY OPTIONS
 +.IP CURLOPT_SSLCERT
 +Client cert. See \fICURLOPT_SSLCERT(3)\fP
 +.IP CURLOPT_PROXY_SSLCERT
 +Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP
 +.IP CURLOPT_SSLCERTTYPE
 +Client cert type.  See \fICURLOPT_SSLCERTTYPE(3)\fP
 +.IP CURLOPT_PROXY_SSLCERTTYPE
 +Proxy client cert type.  See \fICURLOPT_PROXY_SSLCERTTYPE(3)\fP
 +.IP CURLOPT_SSLKEY
 +Client key. See \fICURLOPT_SSLKEY(3)\fP
 +.IP CURLOPT_PROXY_SSLKEY
 +Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP
 +.IP CURLOPT_SSLKEYTYPE
 +Client key type. See \fICURLOPT_SSLKEYTYPE(3)\fP
 +.IP CURLOPT_PROXY_SSLKEYTYPE
 +Proxy client key type. See \fICURLOPT_PROXY_SSLKEYTYPE(3)\fP
 +.IP CURLOPT_KEYPASSWD
 +Client key password. See \fICURLOPT_KEYPASSWD(3)\fP
 +.IP CURLOPT_PROXY_KEYPASSWD
 +Proxy client key password. See \fICURLOPT_PROXY_KEYPASSWD(3)\fP
 +.IP CURLOPT_SSL_ENABLE_ALPN
 +Enable use of ALPN. See \fICURLOPT_SSL_ENABLE_ALPN(3)\fP
 +.IP CURLOPT_SSL_ENABLE_NPN
 +Enable use of NPN. See \fICURLOPT_SSL_ENABLE_NPN(3)\fP
 +.IP CURLOPT_SSLENGINE
 +Use identifier with SSL engine. See \fICURLOPT_SSLENGINE(3)\fP
 +.IP CURLOPT_SSLENGINE_DEFAULT
 +Default SSL engine. See \fICURLOPT_SSLENGINE_DEFAULT(3)\fP
 +.IP CURLOPT_SSL_FALSESTART
 +Enable TLS False Start. See \fICURLOPT_SSL_FALSESTART(3)\fP
 +.IP CURLOPT_SSLVERSION
 +SSL version to use. See \fICURLOPT_SSLVERSION(3)\fP
 +.IP CURLOPT_PROXY_SSLVERSION
 +Proxy SSL version to use. See \fICURLOPT_PROXY_SSLVERSION(3)\fP
 +.IP CURLOPT_SSL_VERIFYHOST
 +Verify the host name in the SSL certificate. See 
\fICURLOPT_SSL_VERIFYHOST(3)\fP
 +.IP CURLOPT_PROXY_SSL_VERIFYHOST
 +Verify the host name in the proxy SSL certificate. See 
\fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP
 +.IP CURLOPT_SSL_VERIFYPEER
 +Verify the SSL certificate. See \fICURLOPT_SSL_VERIFYPEER(3)\fP
 +.IP CURLOPT_PROXY_SSL_VERIFYPEER
 +Verify the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP
 +.IP CURLOPT_SSL_VERIFYSTATUS
 +Verify the SSL certificate's status. See \fICURLOPT_SSL_VERIFYSTATUS(3)\fP
 +.IP CURLOPT_CAINFO
 +CA cert bundle. See \fICURLOPT_CAINFO(3)\fP
 +.IP CURLOPT_PROXY_CAINFO
 +Proxy CA cert bundle. See \fICURLOPT_PROXY_CAINFO(3)\fP
 +.IP CURLOPT_ISSUERCERT
 +Issuer certificate. See \fICURLOPT_ISSUERCERT(3)\fP
 +.IP CURLOPT_CAPATH
 +Path to CA cert bundle. See \fICURLOPT_CAPATH(3)\fP
 +.IP CURLOPT_PROXY_CAPATH
 +Path to proxy CA cert bundle. See \fICURLOPT_PROXY_CAPATH(3)\fP
 +.IP CURLOPT_CRLFILE
 +Certificate Revocation List. See \fICURLOPT_CRLFILE(3)\fP
 +.IP CURLOPT_PROXY_CRLFILE
 +Proxy Certificate Revocation List. See \fICURLOPT_PROXY_CRLFILE(3)\fP
 +.IP CURLOPT_CERTINFO
 +Extract certificate info. See \fICURLOPT_CERTINFO(3)\fP
 +.IP CURLOPT_PINNEDPUBLICKEY
 +Set pinned SSL public key . See \fICURLOPT_PINNEDPUBLICKEY(3)\fP
 +.IP CURLOPT_PROXY_PINNEDPUBLICKEY
 +Set the proxy's pinned SSL public key. See
 +\fICURLOPT_PROXY_PINNEDPUBLICKEY(3)\fP
 +.IP CURLOPT_RANDOM_FILE
 +Provide source for entropy random data. See \fICURLOPT_RANDOM_FILE(3)\fP
 +.IP CURLOPT_EGDSOCKET
 +Identify EGD socket for entropy. See \fICURLOPT_EGDSOCKET(3)\fP
 +.IP CURLOPT_SSL_CIPHER_LIST
 +Ciphers to use. See \fICURLOPT_SSL_CIPHER_LIST(3)\fP
 +.IP CURLOPT_PROXY_SSL_CIPHER_LIST
 +Proxy ciphers to use. See \fICURLOPT_PROXY_SSL_CIPHER_LIST(3)\fP
++.IP CURLOPT_TLS13_CIPHERS
++TLS 1.3 cipher suites to use. See \fICURLOPT_TLS13_CIPHERS(3)\fP
++.IP CURLOPT_PROXY_TLS13_CIPHERS
++Proxy TLS 1.3 cipher suites to use. See \fICURLOPT_PROXY_TLS13_CIPHERS(3)\fP
 +.IP CURLOPT_SSL_SESSIONID_CACHE
 +Disable SSL session-id cache. See \fICURLOPT_SSL_SESSIONID_CACHE(3)\fP
 +.IP CURLOPT_SSL_OPTIONS
 +Control SSL behavior. See \fICURLOPT_SSL_OPTIONS(3)\fP
 +.IP CURLOPT_PROXY_SSL_OPTIONS
 +Control proxy SSL behavior. See \fICURLOPT_PROXY_SSL_OPTIONS(3)\fP
 +.IP CURLOPT_KRBLEVEL
 +Kerberos security level. See \fICURLOPT_KRBLEVEL(3)\fP
 +.IP CURLOPT_GSSAPI_DELEGATION
 +Disable GSS-API delegation. See \fICURLOPT_GSSAPI_DELEGATION(3)\fP
 +.SH SSH OPTIONS
 +.IP CURLOPT_SSH_AUTH_TYPES
 +SSH authentication types. See \fICURLOPT_SSH_AUTH_TYPES(3)\fP
 +.IP CURLOPT_SSH_COMPRESSION
 +Enable SSH compression. See \fICURLOPT_SSH_COMPRESSION(3)\fP
 +.IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
 +MD5 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP
 +.IP CURLOPT_SSH_PUBLIC_KEYFILE
 +File name of public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP
 +.IP CURLOPT_SSH_PRIVATE_KEYFILE
 +File name of private key. See \fICURLOPT_SSH_PRIVATE_KEYFILE(3)\fP
 +.IP CURLOPT_SSH_KNOWNHOSTS
 +File name with known hosts. See \fICURLOPT_SSH_KNOWNHOSTS(3)\fP
 +.IP CURLOPT_SSH_KEYFUNCTION
 +Callback for known hosts handling. See \fICURLOPT_SSH_KEYFUNCTION(3)\fP
 +.IP CURLOPT_SSH_KEYDATA
 +Custom pointer to pass to ssh key callback. See \fICURLOPT_SSH_KEYDATA(3)\fP
 +.SH OTHER OPTIONS
 +.IP CURLOPT_PRIVATE
 +Private pointer to store. See \fICURLOPT_PRIVATE(3)\fP
 +.IP CURLOPT_SHARE
 +Share object to use. See \fICURLOPT_SHARE(3)\fP
 +.IP CURLOPT_NEW_FILE_PERMS
 +Mode for creating new remote files. See \fICURLOPT_NEW_FILE_PERMS(3)\fP
 +.IP CURLOPT_NEW_DIRECTORY_PERMS
 +Mode for creating new remote directories. See 
\fICURLOPT_NEW_DIRECTORY_PERMS(3)\fP
 +.SH TELNET OPTIONS
 +.IP CURLOPT_TELNETOPTIONS
 +TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP
 +.SH RETURN VALUE
 +\fICURLE_OK\fP (zero) means that the option was set properly, non-zero means 
an
 +error occurred as \fI<gnurl/curl.h>\fP defines. See the 
\fIlibcurl-errors(3)\fP
 +man page for the full list with descriptions.
 +
 +If you try to set an option that libcurl doesn't know about, perhaps because
 +the library is too old to support it or the option was removed in a recent
 +version, this function will return \fICURLE_UNKNOWN_OPTION\fP. If support for
 +the option was disabled at compile-time, it will return
 +\fICURLE_NOT_BUILT_IN\fP.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_easy_init "(3), " curl_easy_cleanup "(3), " curl_easy_reset "(3), "
 +.BR curl_easy_getinfo "(3), " curl_multi_setopt "(3), "
diff --cc docs/libcurl/gnurl_multi_add_handle.3
index ec6f6c934,000000000..959474d4d
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_add_handle.3
+++ b/docs/libcurl/gnurl_multi_add_handle.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_multi_add_handle 3 "4 March 2002" "libcurl 7.9.5" "libcurl Manual"
 +.SH NAME
 +curl_multi_add_handle - add an easy handle to a multi session
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle);
 +.ad
 +.SH DESCRIPTION
 +Adds a standard easy handle to the multi stack. This function call will make
 +this \fImulti_handle\fP control the specified \fIeasy_handle\fP.
 +
 +While an easy handle is added to a multi stack, you cannot and you must not
 +use \fIcurl_easy_perform(3)\fP on that handle. After having removed the easy
 +handle from the multi stack again, it is perfectly fine to use it with the
 +easy interface again.
 +
 +If the easy handle is not set to use a shared (\fICURLOPT_SHARE(3)\fP) or
 +global DNS cache (\fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP), it will be made to
 +use the DNS cache that is shared between all easy handles within the multi
 +handle when \fIcurl_multi_add_handle(3)\fP is called.
 +
 +When an easy interface is added to a multi handle, it will use a shared
 +connection cache owned by the multi handle. Removing and adding new easy
 +handles will not affect the pool of connections or the ability to do
 +connection re-use.
 +
- If you have CURLMOPT_TIMERFUNCTION set in the multi handle (and you really
- should if you're working event-based with \fIcurl_multi_socket_action(3)\fP
- and friends), that callback will be called from within this function to ask
- for an updated timer so that your main event loop will get the activity on
- this handle to get started.
++If you have \fICURLMOPT_TIMERFUNCTION(3)\fP set in the multi handle (and you
++really should if you're working event-based with
++\fIcurl_multi_socket_action(3)\fP and friends), that callback will be called
++from within this function to ask for an updated timer so that your main event
++loop will get the activity on this handle to get started.
 +
 +The easy handle will remain added to the multi handle until you remove it
 +again with \fIcurl_multi_remove_handle(3)\fP - even when a transfer with that
 +specific easy handle is completed.
 +
 +You should remove the easy handle from the multi stack before you terminate
 +first the easy handle and then the multi handle:
 +
 +1 - \fIcurl_multi_remove_handle(3)\fP
 +
 +2 - \fIcurl_easy_cleanup(3)\fP
 +
 +3 - \fIcurl_multi_cleanup(3)\fP
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3)," curl_multi_init "(3), "
 +.BR curl_multi_setopt "(3), " curl_multi_socket_action "(3) "
diff --cc docs/libcurl/gnurl_multi_socket.3
index c477069c9,000000000..a2f7339fd
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_socket.3
+++ b/docs/libcurl/gnurl_multi_socket.3
@@@ -1,158 -1,0 +1,159 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_multi_socket 3 "9 Jul 2006" "libcurl 7.16.0" "libcurl Manual"
 +.SH NAME
 +curl_multi_socket \- reads/writes available data
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd,
 +                            int *running_handles);
 +
 +CURLMcode curl_multi_socket_all(CURLM *multi_handle,
 +                                int *running_handles);
 +.fi
 +.SH DESCRIPTION
 +These functions are deprecated. Do not use! See
 +\fIcurl_multi_socket_action(3)\fP instead!
 +
 +At return, the integer \fBrunning_handles\fP points to will contain the number
 +of still running easy handles within the multi handle. When this number
 +reaches zero, all transfers are complete/done. Note that when you call
 +\fIcurl_multi_socket_action(3)\fP on a specific socket and the counter
 +decreases by one, it DOES NOT necessarily mean that this exact socket/transfer
 +is the one that completed. Use \fIcurl_multi_info_read(3)\fP to figure out
 +which easy handle that completed.
 +
 +The \fIcurl_multi_socket_action(3)\fP functions inform the application about
 +updates in the socket (file descriptor) status by doing none, one, or multiple
- calls to the socket callback function set with the CURLMOPT_SOCKETFUNCTION
- option to \fIcurl_multi_setopt(3)\fP. They update the status with changes
- since the previous time the callback was called.
++calls to the socket callback function set with the
++\fICURLMOPT_SOCKETFUNCTION(3)\fP option to \fIcurl_multi_setopt(3)\fP. They
++update the status with changes since the previous time the callback was
++called.
 +
- Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION\fP option with
- \fIcurl_multi_setopt(3)\fP. Your application will then get called with
++Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION(3)\fP option
++with \fIcurl_multi_setopt(3)\fP. Your application will then get called with
 +information on how long to wait for socket actions at most before doing the
 +timeout action: call the \fIcurl_multi_socket_action(3)\fP function with the
 +\fBsockfd\fP argument set to CURL_SOCKET_TIMEOUT. You can also use the
 +\fIcurl_multi_timeout(3)\fP function to poll the value at any given time, but
 +for an event-based system using the callback is far better than relying on
 +polling the timeout value.
 +
 +Usage of \fIcurl_multi_socket(3)\fP is deprecated, whereas the function is
 +equivalent to \fIcurl_multi_socket_action(3)\fP with \fBev_bitmask\fP set to
 +0.
 +
 +Force libcurl to (re-)check all its internal sockets and transfers instead of
 +just a single one by calling \fIcurl_multi_socket_all(3)\fP. Note that there
 +should not be any reason to use this function!
 +.SH "CALLBACK DETAILS"
 +
 +The socket \fBcallback\fP function uses a prototype like this
 +.nf
 +
 +  int curl_socket_callback(CURL *easy,      /* easy handle */
 +                           curl_socket_t s, /* socket */
 +                           int action,      /* see values below */
 +                           void *userp,    /* private callback pointer */
 +                           void *socketp); /* private socket pointer */
 +
 +.fi
 +The callback MUST return 0.
 +
 +The \fIeasy\fP argument is a pointer to the easy handle that deals with this
 +particular socket. Note that a single handle may work with several sockets
 +simultaneously.
 +
 +The \fIs\fP argument is the actual socket value as you use it within your
 +system.
 +
 +The \fIaction\fP argument to the callback has one of five values:
 +.RS
 +.IP "CURL_POLL_NONE (0)"
 +register, not interested in readiness (yet)
 +.IP "CURL_POLL_IN (1)"
 +register, interested in read readiness
 +.IP "CURL_POLL_OUT (2)"
 +register, interested in write readiness
 +.IP "CURL_POLL_INOUT (3)"
 +register, interested in both read and write readiness
 +.IP "CURL_POLL_REMOVE (4)"
 +unregister
 +.RE
 +
 +The \fIsocketp\fP argument is a private pointer you have previously set with
 +\fIcurl_multi_assign(3)\fP to be associated with the \fIs\fP socket. If no
 +pointer has been set, socketp will be NULL. This argument is of course a
 +service to applications that want to keep certain data or structs that are
 +strictly associated to the given socket.
 +
 +The \fIuserp\fP argument is a private pointer you have previously set with
- \fIcurl_multi_setopt(3)\fP and the CURLMOPT_SOCKETDATA option.
++\fIcurl_multi_setopt(3)\fP and the \fICURLMOPT_SOCKETDATA(3)\fP option.
 +.SH "RETURN VALUE"
 +CURLMcode type, general libcurl multi interface error code.
 +
 +Legacy: If you receive \fICURLM_CALL_MULTI_PERFORM\fP, this basically means
 +that you should call \fIcurl_multi_socket(3)\fP again, before you wait for
 +more actions on libcurl's sockets. You don't have to do it immediately, but
 +the return code means that libcurl may have more data available to return or
 +that there may be more data to send off before it is "satisfied".
 +
 +In modern libcurls, \fICURLM_CALL_MULTI_PERFORM\fP or
 +\fICURLM_CALL_MULTI_SOCKET\fP should not be returned and no application needs
 +to care about them.
 +
 +NOTE that the return code is for the whole multi stack. Problems still might 
have
 +occurred on individual transfers even when one of these functions
 +return OK.
 +.SH "TYPICAL USAGE"
 +1. Create a multi handle
 +
- 2. Set the socket callback with CURLMOPT_SOCKETFUNCTION
++2. Set the socket callback with \fICURLMOPT_SOCKETFUNCTION(3)\fP
 +
- 3. Set the timeout callback with CURLMOPT_TIMERFUNCTION, to get to know what
- timeout value to use when waiting for socket activities.
++3. Set the timeout callback with \fICURLMOPT_TIMERFUNCTION(3)\fP, to get to
++know what timeout value to use when waiting for socket activities.
 +
 +4. Add easy handles with curl_multi_add_handle()
 +
 +5. Provide some means to manage the sockets libcurl is using, so you can check
 +them for activity. This can be done through your application code, or by way
 +of an external library such as libevent or glib.
 +
 +6. Wait for activity on any of libcurl's sockets, use the timeout value your
 +callback has been told
 +
 +7, When activity is detected, call curl_multi_socket_action() for the
 +socket(s) that got action. If no activity is detected and the timeout expires,
 +call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP
 +
 +8. Go back to step 6.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4, and is deemed stable since
 +7.16.0.
 +
 +\fIcurl_multi_socket(3)\fP is deprecated, use
 +\fIcurl_multi_socket_action(3)\fP instead!
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR "the hiperfifo.c example"
diff --cc docs/libcurl/gnurl_multi_socket_action.3
index ba8c5ee21,000000000..ad84c1e66
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_socket_action.3
+++ b/docs/libcurl/gnurl_multi_socket_action.3
@@@ -1,156 -1,0 +1,156 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_multi_socket_action 3 "9 Jul 2006" "libcurl 7.16.0" "libcurl Manual"
 +.SH NAME
 +curl_multi_socket_action \- reads/writes available data given an action
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_socket_action(CURLM * multi_handle,
 +                                   curl_socket_t sockfd,
 +                                   int ev_bitmask,
 +                                   int *running_handles);
 +.fi
 +.SH DESCRIPTION
 +When the application has detected action on a socket handled by libcurl, it
 +should call \fIcurl_multi_socket_action(3)\fP with the \fBsockfd\fP argument
 +set to the socket with the action. When the events on a socket are known, they
 +can be passed as an events bitmask \fBev_bitmask\fP by first setting
 +\fBev_bitmask\fP to 0, and then adding using bitwise OR (|) any combination of
 +events to be chosen from CURL_CSELECT_IN, CURL_CSELECT_OUT or
 +CURL_CSELECT_ERR. When the events on a socket are unknown, pass 0 instead, and
 +libcurl will test the descriptor internally. It is also permissible to pass
 +CURL_SOCKET_TIMEOUT to the \fBsockfd\fP parameter in order to initiate the
 +whole process or when a timeout occurs.
 +
 +At return, \fBrunning_handles\fP points to the number
 +of running easy handles within the multi handle. When this number reaches
 +zero, all transfers are complete/done. When you call
 +\fIcurl_multi_socket_action(3)\fP on a specific socket and the counter
 +decreases by one, it DOES NOT necessarily mean that this exact socket/transfer
 +is the one that completed. Use \fIcurl_multi_info_read(3)\fP to figure out
 +which easy handle that completed.
 +
 +The \fIcurl_multi_socket_action(3)\fP functions inform the application about
 +updates in the socket (file descriptor) status by doing none, one, or multiple
 +calls to the socket callback function set with the
 +\fICURLMOPT_SOCKETFUNCTION(3)\fP option to \fIcurl_multi_setopt(3)\fP. They
 +update the status with changes since the previous time the callback was
 +called.
 +
 +Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION(3)\fP option
 +with \fIcurl_multi_setopt(3)\fP. Your application will then get called with
 +information on how long to wait for socket actions at most before doing the
 +timeout action: call the \fIcurl_multi_socket_action(3)\fP function with the
 +\fBsockfd\fP argument set to CURL_SOCKET_TIMEOUT. You can also use the
 +\fIcurl_multi_timeout(3)\fP function to poll the value at any given time, but
 +for an event-based system using the callback is far better than relying on
 +polling the timeout value.
 +.SH "CALLBACK DETAILS"
 +
 +The socket \fBcallback\fP function uses a prototype like this
 +.nf
 +
 +  int curl_socket_callback(CURL *easy,      /* easy handle */
 +                           curl_socket_t s, /* socket */
 +                           int action,      /* see values below */
 +                           void *userp,    /* private callback pointer */
 +                           void *socketp); /* private socket pointer,
 +                                              \fBNULL\fP if not
 +                                              previously assigned with
 +                                              \fIcurl_multi_assign(3)\fP */
 +
 +.fi
 +The callback MUST return 0.
 +
 +The \fIeasy\fP argument is a pointer to the easy handle that deals with this
 +particular socket. Note that a single handle may work with several sockets
 +simultaneously.
 +
 +The \fIs\fP argument is the actual socket value as you use it within your
 +system.
 +
 +The \fIaction\fP argument to the callback has one of five values:
 +.RS
 +.IP "CURL_POLL_NONE (0)"
 +register, not interested in readiness (yet)
 +.IP "CURL_POLL_IN (1)"
 +register, interested in read readiness
 +.IP "CURL_POLL_OUT (2)"
 +register, interested in write readiness
 +.IP "CURL_POLL_INOUT (3)"
 +register, interested in both read and write readiness
 +.IP "CURL_POLL_REMOVE (4)"
 +unregister
 +.RE
 +
 +The \fIsocketp\fP argument is a private pointer you have previously set with
 +\fIcurl_multi_assign(3)\fP to be associated with the \fIs\fP socket. If no
 +pointer has been set, socketp will be NULL. This argument is of course a
 +service to applications that want to keep certain data or structs that are
 +strictly associated to the given socket.
 +
 +The \fIuserp\fP argument is a private pointer you have previously set with
- \fIcurl_multi_setopt(3)\fP and the CURLMOPT_SOCKETDATA option.
++\fIcurl_multi_setopt(3)\fP and the \fICURLMOPT_SOCKETDATA(3)\fP option.
 +.SH "RETURN VALUE"
 +CURLMcode type, general libcurl multi interface error code.
 +
 +Before version 7.20.0: If you receive \fICURLM_CALL_MULTI_PERFORM\fP, this
 +basically means that you should call \fIcurl_multi_socket_action(3)\fP again
 +before you wait for more actions on libcurl's sockets. You don't have to do it
 +immediately, but the return code means that libcurl may have more data
 +available to return or that there may be more data to send off before it is
 +"satisfied".
 +
 +The return code from this function is for the whole multi stack.  Problems
 +still might have occurred on individual transfers even when one of these
 +functions return OK.
 +.SH "TYPICAL USAGE"
 +1. Create a multi handle
 +
- 2. Set the socket callback with CURLMOPT_SOCKETFUNCTION
++2. Set the socket callback with \fICURLMOPT_SOCKETFUNCTION(3)\fP
 +
- 3. Set the timeout callback with CURLMOPT_TIMERFUNCTION, to get to know what
- timeout value to use when waiting for socket activities.
++3. Set the timeout callback with \fICURLMOPT_TIMERFUNCTION(3)\fP, to get to
++know what timeout value to use when waiting for socket activities.
 +
 +4. Add easy handles with curl_multi_add_handle()
 +
 +5. Provide some means to manage the sockets libcurl is using, so you can check
 +them for activity. This can be done through your application code, or by way
 +of an external library such as libevent or glib.
 +
 +6. Call curl_multi_socket_action(..., CURL_SOCKET_TIMEOUT, 0, ...)
 +to kickstart everything. To get one or more callbacks called.
 +
 +7. Wait for activity on any of libcurl's sockets, use the timeout value your
 +callback has been told.
 +
 +8, When activity is detected, call curl_multi_socket_action() for the
 +socket(s) that got action. If no activity is detected and the timeout expires,
 +call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4, and is deemed stable since 7.16.0.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR "the hiperfifo.c example"
diff --cc docs/libcurl/gnurl_share_setopt.3
index 31ce44a19,000000000..8c2fe91ed
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_setopt.3
+++ b/docs/libcurl/gnurl_share_setopt.3
@@@ -1,103 -1,0 +1,112 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_share_setopt 3 "8 Aug 2003" "libcurl 7.10.7" "libcurl Manual"
 +.SH NAME
 +curl_share_setopt - Set options for a shared object
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter);
 +.ad
 +.SH DESCRIPTION
 +Set the \fIoption\fP to \fIparameter\fP for the given \fIshare\fP.
 +.SH OPTIONS
 +.IP CURLSHOPT_LOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void lock_function(CURL *handle, curl_lock_data data, curl_lock_access access,
 +void *userptr);
 +
 +\fIdata\fP defines what data libcurl wants to lock, and you must make sure 
that
 +only one lock is given at any time for each kind of data.
 +
 +\fIaccess\fP defines what access type libcurl wants, shared or single.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_UNLOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void unlock_function(CURL *handle, curl_lock_data data, void *userptr);
 +
 +\fIdata\fP defines what data libcurl wants to unlock, and you must make sure
 +that only one lock is given at any time for each kind of data.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_SHARE
 +The \fIparameter\fP specifies a type of data that should be shared. This may
 +be set to one of the values described below.
 +.RS
 +.IP CURL_LOCK_DATA_COOKIE
 +Cookie data will be shared across the easy handles using this shared object.
 +.IP CURL_LOCK_DATA_DNS
 +Cached DNS hosts will be shared across the easy handles using this shared
 +object. Note that when you use the multi interface, all easy handles added to
 +the same multi handle will share DNS cache by default without using this
 +option.
 +.IP CURL_LOCK_DATA_SSL_SESSION
 +SSL session IDs will be shared across the easy handles using this shared
 +object. This will reduce the time spent in the SSL handshake when reconnecting
 +to the same server. Note SSL session IDs are reused within the same easy 
handle
 +by default. Note this symbol was added in 7.10.3 but was not implemented until
 +7.23.0.
 +.IP CURL_LOCK_DATA_CONNECT
 +Put the connection cache in the share object and make all easy handles using
 +this share object share the connection cache. Using this, you can for example
 +do multi-threaded libcurl use with one handle in each thread, and yet have a
 +shared pool of unused connections and this way get way better connection
 +re-use than if you use one separate pool in each thread.
 +
 +Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing only
 +get additional transfers added to them if the existing connection is held by
 +the same multi or easy handle. libcurl does not support doing HTTP/2 streams
 +in different threads using a shared connection.
 +
 +Support for \fBCURL_LOCK_DATA_CONNECT\fP was added in 7.57.0, but the symbol
 +existed before this.
 +
 +Note that when you use the multi interface, all easy handles added to the same
 +multi handle will share connection cache by default without using this option.
++.IP CURL_LOCK_DATA_PSL
++The Public Suffix List stored in the share object is made available to all
++easy handle bound to the later. Since the Public Suffix List is periodically
++refreshed, this avoids updates in too many different contexts.
++
++\fBCURL_LOCK_DATA_PSL\fP exists since 7.61.0.
++
++Note that when you use the multi interface, all easy handles added to the same
++multi handle will share PSL cache by default without using this option.
 +.RE
 +.IP CURLSHOPT_UNSHARE
 +This option does the opposite of \fICURLSHOPT_SHARE\fP. It specifies that
 +the specified \fIparameter\fP will no longer be shared. Valid values are
 +the same as those for \fICURLSHOPT_SHARE\fP.
 +.IP CURLSHOPT_USERDATA
 +The \fIparameter\fP allows you to specify a pointer to data that will be 
passed
 +to the lock_function and unlock_function each time it is called.
 +.SH RETURN VALUE
 +CURLSHE_OK (zero) means that the option was set properly, non-zero means an
 +error occurred as \fI<gnurl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
 +man page for the full list with descriptions.
 +.SH "SEE ALSO"
 +.BR curl_share_cleanup "(3), " curl_share_init "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
index 1af8c4333,000000000..c0eadb821
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_APPCONNECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is 
completed
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the time, in seconds, it took from the
 +start until the SSL/SSH connect/handshake to the remote host was completed.
 +This time is most often very near to the \fICURLINFO_PRETRANSFER_TIME(3)\fP
 +time, except for cases such as HTTP pipelining where the pretransfer time can
 +be delayed due to waits in line for the pipeline and more.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double connect;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_APPCONNECT_TIME, &connect);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", connect);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.19.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_APPCONNECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
index d3ff00214,000000000..107553702
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_CONNECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_CONNECT_TIME \- get the time until connect
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total time in seconds from the start
 +until the connection to the remote host (or proxy) was completed.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double connect;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &connect);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", connect);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_CONNECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
index 407b2c709,000000000..84dd96e1f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_NAMELOOKUP_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_NAMELOOKUP_TIME \- get the name lookup time
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total time in seconds from the start
 +until the name resolving was completed.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double namelookup;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &namelookup);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", namelookup);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_NAMELOOKUP_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
index 461fcb931,000000000..17b99a4b7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_PRETRANSFER_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME, double 
*timep);
 +.SH DESCRIPTION
 +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. It does \fInot\fP involve the sending of the protocol-
 +specific request that triggers a transfer.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double pretransfer;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, &pretransfer);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", pretransfer);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_PRETRANSFER_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
index a98d76df3,000000000..f7ccd541c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_REDIRECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_REDIRECT_TIME \- get the time for all redirection steps
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total time, in seconds, it took for
 +all redirection steps include name lookup, connect, pretransfer and transfer
 +before final transaction was started. CURLINFO_REDIRECT_TIME contains the
 +complete execution time for multiple redirections.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double redirect;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME, &redirect);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", redirect);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.9.7
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_REDIRECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
index 655d77219,000000000..6b72677e7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_STARTTRANSFER_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the time, in seconds, it took from the
 +start until the first byte is received by libcurl. This includes
 +\fICURLINFO_PRETRANSFER_TIME(3)\fP and also the time the server needs to
 +calculate the result.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double start;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME, &start);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", start);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.9.2
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_STARTTRANSFER_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
index 5abd1f2ee,000000000..68a451c68
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
+++ b/docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
@@@ -1,151 -1,0 +1,170 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_TLS_SSL_PTR 3 "23 Feb 2016" "libcurl 7.48.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SSL_PTR,
 +                           struct curl_tlssessioninfo **session);
 +
 +/* if you need compatibility with libcurl < 7.48.0 use
 +   CURLINFO_TLS_SESSION instead: */
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION,
 +                           struct curl_tlssessioninfo **session);
 +.SH DESCRIPTION
 +Pass a pointer to a 'struct curl_tlssessioninfo *'.  The pointer will be
 +initialized to refer to a 'struct curl_tlssessioninfo *' that will contain an
 +enum indicating the SSL library used for the handshake and a pointer to the
 +respective internal TLS session structure of this underlying SSL library.
 +
 +This option may be useful for example to extract certificate information in a
 +format convenient for further processing, such as manual validation. Refer to
 +the \fBLIMITATIONS\fP section.
 +
 +.nf
 +struct curl_tlssessioninfo {
 +  curl_sslbackend backend;
 +  void *internals;
 +};
 +.fi
 +
 +The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_*
 +series: CURLSSLBACKEND_NONE (when built without TLS support),
 +CURLSSLBACKEND_AXTLS, CURLSSLBACKEND_CYASSL, CURLSSLBACKEND_DARWINSSL,
 +CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_MBEDTLS,
 +CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_POLARSSL or
 +CURLSSLBACKEND_SCHANNEL. (Note that the OpenSSL forks are all reported as just
 +OpenSSL here.)
 +
 +The \fIinternals\fP struct member will point to a TLS library specific pointer
 +for the active ("in use") SSL connection, with the following underlying types:
 +.RS
 +.IP GnuTLS
 +gnutls_session_t
 +.IP gskit
 +gsk_handle
 +.IP NSS
 +PRFileDesc *
 +.IP OpenSSL
 +CURLINFO_TLS_SESSION: SSL_CTX *
 +
 +CURLINFO_TLS_SSL_PTR: SSL *
 +.RE
 +Since 7.48.0 the \fIinternals\fP member can point to these other SSL backends
 +as well:
 +.RS
 +.IP axTLS
 +SSL *
 +.IP mbedTLS
 +mbedtls_ssl_context *
 +.IP PolarSSL
 +ssl_context *
 +.IP "Secure Channel (WinSSL)"
 +CtxtHandle *
 +.IP "Secure Transport (DarwinSSL)"
 +SSLContext *
 +.IP "WolfSSL (formerly CyaSSL)"
 +SSL *
 +.RE
 +
 +If the \fIinternals\fP pointer is NULL then either the SSL backend is not
 +supported, an SSL session has not yet been established or the connection is no
 +longer associated with the easy handle (eg curl_easy_perform has returned).
 +.SH LIMITATIONS
 +\fBThis option has some limitations that could make it unsafe when it comes to
 +the manual verification of certificates.\fP
 +
 +This option only retrieves the first in-use SSL session pointer for your easy
 +handle, however your easy handle may have more than one in-use SSL session if
 +using FTP over SSL. That is because the FTP protocol has a control channel and
 +a data channel and one or both may be over SSL. \fBCurrently there is no way 
to
 +retrieve a second in-use SSL session associated with an easy handle.\fP
 +
 +This option has not been thoroughly tested with plaintext protocols that can 
be
 +upgraded/downgraded to/from SSL: FTP, SMTP, POP3, IMAP when used with
 +\fICURLOPT_USE_SSL(3)\fP. Though you will be able to retrieve the SSL pointer,
 +it's possible that before you can do that \fBdata (including auth) may have
 +already been sent over a connection after it was upgraded.\fP
 +
 +Renegotiation. If unsafe renegotiation or renegotiation in a way that the
 +certificate is allowed to change is allowed by your SSL library this may occur
 +and the certificate may change, and \fBdata may continue to be sent or 
received
 +after renegotiation but before you are able to get the (possibly) changed SSL
 +pointer,\fP with the (possibly) changed certificate information.
 +
 +If you are using OpenSSL or wolfSSL then \fICURLOPT_SSL_CTX_FUNCTION(3)\fP can
 +be used to set a certificate verification callback in the CTX. That is safer
 +than using this option to poll for certificate changes and doesn't suffer from
 +any of the problems above. There is currently no way in libcurl to set a
 +verification callback for the other SSL backends.
 +
 +How are you using this option? Are you affected by any of these limitations?
 +Please let us know by making a comment at
 +https://github.com/curl/curl/issues/685
 +.SH PROTOCOLS
 +All TLS-based
 +.SH EXAMPLE
 +.nf
- CURL *curl = curl_easy_init();
- if(curl) {
++#include <curl/curl.h>
++#include <openssl/ssl.h>
++
++CURL *curl;
++static size_t wf(void *ptr, size_t size, size_t nmemb, void *stream)
++{
++  const struct curl_tlssessioninfo *info = NULL;
++  CURLcode res = curl_easy_getinfo(curl, CURLINFO_TLS_SSL_PTR, &info);
++  if(info && !res) {
++    if(CURLSSLBACKEND_OPENSSL == info->backend) {
++       printf("OpenSSL ver. %s\\n", SSL_get_version((SSL*)info->internals));
++    }
++  }
++  return size * nmemb;
++}
++
++int main(int argc, char** argv)
++{
 +  CURLcode res;
-   struct curl_tlssessioninfo *tls;
-   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
-   res = curl_easy_perform(curl);
-   curl_easy_getinfo(curl, CURLINFO_TLS_SSL_PTR, &tls);
-   curl_easy_cleanup(curl);
++  curl = curl_easy_init();
++  if(curl) {
++    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
++    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wf);
++    res = curl_easy_perform(curl);
++    curl_easy_cleanup(curl);
++  }
++  return res;
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.48.0.
 +
 +This option supersedes \fICURLINFO_TLS_SESSION(3)\fP which was added in 
7.34.0.
 +This option is exactly the same as that option except in the case of OpenSSL.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_TLS_SESSION "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
index 6d8a6da55,000000000..83598f0ea
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_TOTAL_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_TOTAL_TIME \- get total time of previous transfer
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME, double *timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total time in seconds for the
 +previous transfer, including name resolving, TCP connect etc. The double
 +represents the time in seconds, including fractions.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double total;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", total);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
++.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " CURLINFO_TOTAL_TIME_T 
"(3)"
diff --cc docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
index b3af2c581,000000000..f5a0025cf
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
+++ b/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
@@@ -1,88 -1,0 +1,96 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_ACCEPT_ENCODING 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc);
 +.SH DESCRIPTION
 +Pass a char * argument specifying what encoding you'd like.
 +
 +Sets the contents of the Accept-Encoding: header sent in an HTTP request, and
 +enables decoding of a response when a Content-Encoding: header is received.
- Three encodings are supported: \fIidentity\fP, meaning non-compressed,
- \fIdeflate\fP which requests the server to compress its response using the
- zlib algorithm, and \fIgzip\fP which requests the gzip algorithm.
 +
- If a zero-length string is set like "", then an Accept-Encoding: header
- containing all built-in supported encodings is sent.
++libcurl potentially supports several different compressed encodings depending
++on what support that has been built-in.
++
++To aid applications not having to bother about what specific algorithms this
++particular libcurl build supports, libcurl allows a zero-length string to be
++set ("") to ask for an Accept-Encoding: header to be used that contains all
++built-in supported encodings.
++
++Alternatively, you can specify exactly the encoding or list of encodings you
++want in the response. Four encodings are supported: \fIidentity\fP, meaning
++non-compressed, \fIdeflate\fP which requests the server to compress its
++response using the zlib algorithm, \fIgzip\fP which requests the gzip
++algorithm and (since curl 7.57.0) \fIbr\fP which is brotli.
 +
 +Set this option to NULL to explicitly disable it, which makes libcurl not send
 +an Accept-Encoding: header and not decompress contents automatically.
 +
 +You can also opt to just include the Accept-Encoding: header in your request
 +with \fICURLOPT_HTTPHEADER(3)\fP but then there will be no automatic
 +decompressing when receiving data.
 +
 +This is a request, not an order; the server may or may not do it.  This option
 +must be set (to any non-NULL value) or else any unsolicited encoding done by
 +the server is ignored.
 +
 +Servers might respond with Content-Encoding even without getting a
 +Accept-Encoding: in the request. Servers might respond with a different
 +Content-Encoding than what was asked for in the request.
 +
 +The Content-Length: servers send for a compressed response is supposed to
 +indicate the length of the compressed content so when auto decoding is enabled
 +it may not match the sum of bytes reported by the write callbacks (although,
 +sending the length of the non-compressed content is a common server mistake).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
 +  /* enable all supported built-in compressions */
 +  curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "");
 +
 +  /* Perform the request */
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option was called CURLOPT_ENCODING before 7.21.6
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_TRANSFER_ENCODING "(3), " CURLOPT_HTTPHEADER "(3), "
 +.BR CURLOPT_HTTP_CONTENT_DECODING "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_HAPROXYPROTOCOL.3
index c5c8f10a4,000000000..e1bc12dbf
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HAPROXYPROTOCOL.3
+++ b/docs/libcurl/opts/GNURLOPT_HAPROXYPROTOCOL.3
@@@ -1,57 -1,0 +1,57 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_HAPROXYPROTOCOL 3 "5 Feb 2018" "libcurl 7.60.0" "curl_easy_setopt 
options"
 +.SH NAME
- CURLOPT_HAPROXYPROTOCOL \- send HAProxy PROXY protocol header
++CURLOPT_HAPROXYPROTOCOL \- send HAProxy PROXY protocol v1 header
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HAPROXYPROTOCOL,
 +                          long haproxy_protocol);
 +.SH DESCRIPTION
 +A long parameter set to 1 tells the library to send an HAProxy PROXY
- protocol header at beginning of the connection. The default action is not to
++protocol v1 header at beginning of the connection. The default action is not 
to
 +send this header.
 +
 +This option is primarily useful when sending test requests to a service that
 +expects this header.
 +
 +Most applications do not need this option.
 +.SH DEFAULT
- 0, do not send HAProxy PROXY protocol header
++0, do not send any HAProxy PROXY protocol header
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode ret;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  curl_easy_setopt(curl, CURLOPT_HAPROXYPROTOCOL, 1L);
 +  ret = curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Along with HTTP. Added in 7.60.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is enabled, and CURLE_UNKNOWN_OPTION if not.
diff --cc docs/libcurl/opts/GNURLOPT_HTTPAUTH.3
index e9ee9de2e,000000000..c5897d65c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HTTPAUTH.3
+++ b/docs/libcurl/opts/GNURLOPT_HTTPAUTH.3
@@@ -1,126 -1,0 +1,132 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_HTTPAUTH 3 "2 Aug 2014" "libcurl 7.38.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPAUTH, long bitmask);
 +.SH DESCRIPTION
 +Pass a long as parameter, which is set to a bitmask, to tell libcurl which
 +authentication method(s) you want it to use speaking to the remote server.
 +
 +The available bits are listed below. If more than one bit is set, libcurl will
 +first query the site to see which authentication methods it supports and then
 +pick the best one you allow it to use. For some methods, this will induce an
 +extra network round-trip. Set the actual name and password with the
 +\fICURLOPT_USERPWD(3)\fP option or with the \fICURLOPT_USERNAME(3)\fP and the
 +\fICURLOPT_PASSWORD(3)\fP options.
 +
 +For authentication with a proxy, see \fICURLOPT_PROXYAUTH(3)\fP.
 +
 +.IP CURLAUTH_BASIC
 +HTTP Basic authentication. This is the default choice, and the only method
 +that is in wide-spread use and supported virtually everywhere. This sends
 +the user name and password over the network in plain text, easily captured by
 +others.
 +.IP CURLAUTH_DIGEST
 +HTTP Digest authentication.  Digest authentication is defined in RFC2617 and
 +is a more secure way to do authentication over public networks than the
 +regular old-fashioned Basic method.
 +.IP CURLAUTH_DIGEST_IE
 +HTTP Digest authentication with an IE flavor.  Digest authentication is
 +defined in RFC2617 and is a more secure way to do authentication over public
 +networks than the regular old-fashioned Basic method. The IE flavor is simply
 +that libcurl will use a special "quirk" that IE is known to have used before
 +version 7 and that some servers require the client to use.
++.IP CURLAUTH_BEARER
++HTTP Bearer token authentication, used primarily in OAuth 2.0 protocol.
++
++You can set the Bearer token to use with \fICURLOPT_XOAUTH2_BEARER(3)\fP.
 +.IP CURLAUTH_NEGOTIATE
 +HTTP Negotiate (SPNEGO) authentication. Negotiate authentication is defined
 +in RFC 4559 and is the most secure way to perform authentication over HTTP.
 +
 +You need to build libcurl with a suitable GSS-API library or SSPI on Windows
 +for this to work.
 +.IP CURLAUTH_NTLM
 +HTTP NTLM authentication. A proprietary protocol invented and used by
 +Microsoft. It uses a challenge-response and hash concept similar to Digest, to
 +prevent the password from being eavesdropped.
 +
 +You need to build libcurl with either OpenSSL, GnuTLS or NSS support for this
 +option to work, or build libcurl on Windows with SSPI support.
 +.IP CURLAUTH_NTLM_WB
 +NTLM delegating to winbind helper. Authentication is performed by a separate
 +binary application that is executed when needed. The name of the application
 +is specified at compile time but is typically /usr/bin/ntlm_auth
 +
 +Note that libcurl will fork when necessary to run the winbind application and
 +kill it when complete, calling waitpid() to await its exit when done. On POSIX
 +operating systems, killing the process will cause a SIGCHLD signal to be
 +raised (regardless of whether \fICURLOPT_NOSIGNAL(3)\fP is set), which must be
 +handled intelligently by the application. In particular, the application must
 +not unconditionally call wait() in its SIGCHLD signal handler to avoid being
 +subject to a race condition.  This behavior is subject to change in future
 +versions of libcurl.
 +.IP CURLAUTH_ANY
 +This is a convenience macro that sets all bits and thus makes libcurl pick any
 +it finds suitable. libcurl will automatically select the one it finds most
 +secure.
 +.IP CURLAUTH_ANYSAFE
 +This is a convenience macro that sets all bits except Basic and thus makes
 +libcurl pick any it finds suitable. libcurl will automatically select the one
 +it finds most secure.
 +.IP CURLAUTH_ONLY
 +This is a meta symbol. OR this value together with a single specific auth
 +value to force libcurl to probe for un-restricted auth and if not, only that
 +single auth algorithm is acceptable.
 +.SH DEFAULT
 +CURLAUTH_BASIC
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode ret;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  /* allow whatever auth the server speaks */
 +  curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
 +  curl_easy_setopt(curl, CURLOPT_USERPWD, "james:bond");
 +  ret = curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Option Added in 7.10.6.
 +
 +CURLAUTH_DIGEST_IE was added in 7.19.3
 +
 +CURLAUTH_ONLY was added in 7.21.3
 +
 +CURLAUTH_NTLM_WB was added in 7.22.0
++
++CURLAUTH_BEARER was added in 7.61.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_NOT_BUILT_IN if the bitmask specified no supported authentication
 +methods.
 +.SH "SEE ALSO"
 +.BR CURLOPT_PROXYAUTH "(3), " CURLOPT_USERPWD "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_HTTPGET.3
index 071705683,000000000..f06cb7a87
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HTTPGET.3
+++ b/docs/libcurl/opts/GNURLOPT_HTTPGET.3
@@@ -1,59 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_HTTPGET 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_HTTPGET \- ask for an HTTP GET request
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPGET, long useget);
 +.SH DESCRIPTION
 +Pass a long. If \fIuseget\fP is 1, this forces the HTTP request to get back to
 +using GET. Usable if a POST, HEAD, PUT, etc has been used previously using the
 +same curl \fIhandle\fP.
 +
 +When setting \fICURLOPT_HTTPGET(3)\fP to 1, it will automatically set
 +\fICURLOPT_NOBODY(3)\fP to 0 and \fICURLOPT_UPLOAD(3)\fP to 0.
++
++Setting this option to zero has no effect. Applications need to explicitly
++select which HTTP request method to use, they cannot deselect a method. To
++reset a handle to default method, consider \fIcurl_easy_reset(3)\fP.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
-   /* use a GET to fetch this */ 
++  /* use a GET to fetch this */
 +  curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
 +
-   /* Perform the request */ 
++  /* Perform the request */
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Along with HTTP
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
- .BR CURLOPT_NOBODY "(3), " CURLOPT_UPLOAD "(3), "
++.BR CURLOPT_NOBODY "(3), " CURLOPT_UPLOAD "(3), " CURLOPT_POST "(3), "
++.BR curl_easy_reset "(3) "
diff --cc docs/libcurl/opts/GNURLOPT_INTERFACE.3
index be29fc034,000000000..16c7f358c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_INTERFACE.3
+++ b/docs/libcurl/opts/GNURLOPT_INTERFACE.3
@@@ -1,69 -1,0 +1,72 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_INTERFACE 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_INTERFACE \- source interface for outgoing traffic
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERFACE, char *interface);
 +.SH DESCRIPTION
 +Pass a char * as parameter. This sets the \fIinterface\fP name to use as
 +outgoing network interface. The name can be an interface name, an IP address,
 +or a host name.
 +
 +If the parameter starts with "if!" then it is treated as only as interface
 +name and no attempt will ever be named to do treat it as an IP address or to
 +do name resolution on it.  If the parameter starts with \&"host!" it is
 +treated as either an IP address or a hostname.  Hostnames are resolved
 +synchronously.  Using the if! format is highly recommended when using the
 +multi interfaces to avoid allowing the code to block.  If "if!" is specified
 +but the parameter does not match an existing interface, CURLE_INTERFACE_FAILED
 +is returned from the libcurl function used to perform the transfer.
 +
++libcurl does not support using network interface names for this option on
++Windows.
++
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL, use whatever the TCP stack finds suitable
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
 +
 +  curl_easy_setopt(curl, CURLOPT_INTERFACE, "eth0");
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +The "if!" and "host!" syntax was added in 7.24.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK on success or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_SOCKOPTFUNCTION "(3), " CURLOPT_TCP_NODELAY "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_POST.3
index 727f36f5b,000000000..e9e1aa7fe
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_POST.3
+++ b/docs/libcurl/opts/GNURLOPT_POST.3
@@@ -1,89 -1,0 +1,89 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_POST 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_POST \- request an HTTP POST
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POST, long post);
 +.SH DESCRIPTION
 +A parameter set to 1 tells libcurl to do a regular HTTP post. This will also
 +make the library use a "Content-Type: application/x-www-form-urlencoded"
 +header. (This is by far the most commonly used POST method).
 +
 +Use one of \fICURLOPT_POSTFIELDS(3)\fP or \fICURLOPT_COPYPOSTFIELDS(3)\fP
 +options to specify what data to post and \fICURLOPT_POSTFIELDSIZE(3)\fP or
 +\fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP to set the data size.
 +
 +Optionally, you can provide data to POST using the
 +\fICURLOPT_READFUNCTION(3)\fP and \fICURLOPT_READDATA(3)\fP options but then
 +you must make sure to not set \fICURLOPT_POSTFIELDS(3)\fP to anything but
 +NULL. When providing data with a callback, you must transmit it using chunked
 +transfer-encoding or you must set the size of the data with the
 +\fICURLOPT_POSTFIELDSIZE(3)\fP or \fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP
 +options. To enable chunked encoding, you simply pass in the appropriate
 +Transfer-Encoding header, see the post-callback.c example.
 +
 +You can override the default POST Content-Type: header by setting your own
 +with \fICURLOPT_HTTPHEADER(3)\fP.
 +
 +Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header.
 +You can disable this header with \fICURLOPT_HTTPHEADER(3)\fP as usual.
 +
 +If you use POST to an HTTP 1.1 server, you can send data without knowing the
 +size before starting the POST if you use chunked encoding. You enable this by
 +adding a header like "Transfer-Encoding: chunked" with
 +\fICURLOPT_HTTPHEADER(3)\fP. With HTTP 1.0 or without chunked transfer, you
 +must specify the size in the request.
 +
- When setting \fICURLOPT_POST(3)\fP to 1, it will automatically set
- \fICURLOPT_NOBODY(3)\fP to 0.
++When setting \fICURLOPT_POST(3)\fP to 1, libcurl will automatically set
++\fICURLOPT_NOBODY(3)\fP and \fICURLOPT_HTTPGET(3)\fP to 0.
 +
 +If you issue a POST request and then want to make a HEAD or GET using the same
 +re-used handle, you must explicitly set the new request type using
 +\fICURLOPT_NOBODY(3)\fP or \fICURLOPT_HTTPGET(3)\fP or similar.
 +.SH DEFAULT
 +0, disabled
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
 +  curl_easy_setopt(curl, CURLOPT_POST, 1L);
 +
 +  /* set up the read callback with CURLOPT_READFUNCTION */
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Along with HTTP
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_POSTFIELDS "(3), " CURLOPT_HTTPPOST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_POSTFIELDS.3
index a567ee1de,000000000..29ab06dac
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_POSTFIELDS.3
+++ b/docs/libcurl/opts/GNURLOPT_POSTFIELDS.3
@@@ -1,88 -1,0 +1,88 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_POSTFIELDS 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_POSTFIELDS \- specify data to POST to server
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_POSTFIELDS, char *postdata);
 +.SH DESCRIPTION
 +Pass a char * as parameter, pointing to the full data to send in an HTTP POST
 +operation. You must make sure that the data is formatted the way you want the
 +server to receive it. libcurl will not convert or encode it for you in any
 +way. For example, the web server may assume that this data is url-encoded.
 +
 +The data pointed to is NOT copied by the library: as a consequence, it must be
 +preserved by the calling application until the associated transfer finishes.
 +This behaviour can be changed (so libcurl does copy the data) by setting the
 +\fICURLOPT_COPYPOSTFIELDS(3)\fP option.
 +
 +This POST is a normal application/x-www-form-urlencoded kind (and libcurl will
 +set that Content-Type by default when this option is used), which is commonly
 +used by HTML forms. Change Content-Type with \fICURLOPT_HTTPHEADER(3)\fP.
 +
 +You can use \fIcurl_easy_escape(3)\fP to url-encode your data, if necessary. 
It
 +returns a pointer to an encoded string that can be passed as \fIpostdata\fP.
 +
- Using \fICURLOPT_POSTFIELDS(3)\fP implies \fICURLOPT_POST(3)\fP.
++Using \fICURLOPT_POSTFIELDS(3)\fP implies setting \fICURLOPT_POST(3)\fP to 1.
 +
 +If \fICURLOPT_POSTFIELDS(3)\fP is explicitly set to NULL then libcurl will get
 +the POST data from the read callback. If you want to send a zero-byte POST set
 +\fICURLOPT_POSTFIELDS(3)\fP to an empty string, or set \fICURLOPT_POST(3)\fP 
to
 +1 and \fICURLOPT_POSTFIELDSIZE(3)\fP to 0.
 +
 +Using POST with HTTP 1.1 implies the use of a "Expect: 100-continue" header,
 +and libcurl will add that header automatically if the POST is either known to
 +be larger than 1024 bytes or if the expected size is unknown. You can disable
 +this header with \fICURLOPT_HTTPHEADER(3)\fP as usual.
 +
 +To make multipart/formdata posts (aka RFC2388-posts), check out the
 +\fICURLOPT_HTTPPOST(3)\fP option combined with \fIcurl_formadd(3)\fP.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  const char *data = "data to send";
 +
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
 +  /* size of the POST data */
 +  curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);
 +
 +  /* pass in a pointer to the data - libcurl will not copy */
 +  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_POSTFIELDSIZE "(3), " CURLOPT_READFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_RESOLVE.3
index b6144a78a,000000000..fff2ea033
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_RESOLVE.3
+++ b/docs/libcurl/opts/GNURLOPT_RESOLVE.3
@@@ -1,92 -1,0 +1,97 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_RESOLVE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_RESOLVE \- provide custom host name to IP address resolves
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVE,
 +                          struct curl_slist *hosts);
 +.SH DESCRIPTION
 +Pass a pointer to a linked list of strings with host name resolve information
 +to use for requests with this handle. 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.
 +
 +Each single name resolve string should be written using the format
 +HOST:PORT:ADDRESS[,ADDRESS]... where HOST is the name libcurl will try
 +to resolve, PORT is the port number of the service where libcurl wants
 +to connect to the HOST and ADDRESS is one or more numerical IP
 +addresses. If you specify multiple ip addresses they need to be
 +separated by comma. If libcurl is built to support IPv6, each of the
 +ADDRESS entries can of course be either IPv4 or IPv6 style addressing.
 +
 +This option effectively pre-populates the DNS cache with entries for the
 +host+port pair so redirects and everything that operations against the
 +HOST+PORT will instead use your provided ADDRESS. Addresses set with
 +\fICURLOPT_RESOLVE(3)\fP will not time-out from the DNS cache like ordinary
 +entries.
 +
++If the DNS cache already have an entry for the given host+port pair, then
++this entry will be removed and a new entry will be created. This is because
++old entry may have have different addresses or be ordinary entries with
++time-outs.
++
 +The provided ADDRESS set by this option will be used even if
 +\fICURLOPT_IPRESOLVE(3)\fP is set to make libcurl use another IP version.
 +
 +Remove names from the DNS cache again, to stop providing these fake resolves,
 +by including a string in the linked list that uses the format
 +\&"-HOST:PORT". The host name must be prefixed with a dash, and the host name
 +and port number must exactly match what was already added previously.
 +
 +Support for providing the ADDRESS within [brackets] was added in 7.57.0.
 +
 +Support for providing multiple IP addresses per entry was added in 7.59.0.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl;
 +struct curl_slist *host = NULL;
 +host = curl_slist_append(NULL, "example.com:80:127.0.0.1");
 +
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_RESOLVE, host);
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
 +  curl_easy_perform(curl);
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +
 +curl_slist_free_all(host);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.3. Removal support added in 7.42.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_IPRESOLVE "(3), " CURLOPT_DNS_CACHE_TIMEOUT "(3), " 
CURLOPT_CONNECT_TO "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_SSLVERSION.3
index b2b112083,000000000..81df49fdd
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_SSLVERSION.3
+++ b/docs/libcurl/opts/GNURLOPT_SSLVERSION.3
@@@ -1,102 -1,0 +1,108 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2015, 2018, Daniel Stenberg, <address@hidden>, et 
al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_SSLVERSION 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_SSLVERSION \- set preferred TLS/SSL version
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSLVERSION, long version);
 +.SH DESCRIPTION
- Pass a long as parameter to control which version of SSL/TLS to attempt to
++Pass a long as parameter to control which version range of SSL/TLS versions to
 +use.
 +
++The SSL and TLS versions have typically developed from the most insecure
++version to be more and more secure in this order through history: SSL v2,
++SSLv3, TLS v1.0, TSL v1.1, TSL v1.2 and the most recent TLS v1.3.
++
 +Use one of the available defines for this purpose. The available options are:
 +.RS
 +.IP CURL_SSLVERSION_DEFAULT
- The default action. This will attempt to figure out the remote SSL protocol
- version.
++The default acceptable version range. The mimimum acceptable version is by
++default TLS 1.0 since 7.39.0 (unless the TLS library has a stricter rule).
 +.IP CURL_SSLVERSION_TLSv1
- TLSv1.x
++TLS v1.0 or later
 +.IP CURL_SSLVERSION_SSLv2
- SSLv2
++SSL v2 (but not SSLv3)
 +.IP CURL_SSLVERSION_SSLv3
- SSLv3
++SSL v3 (but not SSLv2)
 +.IP CURL_SSLVERSION_TLSv1_0
- TLSv1.0 (Added in 7.34.0)
++TLS v1.0 or later (Added in 7.34.0)
 +.IP CURL_SSLVERSION_TLSv1_1
- TLSv1.1 (Added in 7.34.0)
++TLS v1.1 or later (Added in 7.34.0)
 +.IP CURL_SSLVERSION_TLSv1_2
- TLSv1.2 (Added in 7.34.0)
++TLS v1.2 or later (Added in 7.34.0)
 +.IP CURL_SSLVERSION_TLSv1_3
- TLSv1.3 (Added in 7.52.0)
++TLS v1.3 or later (Added in 7.52.0)
 +.RE
++
 +The maximum TLS version can be set by using \fIone\fP of the
 +CURL_SSLVERSION_MAX_ macros below. It is also possible to OR \fIone\fP of the
 +CURL_SSLVERSION_ macros with \fIone\fP of the CURL_SSLVERSION_MAX_ macros.
 +The MAX macros are not supported for SSL backends axTLS or wolfSSL.
 +.RS
 +.IP CURL_SSLVERSION_MAX_DEFAULT
- The flag defines the maximum supported TLS version as TLSv1.2, or the default
- value from the SSL library.
- (Added in 7.54.0)
++The flag defines the maximum supported TLS version by libcurl, or the default
++value from the SSL library is used. libcurl will use a sensible default
++maximum, which was TLS 1.2 up to before 7.61.0 and is TLS 1.3 since then -
++assuming the TLS library support it. (Added in 7.54.0)
 +.IP CURL_SSLVERSION_MAX_TLSv1_0
- The flag defines maximum supported TLS version as TLSv1.0.
++The flag defines maximum supported TLS version as TLS v1.0.
 +(Added in 7.54.0)
 +.IP CURL_SSLVERSION_MAX_TLSv1_1
- The flag defines maximum supported TLS version as TLSv1.1.
++The flag defines maximum supported TLS version as TLS v1.1.
 +(Added in 7.54.0)
 +.IP CURL_SSLVERSION_MAX_TLSv1_2
- The flag defines maximum supported TLS version as TLSv1.2.
++The flag defines maximum supported TLS version as TLS v1.2.
 +(Added in 7.54.0)
 +.IP CURL_SSLVERSION_MAX_TLSv1_3
- The flag defines maximum supported TLS version as TLSv1.3.
++The flag defines maximum supported TLS version as TLS v1.3.
 +(Added in 7.54.0)
 +.RE
 +.SH DEFAULT
 +CURL_SSLVERSION_DEFAULT
 +.SH PROTOCOLS
 +All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* ask libcurl to use TLS version 1.0 or later */
 +  curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
 +
 +  /* Perform the request */
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +SSLv2 is disabled by default since 7.18.1. Other SSL versions availability may
 +vary depending on which backend libcurl has been built to use.
 +
 +SSLv3 is disabled by default since 7.39.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_USE_SSL "(3), " CURLOPT_HTTP_VERSION "(3), "
 +.BR CURLOPT_IPRESOLVE "(3) "
diff --cc docs/libcurl/opts/GNURLOPT_SSL_VERIFYPEER.3
index b4d7658c7,000000000..65b8ea988
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_SSL_VERIFYPEER.3
+++ b/docs/libcurl/opts/GNURLOPT_SSL_VERIFYPEER.3
@@@ -1,83 -1,0 +1,93 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_SSL_VERIFYPEER 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_SSL_VERIFYPEER \- verify the peer's SSL certificate
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYPEER, long verify);
 +.SH DESCRIPTION
 +Pass a long as parameter to enable or disable.
 +
 +This option determines whether curl verifies the authenticity of the peer's
 +certificate. A value of 1 means curl verifies; 0 (zero) means it doesn't.
 +
 +When negotiating a TLS or SSL connection, the server sends a certificate
 +indicating its identity.  Curl verifies whether the certificate is authentic,
 +i.e. that you can trust that the server is who the certificate says it is.
 +This trust is based on a chain of digital signatures, rooted in certification
 +authority (CA) certificates you supply.  curl uses a default bundle of CA
 +certificates (the path for that is determined at build time) and you can
 +specify alternate certificates with the \fICURLOPT_CAINFO(3)\fP option or the
 +\fICURLOPT_CAPATH(3)\fP option.
 +
 +When \fICURLOPT_SSL_VERIFYPEER(3)\fP is enabled, and the verification fails to
 +prove that the certificate is authentic, the connection fails.  When the
 +option is zero, the peer certificate verification succeeds regardless.
 +
 +Authenticating the certificate is not enough to be sure about the server. You
 +typically also want to ensure that the server is the server you mean to be
 +talking to.  Use \fICURLOPT_SSL_VERIFYHOST(3)\fP for that. The check that the
 +host name in the certificate is valid for the host name you're connecting to
 +is done independently of the \fICURLOPT_SSL_VERIFYPEER(3)\fP option.
 +
 +WARNING: disabling verification of the certificate allows bad guys to
 +man-in-the-middle the communication without you knowing it. Disabling
 +verification makes the communication insecure. Just having encryption on a
 +transfer is not enough as you cannot be sure that you are communicating with
 +the correct end-point.
++
++NOTE: even when this option is disabled, depending on the used TLS backend,
++curl may still load the certificate file specified in
++\fICURLOPT_CAINFO(3)\fP. curl default settings in some distributions might use
++quite a large file as a default setting for \fICURLOPT_CAINFO(3)\fP, so
++loading the file can be quite expensive, especially when dealing with many
++connections. Thus, in some situations, you might want to disable verification
++fully to save resources by setting \fICURLOPT_CAINFO(3)\fP to NULL - but
++please also consider the warning above!
 +.SH DEFAULT
 +By default, curl assumes a value of 1.
 +.SH PROTOCOLS
 +All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Set the default value: strict certificate check please */
 +  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +If built TLS enabled.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_SSL_VERIFYHOST "(3), "
 +.BR CURLOPT_PROXY_SSL_VERIFYPEER "(3), "
 +.BR CURLOPT_PROXY_SSL_VERIFYHOST "(3), "
++.BR CURLOPT_CAINFO "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_WILDCARDMATCH.3
index 6dfe91215,000000000..8964602bf
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_WILDCARDMATCH.3
+++ b/docs/libcurl/opts/GNURLOPT_WILDCARDMATCH.3
@@@ -1,87 -1,0 +1,87 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_WILDCARDMATCH 3 "16 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_WILDCARDMATCH \- enable directory wildcard transfers
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WILDCARDMATCH, long onoff);
 +.SH DESCRIPTION
 +Set \fIonoff\fP to 1 if you want to transfer multiple files according to a
 +file name pattern. The pattern can be specified as part of the
 +\fICURLOPT_URL(3)\fP option, using an fnmatch-like pattern (Shell Pattern
 +Matching) in the last part of URL (file name).
 +
 +By default, libcurl uses its internal wildcard matching implementation. You
 +can provide your own matching function by the
 +\fICURLOPT_FNMATCH_FUNCTION(3)\fP option.
 +
 +A brief introduction of its syntax follows:
 +.RS
 +.IP "* - ASTERISK"
 +\&ftp://example.com/some/path/\fB*.txt\fP (for all txt's from the root
- directory)
++directory). Only two asterisks are allowed within the same pattern string.
 +.RE
 +.RS
 +.IP "? - QUESTION MARK"
 +Question mark matches any (exactly one) character.
 +
 +\&ftp://example.com/some/path/\fBphoto?.jpeg\fP
 +.RE
 +.RS
 +.IP "[ - BRACKET EXPRESSION"
 +The left bracket opens a bracket expression. The question mark and asterisk 
have
 +no special meaning in a bracket expression. Each bracket expression ends by 
the
 +right bracket and matches exactly one character. Some examples follow:
 +
 +\fB[a-zA-Z0\-9]\fP or \fB[f\-gF\-G]\fP \- character interval
 +
 +\fB[abc]\fP - character enumeration
 +
 +\fB[^abc]\fP or \fB[!abc]\fP - negation
 +
 +\fB[[:\fP\fIname\fP\fB:]]\fP class expression. Supported classes are
 +\fBalnum\fP,\fBlower\fP, \fBspace\fP, \fBalpha\fP, \fBdigit\fP, \fBprint\fP,
 +\fBupper\fP, \fBblank\fP, \fBgraph\fP, \fBxdigit\fP.
 +
 +\fB[][-!^]\fP - special case \- matches only '\-', ']', '[', '!' or '^'. These
 +characters have no special purpose.
 +
 +\fB[\\[\\]\\\\]\fP - escape syntax. Matches '[', ']' or '\\'.
 +
 +Using the rules above, a file name pattern can be constructed:
 +
 +\&ftp://example.com/some/path/\fB[a-z[:upper:]\\\\].jpeg\fP
 +.RE
 +.PP
 +.SH PROTOCOLS
 +This feature is only supported for FTP download.
 +.SH EXAMPLE
 +See https://curl.haxx.se/libcurl/c/ftp-wildcard.html
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_FNMATCH_FUNCTION "(3), " CURLOPT_URL "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_XOAUTH2_BEARER.3
index f7377a372,000000000..3f13e4e47
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_XOAUTH2_BEARER.3
+++ b/docs/libcurl/opts/GNURLOPT_XOAUTH2_BEARER.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
 +.\" * are also available at https://curl.haxx.se/docs/copyright.html.
 +.\" *
 +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 +.\" * copies of the Software, and permit persons to whom the Software is
 +.\" * furnished to do so, under the terms of the COPYING file.
 +.\" *
 +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
ANY
 +.\" * KIND, either express or implied.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_XOAUTH2_BEARER 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_XOAUTH2_BEARER \- specify OAuth 2.0 access token
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_XOAUTH2_BEARER, char *token);
 +.SH DESCRIPTION
 +Pass a char * as parameter, which should point to the zero terminated OAuth
- 2.0 Bearer Access Token for use with IMAP, POP3 and SMTP servers that support
- the OAuth 2.0 Authorization Framework.
++2.0 Bearer Access Token for use with HTTP, IMAP, POP3 and SMTP servers
++that support the OAuth 2.0 Authorization Framework.
 +
- Note: The user name used to generate the Bearer Token should be supplied via
- the \fICURLOPT_USERNAME(3)\fP option.
++Note: For IMAP, POP3 and SMTP, the user name used to generate the Bearer Token
++should be supplied via the \fICURLOPT_USERNAME(3)\fP option.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +IMAP, POP3 and SMTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "pop3://example.com/");
 +  curl_easy_setopt(curl, CURLOPT_XOAUTH2_BEARER, "1ab9cb22ba269a7");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.33.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_MAIL_AUTH "(3), " CURLOPT_USERNAME "(3), "
diff --cc docs/libcurl/opts/Makefile.inc
index 620f32bd8,32485e292..67ae66701
--- a/docs/libcurl/opts/Makefile.inc
+++ b/docs/libcurl/opts/Makefile.inc
@@@ -1,330 -1,340 +1,340 @@@
  # Shared between Makefile.am and CMakeLists.txt
  
  man_MANS =                                      \
 -  CURLINFO_ACTIVESOCKET.3                       \
 -  CURLINFO_APPCONNECT_TIME.3                    \
 -  CURLINFO_APPCONNECT_TIME_T.3                  \
 -  CURLINFO_CERTINFO.3                           \
 -  CURLINFO_CONDITION_UNMET.3                    \
 -  CURLINFO_CONNECT_TIME.3                       \
 -  CURLINFO_CONNECT_TIME_T.3                     \
 -  CURLINFO_CONTENT_LENGTH_DOWNLOAD.3            \
 -  CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3          \
 -  CURLINFO_CONTENT_LENGTH_UPLOAD.3              \
 -  CURLINFO_CONTENT_LENGTH_UPLOAD_T.3            \
 -  CURLINFO_CONTENT_TYPE.3                       \
 -  CURLINFO_COOKIELIST.3                         \
 -  CURLINFO_EFFECTIVE_URL.3                      \
 -  CURLINFO_FILETIME.3                           \
 -  CURLINFO_FILETIME_T.3                         \
 -  CURLINFO_FTP_ENTRY_PATH.3                     \
 -  CURLINFO_HEADER_SIZE.3                        \
 -  CURLINFO_HTTPAUTH_AVAIL.3                     \
 -  CURLINFO_HTTP_CONNECTCODE.3                   \
 -  CURLINFO_HTTP_VERSION.3                       \
 -  CURLINFO_LASTSOCKET.3                         \
 -  CURLINFO_LOCAL_IP.3                           \
 -  CURLINFO_LOCAL_PORT.3                         \
 -  CURLINFO_NAMELOOKUP_TIME.3                    \
 -  CURLINFO_NAMELOOKUP_TIME_T.3                  \
 -  CURLINFO_NUM_CONNECTS.3                       \
 -  CURLINFO_OS_ERRNO.3                           \
 -  CURLINFO_PRETRANSFER_TIME.3                   \
 -  CURLINFO_PRETRANSFER_TIME_T.3                 \
 -  CURLINFO_PRIMARY_IP.3                         \
 -  CURLINFO_PRIMARY_PORT.3                       \
 -  CURLINFO_PRIVATE.3                            \
 -  CURLINFO_PROTOCOL.3                           \
 -  CURLINFO_PROXYAUTH_AVAIL.3                    \
 -  CURLINFO_PROXY_SSL_VERIFYRESULT.3             \
 -  CURLINFO_REDIRECT_COUNT.3                     \
 -  CURLINFO_REDIRECT_TIME.3                      \
 -  CURLINFO_REDIRECT_TIME_T.3                    \
 -  CURLINFO_REDIRECT_URL.3                       \
 -  CURLINFO_REQUEST_SIZE.3                       \
 -  CURLINFO_RESPONSE_CODE.3                      \
 -  CURLINFO_RTSP_CLIENT_CSEQ.3                   \
 -  CURLINFO_RTSP_CSEQ_RECV.3                     \
 -  CURLINFO_RTSP_SERVER_CSEQ.3                   \
 -  CURLINFO_RTSP_SESSION_ID.3                    \
 -  CURLINFO_SCHEME.3                             \
 -  CURLINFO_SIZE_DOWNLOAD.3                      \
 -  CURLINFO_SIZE_DOWNLOAD_T.3                    \
 -  CURLINFO_SIZE_UPLOAD.3                        \
 -  CURLINFO_SIZE_UPLOAD_T.3                      \
 -  CURLINFO_SPEED_DOWNLOAD.3                     \
 -  CURLINFO_SPEED_DOWNLOAD_T.3                   \
 -  CURLINFO_SPEED_UPLOAD.3                       \
 -  CURLINFO_SPEED_UPLOAD_T.3                     \
 -  CURLINFO_SSL_ENGINES.3                        \
 -  CURLINFO_SSL_VERIFYRESULT.3                   \
 -  CURLINFO_STARTTRANSFER_TIME.3                 \
 -  CURLINFO_STARTTRANSFER_TIME_T.3               \
 -  CURLINFO_TLS_SESSION.3                        \
 -  CURLINFO_TLS_SSL_PTR.3                        \
 -  CURLINFO_TOTAL_TIME.3                         \
 -  CURLINFO_TOTAL_TIME_T.3                       \
 -  CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3          \
 -  CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3        \
 -  CURLMOPT_MAXCONNECTS.3                        \
 -  CURLMOPT_MAX_HOST_CONNECTIONS.3               \
 -  CURLMOPT_MAX_PIPELINE_LENGTH.3                \
 -  CURLMOPT_MAX_TOTAL_CONNECTIONS.3              \
 -  CURLMOPT_PIPELINING.3                         \
 -  CURLMOPT_PIPELINING_SERVER_BL.3               \
 -  CURLMOPT_PIPELINING_SITE_BL.3                 \
 -  CURLMOPT_PUSHDATA.3                           \
 -  CURLMOPT_PUSHFUNCTION.3                       \
 -  CURLMOPT_SOCKETDATA.3                         \
 -  CURLMOPT_SOCKETFUNCTION.3                     \
 -  CURLMOPT_TIMERDATA.3                          \
 -  CURLMOPT_TIMERFUNCTION.3                      \
 -  CURLOPT_ABSTRACT_UNIX_SOCKET.3                \
 -  CURLOPT_ACCEPTTIMEOUT_MS.3                    \
 -  CURLOPT_ACCEPT_ENCODING.3                     \
 -  CURLOPT_ADDRESS_SCOPE.3                       \
 -  CURLOPT_APPEND.3                              \
 -  CURLOPT_AUTOREFERER.3                         \
 -  CURLOPT_BUFFERSIZE.3                          \
 -  CURLOPT_CAINFO.3                              \
 -  CURLOPT_CAPATH.3                              \
 -  CURLOPT_CERTINFO.3                            \
 -  CURLOPT_CHUNK_BGN_FUNCTION.3                  \
 -  CURLOPT_CHUNK_DATA.3                          \
 -  CURLOPT_CHUNK_END_FUNCTION.3                  \
 -  CURLOPT_CLOSESOCKETDATA.3                     \
 -  CURLOPT_CLOSESOCKETFUNCTION.3                 \
 -  CURLOPT_CONNECTTIMEOUT.3                      \
 -  CURLOPT_CONNECTTIMEOUT_MS.3                   \
 -  CURLOPT_CONNECT_ONLY.3                        \
 -  CURLOPT_CONNECT_TO.3                          \
 -  CURLOPT_CONV_FROM_NETWORK_FUNCTION.3          \
 -  CURLOPT_CONV_FROM_UTF8_FUNCTION.3             \
 -  CURLOPT_CONV_TO_NETWORK_FUNCTION.3            \
 -  CURLOPT_COOKIE.3                              \
 -  CURLOPT_COOKIEFILE.3                          \
 -  CURLOPT_COOKIEJAR.3                           \
 -  CURLOPT_COOKIELIST.3                          \
 -  CURLOPT_COOKIESESSION.3                       \
 -  CURLOPT_COPYPOSTFIELDS.3                      \
 -  CURLOPT_CRLF.3                                \
 -  CURLOPT_CRLFILE.3                             \
 -  CURLOPT_CUSTOMREQUEST.3                       \
 -  CURLOPT_DEBUGDATA.3                           \
 -  CURLOPT_DEBUGFUNCTION.3                       \
 -  CURLOPT_DEFAULT_PROTOCOL.3                    \
 -  CURLOPT_DIRLISTONLY.3                         \
 -  CURLOPT_DISALLOW_USERNAME_IN_URL.3            \
 -  CURLOPT_DNS_CACHE_TIMEOUT.3                   \
 -  CURLOPT_DNS_INTERFACE.3                       \
 -  CURLOPT_DNS_LOCAL_IP4.3                       \
 -  CURLOPT_DNS_LOCAL_IP6.3                       \
 -  CURLOPT_DNS_SERVERS.3                         \
 -  CURLOPT_DNS_SHUFFLE_ADDRESSES.3               \
 -  CURLOPT_DNS_USE_GLOBAL_CACHE.3                \
 -  CURLOPT_EGDSOCKET.3                           \
 -  CURLOPT_ERRORBUFFER.3                         \
 -  CURLOPT_EXPECT_100_TIMEOUT_MS.3               \
 -  CURLOPT_FAILONERROR.3                         \
 -  CURLOPT_FILETIME.3                            \
 -  CURLOPT_FNMATCH_DATA.3                        \
 -  CURLOPT_FNMATCH_FUNCTION.3                    \
 -  CURLOPT_FOLLOWLOCATION.3                      \
 -  CURLOPT_FORBID_REUSE.3                        \
 -  CURLOPT_FRESH_CONNECT.3                       \
 -  CURLOPT_FTPPORT.3                             \
 -  CURLOPT_FTPSSLAUTH.3                          \
 -  CURLOPT_FTP_ACCOUNT.3                         \
 -  CURLOPT_FTP_ALTERNATIVE_TO_USER.3             \
 -  CURLOPT_FTP_CREATE_MISSING_DIRS.3             \
 -  CURLOPT_FTP_FILEMETHOD.3                      \
 -  CURLOPT_FTP_RESPONSE_TIMEOUT.3                \
 -  CURLOPT_FTP_SKIP_PASV_IP.3                    \
 -  CURLOPT_FTP_SSL_CCC.3                         \
 -  CURLOPT_FTP_USE_EPRT.3                        \
 -  CURLOPT_FTP_USE_EPSV.3                        \
 -  CURLOPT_FTP_USE_PRET.3                        \
 -  CURLOPT_GSSAPI_DELEGATION.3                   \
 -  CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3           \
 -  CURLOPT_HAPROXYPROTOCOL.3                     \
 -  CURLOPT_HEADER.3                              \
 -  CURLOPT_HEADERDATA.3                          \
 -  CURLOPT_HEADERFUNCTION.3                      \
 -  CURLOPT_HEADEROPT.3                           \
 -  CURLOPT_HTTP200ALIASES.3                      \
 -  CURLOPT_HTTPAUTH.3                            \
 -  CURLOPT_HTTPGET.3                             \
 -  CURLOPT_HTTPHEADER.3                          \
 -  CURLOPT_HTTPPOST.3                            \
 -  CURLOPT_HTTPPROXYTUNNEL.3                     \
 -  CURLOPT_HTTP_CONTENT_DECODING.3               \
 -  CURLOPT_HTTP_TRANSFER_DECODING.3              \
 -  CURLOPT_HTTP_VERSION.3                        \
 -  CURLOPT_IGNORE_CONTENT_LENGTH.3               \
 -  CURLOPT_INFILESIZE.3                          \
 -  CURLOPT_INFILESIZE_LARGE.3                    \
 -  CURLOPT_INTERFACE.3                           \
 -  CURLOPT_INTERLEAVEDATA.3                      \
 -  CURLOPT_INTERLEAVEFUNCTION.3                  \
 -  CURLOPT_IOCTLDATA.3                           \
 -  CURLOPT_IOCTLFUNCTION.3                       \
 -  CURLOPT_IPRESOLVE.3                           \
 -  CURLOPT_ISSUERCERT.3                          \
 -  CURLOPT_KEEP_SENDING_ON_ERROR.3               \
 -  CURLOPT_KEYPASSWD.3                           \
 -  CURLOPT_KRBLEVEL.3                            \
 -  CURLOPT_LOCALPORT.3                           \
 -  CURLOPT_LOCALPORTRANGE.3                      \
 -  CURLOPT_LOGIN_OPTIONS.3                       \
 -  CURLOPT_LOW_SPEED_LIMIT.3                     \
 -  CURLOPT_LOW_SPEED_TIME.3                      \
 -  CURLOPT_MAIL_AUTH.3                           \
 -  CURLOPT_MAIL_FROM.3                           \
 -  CURLOPT_MAIL_RCPT.3                           \
 -  CURLOPT_MAXCONNECTS.3                         \
 -  CURLOPT_MAXFILESIZE.3                         \
 -  CURLOPT_MAXFILESIZE_LARGE.3                   \
 -  CURLOPT_MAXREDIRS.3                           \
 -  CURLOPT_MAX_RECV_SPEED_LARGE.3                \
 -  CURLOPT_MAX_SEND_SPEED_LARGE.3                \
 -  CURLOPT_MIMEPOST.3                            \
 -  CURLOPT_NETRC.3                               \
 -  CURLOPT_NETRC_FILE.3                          \
 -  CURLOPT_NEW_DIRECTORY_PERMS.3                 \
 -  CURLOPT_NEW_FILE_PERMS.3                      \
 -  CURLOPT_NOBODY.3                              \
 -  CURLOPT_NOPROGRESS.3                          \
 -  CURLOPT_NOPROXY.3                             \
 -  CURLOPT_NOSIGNAL.3                            \
 -  CURLOPT_OPENSOCKETDATA.3                      \
 -  CURLOPT_OPENSOCKETFUNCTION.3                  \
 -  CURLOPT_PASSWORD.3                            \
 -  CURLOPT_PATH_AS_IS.3                          \
 -  CURLOPT_PINNEDPUBLICKEY.3                     \
 -  CURLOPT_PIPEWAIT.3                            \
 -  CURLOPT_PORT.3                                \
 -  CURLOPT_POST.3                                \
 -  CURLOPT_POSTFIELDS.3                          \
 -  CURLOPT_POSTFIELDSIZE.3                       \
 -  CURLOPT_POSTFIELDSIZE_LARGE.3                 \
 -  CURLOPT_POSTQUOTE.3                           \
 -  CURLOPT_POSTREDIR.3                           \
 -  CURLOPT_PREQUOTE.3                            \
 -  CURLOPT_PRE_PROXY.3                           \
 -  CURLOPT_PRIVATE.3                             \
 -  CURLOPT_PROGRESSDATA.3                        \
 -  CURLOPT_PROGRESSFUNCTION.3                    \
 -  CURLOPT_PROTOCOLS.3                           \
 -  CURLOPT_PROXY.3                               \
 -  CURLOPT_PROXYAUTH.3                           \
 -  CURLOPT_PROXYHEADER.3                         \
 -  CURLOPT_PROXYPASSWORD.3                       \
 -  CURLOPT_PROXYPORT.3                           \
 -  CURLOPT_PROXYTYPE.3                           \
 -  CURLOPT_PROXYUSERNAME.3                       \
 -  CURLOPT_PROXYUSERPWD.3                        \
 -  CURLOPT_PROXY_CAINFO.3                        \
 -  CURLOPT_PROXY_CAPATH.3                        \
 -  CURLOPT_PROXY_CRLFILE.3                       \
 -  CURLOPT_PROXY_KEYPASSWD.3                     \
 -  CURLOPT_PROXY_PINNEDPUBLICKEY.3               \
 -  CURLOPT_PROXY_SERVICE_NAME.3                  \
 -  CURLOPT_PROXY_SSLCERT.3                       \
 -  CURLOPT_PROXY_SSLCERTTYPE.3                   \
 -  CURLOPT_PROXY_SSLKEY.3                        \
 -  CURLOPT_PROXY_SSLKEYTYPE.3                    \
 -  CURLOPT_PROXY_SSLVERSION.3                    \
 -  CURLOPT_PROXY_SSL_CIPHER_LIST.3               \
 -  CURLOPT_PROXY_SSL_OPTIONS.3                   \
 -  CURLOPT_PROXY_SSL_VERIFYHOST.3                \
 -  CURLOPT_PROXY_SSL_VERIFYPEER.3                \
 -  CURLOPT_PROXY_TLS13_CIPHERS.3                 \
 -  CURLOPT_PROXY_TLSAUTH_PASSWORD.3              \
 -  CURLOPT_PROXY_TLSAUTH_TYPE.3                  \
 -  CURLOPT_PROXY_TLSAUTH_USERNAME.3              \
 -  CURLOPT_PROXY_TRANSFER_MODE.3                 \
 -  CURLOPT_PUT.3                                 \
 -  CURLOPT_QUOTE.3                               \
 -  CURLOPT_RANDOM_FILE.3                         \
 -  CURLOPT_RANGE.3                               \
 -  CURLOPT_READDATA.3                            \
 -  CURLOPT_READFUNCTION.3                        \
 -  CURLOPT_REDIR_PROTOCOLS.3                     \
 -  CURLOPT_REFERER.3                             \
 -  CURLOPT_REQUEST_TARGET.3                      \
 -  CURLOPT_RESOLVE.3                             \
 -  CURLOPT_RESOLVER_START_DATA.3                 \
 -  CURLOPT_RESOLVER_START_FUNCTION.3             \
 -  CURLOPT_RESUME_FROM.3                         \
 -  CURLOPT_RESUME_FROM_LARGE.3                   \
 -  CURLOPT_RTSP_CLIENT_CSEQ.3                    \
 -  CURLOPT_RTSP_REQUEST.3                        \
 -  CURLOPT_RTSP_SERVER_CSEQ.3                    \
 -  CURLOPT_RTSP_SESSION_ID.3                     \
 -  CURLOPT_RTSP_STREAM_URI.3                     \
 -  CURLOPT_RTSP_TRANSPORT.3                      \
 -  CURLOPT_SASL_IR.3                             \
 -  CURLOPT_SEEKDATA.3                            \
 -  CURLOPT_SEEKFUNCTION.3                        \
 -  CURLOPT_SERVICE_NAME.3                        \
 -  CURLOPT_SHARE.3                               \
 -  CURLOPT_SOCKOPTDATA.3                         \
 -  CURLOPT_SOCKOPTFUNCTION.3                     \
 -  CURLOPT_SOCKS5_AUTH.3                         \
 -  CURLOPT_SOCKS5_GSSAPI_NEC.3                   \
 -  CURLOPT_SOCKS5_GSSAPI_SERVICE.3               \
 -  CURLOPT_SSH_AUTH_TYPES.3                      \
 -  CURLOPT_SSH_COMPRESSION.3                     \
 -  CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3             \
 -  CURLOPT_SSH_KEYDATA.3                         \
 -  CURLOPT_SSH_KEYFUNCTION.3                     \
 -  CURLOPT_SSH_KNOWNHOSTS.3                      \
 -  CURLOPT_SSH_PRIVATE_KEYFILE.3                 \
 -  CURLOPT_SSH_PUBLIC_KEYFILE.3                  \
 -  CURLOPT_SSLCERT.3                             \
 -  CURLOPT_SSLCERTTYPE.3                         \
 -  CURLOPT_SSLENGINE.3                           \
 -  CURLOPT_SSLENGINE_DEFAULT.3                   \
 -  CURLOPT_SSLKEY.3                              \
 -  CURLOPT_SSLKEYTYPE.3                          \
 -  CURLOPT_SSLVERSION.3                          \
 -  CURLOPT_SSL_CIPHER_LIST.3                     \
 -  CURLOPT_SSL_CTX_DATA.3                        \
 -  CURLOPT_SSL_CTX_FUNCTION.3                    \
 -  CURLOPT_SSL_ENABLE_ALPN.3                     \
 -  CURLOPT_SSL_ENABLE_NPN.3                      \
 -  CURLOPT_SSL_FALSESTART.3                      \
 -  CURLOPT_SSL_OPTIONS.3                         \
 -  CURLOPT_SSL_SESSIONID_CACHE.3                 \
 -  CURLOPT_SSL_VERIFYHOST.3                      \
 -  CURLOPT_SSL_VERIFYPEER.3                      \
 -  CURLOPT_SSL_VERIFYSTATUS.3                    \
 -  CURLOPT_STDERR.3                              \
 -  CURLOPT_STREAM_DEPENDS.3                      \
 -  CURLOPT_STREAM_DEPENDS_E.3                    \
 -  CURLOPT_STREAM_WEIGHT.3                       \
 -  CURLOPT_SUPPRESS_CONNECT_HEADERS.3            \
 -  CURLOPT_TCP_FASTOPEN.3                        \
 -  CURLOPT_TCP_KEEPALIVE.3                       \
 -  CURLOPT_TCP_KEEPIDLE.3                        \
 -  CURLOPT_TCP_KEEPINTVL.3                       \
 -  CURLOPT_TCP_NODELAY.3                         \
 -  CURLOPT_TELNETOPTIONS.3                       \
 -  CURLOPT_TFTP_BLKSIZE.3                        \
 -  CURLOPT_TFTP_NO_OPTIONS.3                     \
 -  CURLOPT_TIMECONDITION.3                       \
 -  CURLOPT_TIMEOUT.3                             \
 -  CURLOPT_TIMEOUT_MS.3                          \
 -  CURLOPT_TIMEVALUE.3                           \
 -  CURLOPT_TIMEVALUE_LARGE.3                     \
 -  CURLOPT_TLS13_CIPHERS.3                       \
 -  CURLOPT_TLSAUTH_PASSWORD.3                    \
 -  CURLOPT_TLSAUTH_TYPE.3                        \
 -  CURLOPT_TLSAUTH_USERNAME.3                    \
 -  CURLOPT_TRANSFERTEXT.3                        \
 -  CURLOPT_TRANSFER_ENCODING.3                   \
 -  CURLOPT_UNIX_SOCKET_PATH.3                    \
 -  CURLOPT_UNRESTRICTED_AUTH.3                   \
 -  CURLOPT_UPLOAD.3                              \
 -  CURLOPT_URL.3                                 \
 -  CURLOPT_USERAGENT.3                           \
 -  CURLOPT_USERNAME.3                            \
 -  CURLOPT_USERPWD.3                             \
 -  CURLOPT_USE_SSL.3                             \
 -  CURLOPT_VERBOSE.3                             \
 -  CURLOPT_WILDCARDMATCH.3                       \
 -  CURLOPT_WRITEDATA.3                           \
 -  CURLOPT_WRITEFUNCTION.3                       \
 -  CURLOPT_XFERINFODATA.3                        \
 -  CURLOPT_XFERINFOFUNCTION.3                    \
 -  CURLOPT_XOAUTH2_BEARER.3
 +  GNURLINFO_ACTIVESOCKET.3                       \
 +  GNURLINFO_APPCONNECT_TIME.3                    \
++  GNURLINFO_APPCONNECT_TIME_T.3                  \
 +  GNURLINFO_CERTINFO.3                           \
 +  GNURLINFO_CONDITION_UNMET.3                    \
 +  GNURLINFO_CONNECT_TIME.3                       \
++  GNURLINFO_CONNECT_TIME_T.3                     \
 +  GNURLINFO_CONTENT_LENGTH_DOWNLOAD.3            \
 +  GNURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3          \
 +  GNURLINFO_CONTENT_LENGTH_UPLOAD.3              \
 +  GNURLINFO_CONTENT_LENGTH_UPLOAD_T.3            \
 +  GNURLINFO_CONTENT_TYPE.3                       \
 +  GNURLINFO_COOKIELIST.3                         \
 +  GNURLINFO_EFFECTIVE_URL.3                      \
 +  GNURLINFO_FILETIME.3                           \
 +  GNURLINFO_FILETIME_T.3                         \
 +  GNURLINFO_FTP_ENTRY_PATH.3                     \
 +  GNURLINFO_HEADER_SIZE.3                        \
 +  GNURLINFO_HTTPAUTH_AVAIL.3                     \
 +  GNURLINFO_HTTP_CONNECTCODE.3                   \
 +  GNURLINFO_HTTP_VERSION.3                       \
 +  GNURLINFO_LASTSOCKET.3                         \
 +  GNURLINFO_LOCAL_IP.3                           \
 +  GNURLINFO_LOCAL_PORT.3                         \
 +  GNURLINFO_NAMELOOKUP_TIME.3                    \
++  GNURLINFO_NAMELOOKUP_TIME_T.3                  \
 +  GNURLINFO_NUM_CONNECTS.3                       \
 +  GNURLINFO_OS_ERRNO.3                           \
 +  GNURLINFO_PRETRANSFER_TIME.3                   \
++  GNURLINFO_PRETRANSFER_TIME_T.3                 \
 +  GNURLINFO_PRIMARY_IP.3                         \
 +  GNURLINFO_PRIMARY_PORT.3                       \
 +  GNURLINFO_PRIVATE.3                            \
 +  GNURLINFO_PROTOCOL.3                           \
 +  GNURLINFO_PROXYAUTH_AVAIL.3                    \
 +  GNURLINFO_PROXY_SSL_VERIFYRESULT.3             \
 +  GNURLINFO_REDIRECT_COUNT.3                     \
 +  GNURLINFO_REDIRECT_TIME.3                      \
++  GNURLINFO_REDIRECT_TIME_T.3                    \
 +  GNURLINFO_REDIRECT_URL.3                       \
 +  GNURLINFO_REQUEST_SIZE.3                       \
 +  GNURLINFO_RESPONSE_CODE.3                      \
 +  GNURLINFO_RTSP_CLIENT_CSEQ.3                   \
 +  GNURLINFO_RTSP_CSEQ_RECV.3                     \
 +  GNURLINFO_RTSP_SERVER_CSEQ.3                   \
 +  GNURLINFO_RTSP_SESSION_ID.3                    \
 +  GNURLINFO_SCHEME.3                             \
 +  GNURLINFO_SIZE_DOWNLOAD.3                      \
 +  GNURLINFO_SIZE_DOWNLOAD_T.3                    \
 +  GNURLINFO_SIZE_UPLOAD.3                        \
 +  GNURLINFO_SIZE_UPLOAD_T.3                      \
 +  GNURLINFO_SPEED_DOWNLOAD.3                     \
 +  GNURLINFO_SPEED_DOWNLOAD_T.3                   \
 +  GNURLINFO_SPEED_UPLOAD.3                       \
 +  GNURLINFO_SPEED_UPLOAD_T.3                     \
 +  GNURLINFO_SSL_ENGINES.3                        \
 +  GNURLINFO_SSL_VERIFYRESULT.3                   \
 +  GNURLINFO_STARTTRANSFER_TIME.3                 \
++  GNURLINFO_STARTTRANSFER_TIME_T.3               \
 +  GNURLINFO_TLS_SESSION.3                        \
 +  GNURLINFO_TLS_SSL_PTR.3                        \
 +  GNURLINFO_TOTAL_TIME.3                         \
++  GNURLINFO_TOTAL_TIME_T.3                       \
 +  GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3          \
 +  GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3        \
 +  GNURLMOPT_MAXCONNECTS.3                        \
 +  GNURLMOPT_MAX_HOST_CONNECTIONS.3               \
 +  GNURLMOPT_MAX_PIPELINE_LENGTH.3                \
 +  GNURLMOPT_MAX_TOTAL_CONNECTIONS.3              \
 +  GNURLMOPT_PIPELINING.3                         \
 +  GNURLMOPT_PIPELINING_SERVER_BL.3               \
 +  GNURLMOPT_PIPELINING_SITE_BL.3                 \
 +  GNURLMOPT_PUSHDATA.3                           \
 +  GNURLMOPT_PUSHFUNCTION.3                       \
 +  GNURLMOPT_SOCKETDATA.3                         \
 +  GNURLMOPT_SOCKETFUNCTION.3                     \
 +  GNURLMOPT_TIMERDATA.3                          \
 +  GNURLMOPT_TIMERFUNCTION.3                      \
 +  GNURLOPT_ABSTRACT_UNIX_SOCKET.3                \
 +  GNURLOPT_ACCEPTTIMEOUT_MS.3                    \
 +  GNURLOPT_ACCEPT_ENCODING.3                     \
 +  GNURLOPT_ADDRESS_SCOPE.3                       \
 +  GNURLOPT_APPEND.3                              \
 +  GNURLOPT_AUTOREFERER.3                         \
 +  GNURLOPT_BUFFERSIZE.3                          \
 +  GNURLOPT_CAINFO.3                              \
 +  GNURLOPT_CAPATH.3                              \
 +  GNURLOPT_CERTINFO.3                            \
 +  GNURLOPT_CHUNK_BGN_FUNCTION.3                  \
 +  GNURLOPT_CHUNK_DATA.3                          \
 +  GNURLOPT_CHUNK_END_FUNCTION.3                  \
 +  GNURLOPT_CLOSESOCKETDATA.3                     \
 +  GNURLOPT_CLOSESOCKETFUNCTION.3                 \
 +  GNURLOPT_CONNECTTIMEOUT.3                      \
 +  GNURLOPT_CONNECTTIMEOUT_MS.3                   \
 +  GNURLOPT_CONNECT_ONLY.3                        \
 +  GNURLOPT_CONNECT_TO.3                          \
 +  GNURLOPT_CONV_FROM_NETWORK_FUNCTION.3          \
 +  GNURLOPT_CONV_FROM_UTF8_FUNCTION.3             \
 +  GNURLOPT_CONV_TO_NETWORK_FUNCTION.3            \
 +  GNURLOPT_COOKIE.3                              \
 +  GNURLOPT_COOKIEFILE.3                          \
 +  GNURLOPT_COOKIEJAR.3                           \
 +  GNURLOPT_COOKIELIST.3                          \
 +  GNURLOPT_COOKIESESSION.3                       \
 +  GNURLOPT_COPYPOSTFIELDS.3                      \
 +  GNURLOPT_CRLF.3                                \
 +  GNURLOPT_CRLFILE.3                             \
 +  GNURLOPT_CUSTOMREQUEST.3                       \
 +  GNURLOPT_DEBUGDATA.3                           \
 +  GNURLOPT_DEBUGFUNCTION.3                       \
 +  GNURLOPT_DEFAULT_PROTOCOL.3                    \
 +  GNURLOPT_DIRLISTONLY.3                         \
++  GNURLOPT_DISALLOW_USERNAME_IN_URL.3            \
 +  GNURLOPT_DNS_CACHE_TIMEOUT.3                   \
 +  GNURLOPT_DNS_INTERFACE.3                       \
 +  GNURLOPT_DNS_LOCAL_IP4.3                       \
 +  GNURLOPT_DNS_LOCAL_IP6.3                       \
 +  GNURLOPT_DNS_SERVERS.3                         \
 +  GNURLOPT_DNS_SHUFFLE_ADDRESSES.3               \
 +  GNURLOPT_DNS_USE_GLOBAL_CACHE.3                \
 +  GNURLOPT_EGDSOCKET.3                           \
 +  GNURLOPT_ERRORBUFFER.3                         \
 +  GNURLOPT_EXPECT_100_TIMEOUT_MS.3               \
 +  GNURLOPT_FAILONERROR.3                         \
 +  GNURLOPT_FILETIME.3                            \
 +  GNURLOPT_FNMATCH_DATA.3                        \
 +  GNURLOPT_FNMATCH_FUNCTION.3                    \
 +  GNURLOPT_FOLLOWLOCATION.3                      \
 +  GNURLOPT_FORBID_REUSE.3                        \
 +  GNURLOPT_FRESH_CONNECT.3                       \
 +  GNURLOPT_FTPPORT.3                             \
 +  GNURLOPT_FTPSSLAUTH.3                          \
 +  GNURLOPT_FTP_ACCOUNT.3                         \
 +  GNURLOPT_FTP_ALTERNATIVE_TO_USER.3             \
 +  GNURLOPT_FTP_CREATE_MISSING_DIRS.3             \
 +  GNURLOPT_FTP_FILEMETHOD.3                      \
 +  GNURLOPT_FTP_RESPONSE_TIMEOUT.3                \
 +  GNURLOPT_FTP_SKIP_PASV_IP.3                    \
 +  GNURLOPT_FTP_SSL_CCC.3                         \
 +  GNURLOPT_FTP_USE_EPRT.3                        \
 +  GNURLOPT_FTP_USE_EPSV.3                        \
 +  GNURLOPT_FTP_USE_PRET.3                        \
 +  GNURLOPT_GSSAPI_DELEGATION.3                   \
 +  GNURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3           \
 +  GNURLOPT_HAPROXYPROTOCOL.3                     \
 +  GNURLOPT_HEADER.3                              \
 +  GNURLOPT_HEADERDATA.3                          \
 +  GNURLOPT_HEADERFUNCTION.3                      \
 +  GNURLOPT_HEADEROPT.3                           \
 +  GNURLOPT_HTTP200ALIASES.3                      \
 +  GNURLOPT_HTTPAUTH.3                            \
 +  GNURLOPT_HTTPGET.3                             \
 +  GNURLOPT_HTTPHEADER.3                          \
 +  GNURLOPT_HTTPPOST.3                            \
 +  GNURLOPT_HTTPPROXYTUNNEL.3                     \
 +  GNURLOPT_HTTP_CONTENT_DECODING.3               \
 +  GNURLOPT_HTTP_TRANSFER_DECODING.3              \
 +  GNURLOPT_HTTP_VERSION.3                        \
 +  GNURLOPT_IGNORE_CONTENT_LENGTH.3               \
 +  GNURLOPT_INFILESIZE.3                          \
 +  GNURLOPT_INFILESIZE_LARGE.3                    \
 +  GNURLOPT_INTERFACE.3                           \
 +  GNURLOPT_INTERLEAVEDATA.3                      \
 +  GNURLOPT_INTERLEAVEFUNCTION.3                  \
 +  GNURLOPT_IOCTLDATA.3                           \
 +  GNURLOPT_IOCTLFUNCTION.3                       \
 +  GNURLOPT_IPRESOLVE.3                           \
 +  GNURLOPT_ISSUERCERT.3                          \
 +  GNURLOPT_KEEP_SENDING_ON_ERROR.3               \
 +  GNURLOPT_KEYPASSWD.3                           \
 +  GNURLOPT_KRBLEVEL.3                            \
 +  GNURLOPT_LOCALPORT.3                           \
 +  GNURLOPT_LOCALPORTRANGE.3                      \
 +  GNURLOPT_LOGIN_OPTIONS.3                       \
 +  GNURLOPT_LOW_SPEED_LIMIT.3                     \
 +  GNURLOPT_LOW_SPEED_TIME.3                      \
 +  GNURLOPT_MAIL_AUTH.3                           \
 +  GNURLOPT_MAIL_FROM.3                           \
 +  GNURLOPT_MAIL_RCPT.3                           \
 +  GNURLOPT_MAXCONNECTS.3                         \
 +  GNURLOPT_MAXFILESIZE.3                         \
 +  GNURLOPT_MAXFILESIZE_LARGE.3                   \
 +  GNURLOPT_MAXREDIRS.3                           \
 +  GNURLOPT_MAX_RECV_SPEED_LARGE.3                \
 +  GNURLOPT_MAX_SEND_SPEED_LARGE.3                \
 +  GNURLOPT_MIMEPOST.3                            \
 +  GNURLOPT_NETRC.3                               \
 +  GNURLOPT_NETRC_FILE.3                          \
 +  GNURLOPT_NEW_DIRECTORY_PERMS.3                 \
 +  GNURLOPT_NEW_FILE_PERMS.3                      \
 +  GNURLOPT_NOBODY.3                              \
 +  GNURLOPT_NOPROGRESS.3                          \
 +  GNURLOPT_NOPROXY.3                             \
 +  GNURLOPT_NOSIGNAL.3                            \
 +  GNURLOPT_OPENSOCKETDATA.3                      \
 +  GNURLOPT_OPENSOCKETFUNCTION.3                  \
 +  GNURLOPT_PASSWORD.3                            \
 +  GNURLOPT_PATH_AS_IS.3                          \
 +  GNURLOPT_PINNEDPUBLICKEY.3                     \
 +  GNURLOPT_PIPEWAIT.3                            \
 +  GNURLOPT_PORT.3                                \
 +  GNURLOPT_POST.3                                \
 +  GNURLOPT_POSTFIELDS.3                          \
 +  GNURLOPT_POSTFIELDSIZE.3                       \
 +  GNURLOPT_POSTFIELDSIZE_LARGE.3                 \
 +  GNURLOPT_POSTQUOTE.3                           \
 +  GNURLOPT_POSTREDIR.3                           \
 +  GNURLOPT_PREQUOTE.3                            \
 +  GNURLOPT_PRE_PROXY.3                           \
 +  GNURLOPT_PRIVATE.3                             \
 +  GNURLOPT_PROGRESSDATA.3                        \
 +  GNURLOPT_PROGRESSFUNCTION.3                    \
 +  GNURLOPT_PROTOCOLS.3                           \
 +  GNURLOPT_PROXY.3                               \
 +  GNURLOPT_PROXYAUTH.3                           \
 +  GNURLOPT_PROXYHEADER.3                         \
 +  GNURLOPT_PROXYPASSWORD.3                       \
 +  GNURLOPT_PROXYPORT.3                           \
 +  GNURLOPT_PROXYTYPE.3                           \
 +  GNURLOPT_PROXYUSERNAME.3                       \
 +  GNURLOPT_PROXYUSERPWD.3                        \
 +  GNURLOPT_PROXY_CAINFO.3                        \
 +  GNURLOPT_PROXY_CAPATH.3                        \
 +  GNURLOPT_PROXY_CRLFILE.3                       \
 +  GNURLOPT_PROXY_KEYPASSWD.3                     \
 +  GNURLOPT_PROXY_PINNEDPUBLICKEY.3               \
 +  GNURLOPT_PROXY_SERVICE_NAME.3                  \
 +  GNURLOPT_PROXY_SSLCERT.3                       \
 +  GNURLOPT_PROXY_SSLCERTTYPE.3                   \
 +  GNURLOPT_PROXY_SSLKEY.3                        \
 +  GNURLOPT_PROXY_SSLKEYTYPE.3                    \
 +  GNURLOPT_PROXY_SSLVERSION.3                    \
 +  GNURLOPT_PROXY_SSL_CIPHER_LIST.3               \
 +  GNURLOPT_PROXY_SSL_OPTIONS.3                   \
 +  GNURLOPT_PROXY_SSL_VERIFYHOST.3                \
 +  GNURLOPT_PROXY_SSL_VERIFYPEER.3                \
++  GNURLOPT_PROXY_TLS13_CIPHERS.3                 \
 +  GNURLOPT_PROXY_TLSAUTH_PASSWORD.3              \
 +  GNURLOPT_PROXY_TLSAUTH_TYPE.3                  \
 +  GNURLOPT_PROXY_TLSAUTH_USERNAME.3              \
 +  GNURLOPT_PROXY_TRANSFER_MODE.3                 \
 +  GNURLOPT_PUT.3                                 \
 +  GNURLOPT_QUOTE.3                               \
 +  GNURLOPT_RANDOM_FILE.3                         \
 +  GNURLOPT_RANGE.3                               \
 +  GNURLOPT_READDATA.3                            \
 +  GNURLOPT_READFUNCTION.3                        \
 +  GNURLOPT_REDIR_PROTOCOLS.3                     \
 +  GNURLOPT_REFERER.3                             \
 +  GNURLOPT_REQUEST_TARGET.3                      \
 +  GNURLOPT_RESOLVE.3                             \
 +  GNURLOPT_RESOLVER_START_DATA.3                 \
 +  GNURLOPT_RESOLVER_START_FUNCTION.3             \
 +  GNURLOPT_RESUME_FROM.3                         \
 +  GNURLOPT_RESUME_FROM_LARGE.3                   \
 +  GNURLOPT_RTSP_CLIENT_CSEQ.3                    \
 +  GNURLOPT_RTSP_REQUEST.3                        \
 +  GNURLOPT_RTSP_SERVER_CSEQ.3                    \
 +  GNURLOPT_RTSP_SESSION_ID.3                     \
 +  GNURLOPT_RTSP_STREAM_URI.3                     \
 +  GNURLOPT_RTSP_TRANSPORT.3                      \
 +  GNURLOPT_SASL_IR.3                             \
 +  GNURLOPT_SEEKDATA.3                            \
 +  GNURLOPT_SEEKFUNCTION.3                        \
 +  GNURLOPT_SERVICE_NAME.3                        \
 +  GNURLOPT_SHARE.3                               \
 +  GNURLOPT_SOCKOPTDATA.3                         \
 +  GNURLOPT_SOCKOPTFUNCTION.3                     \
 +  GNURLOPT_SOCKS5_AUTH.3                         \
 +  GNURLOPT_SOCKS5_GSSAPI_NEC.3                   \
 +  GNURLOPT_SOCKS5_GSSAPI_SERVICE.3               \
 +  GNURLOPT_SSH_AUTH_TYPES.3                      \
 +  GNURLOPT_SSH_COMPRESSION.3                     \
 +  GNURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3             \
 +  GNURLOPT_SSH_KEYDATA.3                         \
 +  GNURLOPT_SSH_KEYFUNCTION.3                     \
 +  GNURLOPT_SSH_KNOWNHOSTS.3                      \
 +  GNURLOPT_SSH_PRIVATE_KEYFILE.3                 \
 +  GNURLOPT_SSH_PUBLIC_KEYFILE.3                  \
 +  GNURLOPT_SSLCERT.3                             \
 +  GNURLOPT_SSLCERTTYPE.3                         \
 +  GNURLOPT_SSLENGINE.3                           \
 +  GNURLOPT_SSLENGINE_DEFAULT.3                   \
 +  GNURLOPT_SSLKEY.3                              \
 +  GNURLOPT_SSLKEYTYPE.3                          \
 +  GNURLOPT_SSLVERSION.3                          \
 +  GNURLOPT_SSL_CIPHER_LIST.3                     \
 +  GNURLOPT_SSL_CTX_DATA.3                        \
 +  GNURLOPT_SSL_CTX_FUNCTION.3                    \
 +  GNURLOPT_SSL_ENABLE_ALPN.3                     \
 +  GNURLOPT_SSL_ENABLE_NPN.3                      \
 +  GNURLOPT_SSL_FALSESTART.3                      \
 +  GNURLOPT_SSL_OPTIONS.3                         \
 +  GNURLOPT_SSL_SESSIONID_CACHE.3                 \
 +  GNURLOPT_SSL_VERIFYHOST.3                      \
 +  GNURLOPT_SSL_VERIFYPEER.3                      \
 +  GNURLOPT_SSL_VERIFYSTATUS.3                    \
 +  GNURLOPT_STDERR.3                              \
 +  GNURLOPT_STREAM_DEPENDS.3                      \
 +  GNURLOPT_STREAM_DEPENDS_E.3                    \
 +  GNURLOPT_STREAM_WEIGHT.3                       \
 +  GNURLOPT_SUPPRESS_CONNECT_HEADERS.3            \
 +  GNURLOPT_TCP_FASTOPEN.3                        \
 +  GNURLOPT_TCP_KEEPALIVE.3                       \
 +  GNURLOPT_TCP_KEEPIDLE.3                        \
 +  GNURLOPT_TCP_KEEPINTVL.3                       \
 +  GNURLOPT_TCP_NODELAY.3                         \
 +  GNURLOPT_TELNETOPTIONS.3                       \
 +  GNURLOPT_TFTP_BLKSIZE.3                        \
 +  GNURLOPT_TFTP_NO_OPTIONS.3                     \
 +  GNURLOPT_TIMECONDITION.3                       \
 +  GNURLOPT_TIMEOUT.3                             \
 +  GNURLOPT_TIMEOUT_MS.3                          \
 +  GNURLOPT_TIMEVALUE.3                           \
 +  GNURLOPT_TIMEVALUE_LARGE.3                     \
++  GNURLOPT_TLS13_CIPHERS.3                       \
 +  GNURLOPT_TLSAUTH_PASSWORD.3                    \
 +  GNURLOPT_TLSAUTH_TYPE.3                        \
 +  GNURLOPT_TLSAUTH_USERNAME.3                    \
 +  GNURLOPT_TRANSFERTEXT.3                        \
 +  GNURLOPT_TRANSFER_ENCODING.3                   \
 +  GNURLOPT_UNIX_SOCKET_PATH.3                    \
 +  GNURLOPT_UNRESTRICTED_AUTH.3                   \
 +  GNURLOPT_UPLOAD.3                              \
 +  GNURLOPT_URL.3                                 \
 +  GNURLOPT_USERAGENT.3                           \
 +  GNURLOPT_USERNAME.3                            \
 +  GNURLOPT_USERPWD.3                             \
 +  GNURLOPT_USE_SSL.3                             \
 +  GNURLOPT_VERBOSE.3                             \
 +  GNURLOPT_WILDCARDMATCH.3                       \
 +  GNURLOPT_WRITEDATA.3                           \
 +  GNURLOPT_WRITEFUNCTION.3                       \
 +  GNURLOPT_XFERINFODATA.3                        \
 +  GNURLOPT_XFERINFOFUNCTION.3                    \
 +  GNURLOPT_XOAUTH2_BEARER.3
diff --cc lib/Makefile.am
index d1338c992,277839824..f43dc2964
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@@ -23,9 -23,9 +23,9 @@@ AUTOMAKE_OPTIONS = foreign nostdin
  
  CMAKE_DIST = CMakeLists.txt curl_config.h.cmake
  
- EXTRA_DIST = Makefile.b32 Makefile.m32 config-win32.h \
+ EXTRA_DIST = Makefile.m32 config-win32.h                              \
   config-win32ce.h config-riscos.h config-mac.h curl_config.h.in               
\
 - makefile.dj config-dos.h libcurl.plist libcurl.rc config-amigaos.h   \
 + makefile.dj config-dos.h libgnurl.plist libcurl.rc config-amigaos.h  \
   makefile.amiga Makefile.netware nwlib.c nwos.c config-win32ce.h      \
   config-os400.h setup-os400.h config-symbian.h Makefile.Watcom                
\
   config-tpf.h mk-ca-bundle.pl mk-ca-bundle.vbs $(CMAKE_DIST)  \
diff --cc lib/ldap.c
index 7f4f4dd76,4d8f4fa28..79af14acd
--- a/lib/ldap.c
+++ b/lib/ldap.c
@@@ -54,17 -54,8 +54,8 @@@
  # endif /* HAVE_LDAP_SSL && HAVE_LDAP_SSL_H */
  #endif
  
- /* These are macros in both <wincrypt.h> (in above <winldap.h>) and typedefs
-  * in BoringSSL's <openssl/x509.h>
-  */
- #ifdef HAVE_BORINGSSL
- # undef X509_NAME
- # undef X509_CERT_PAIR
- # undef X509_EXTENSIONS
- #endif
- 
  #include "urldata.h"
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  #include "sendf.h"
  #include "escape.h"
  #include "progress.h"
diff --cc lib/share.c
index 8653a4300,3d5108610..7d51eebf1
--- a/lib/share.c
+++ b/lib/share.c
@@@ -22,9 -22,10 +22,10 @@@
  
  #include "curl_setup.h"
  
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  #include "urldata.h"
  #include "share.h"
+ #include "psl.h"
  #include "vtls/vtls.h"
  #include "curl_memory.h"
  
diff --cc lib/share.h
index c0d0a5189,a7dea41ad..da3bf1765
--- a/lib/share.h
+++ b/lib/share.h
@@@ -23,8 -23,9 +23,9 @@@
   ***************************************************************************/
  
  #include "curl_setup.h"
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  #include "cookie.h"
+ #include "psl.h"
  #include "urldata.h"
  #include "conncache.h"
  
diff --cc maketgz
index 03e4fdb61,55a57c1b3..07fa9d5fa
--- a/maketgz
+++ b/maketgz
@@@ -59,19 -59,19 +59,19 @@@ find . -name "*.dist" -a ! -name Makefi
  
  numeric=`perl -e 'printf("%02x%02x%02x\n", '"$major, $minor, $patch);"`
  
 -HEADER=include/curl/curlver.h
 +HEADER=include/gnurl/curlver.h
  CHEADER=src/tool_version.h
 -PLIST=lib/libcurl.plist
 +PLIST=lib/libgnurl.plist
  
  if test -z "$only"; then
-     ext=".dist"
-     # when not setting up version numbers locally
-     for a in $HEADER $CHEADER $PLIST; do
-         cp $a "$a$ext"
-     done
-     HEADER="$HEADER$ext"
-     CHEADER="$CHEADER$ext"
-     PLIST="$PLIST$ext"
+   ext=".dist"
+   # when not setting up version numbers locally
+   for a in $HEADER $CHEADER $PLIST; do
+     cp $a "$a$ext"
+   done
+   HEADER="$HEADER$ext"
+   CHEADER="$CHEADER$ext"
+   PLIST="$PLIST$ext"
  fi
  
  # requires a date command that knows + for format
@@@ -84,30 -85,28 +85,32 @@@ sed -i.bak 
      -e 's/^#define LIBCURL_VERSION_MINOR .*/#define LIBCURL_VERSION_MINOR 
'$minor'/g' \
      -e 's/^#define LIBCURL_VERSION_PATCH .*/#define LIBCURL_VERSION_PATCH 
'$patch'/g' \
      -e "s/^#define LIBCURL_TIMESTAMP .*/#define LIBCURL_TIMESTAMP 
\"$datestamp\"/g" \
-  $HEADER
+     $HEADER
+ rm -f "$HEADER.bak"
  
  # Replace version number in header file:
- sed -i 's/#define CURL_VERSION .*/#define CURL_VERSION "'$curlversion'"/g' 
$CHEADER
+ sed -i.bak 's/#define CURL_VERSION .*/#define CURL_VERSION 
"'$curlversion'"/g' $CHEADER
+ rm -f "$CHEADER.bak"
  
  # Replace version number in plist file:
- sed -i "s/7\.12\.3/$libversion/g" $PLIST
+ sed -i.bak "s/7\.12\.3/$libversion/g" $PLIST
+ rm -f "$PLIST.bak"
  
  if test -n "$only"; then
-     # done!
-     exit;
+   # done!
+   exit;
  fi
  
 +# Replace version number in plist file:
 +PLIST=lib/libgnurl.plist
 +sed "s/7\.12\.3/$libversion/g" $PLIST > $PLIST.dist
 +
  echo "curl version $curlversion"
 -echo "libcurl version $libversion"
 -echo "libcurl numerical $numeric"
 +echo "libgnurl version $libversion"
 +echo "libgnurl numerical $numeric"
  echo "datestamp $datestamp"
  
- findprog()
- {
+ findprog() {
    file="$1"
    for part in `echo $PATH| tr ':' ' '`; do
      path="$part/$file"
@@@ -150,35 -161,52 +153,49 @@@ make -s vc-id
  echo "produce CHANGES"
  git log --pretty=fuller --no-color --date=short --decorate=full -1000 | 
./scripts/log2changes.pl > CHANGES.dist
  
 -############################################################################
 -#
 +# Guix, revert shebang-patches in ltmain.sh
 +
 +echo "revert shebang patches in ltmain.sh"
 +sed -i 's|/gnu/store/[a-z0-9]\{32\}-bash-minimal-4.4.12||' ltmain.sh
 +
  # Now run make dist to generate a tar.gz archive
 -#
  
  echo "make dist"
 -targz="curl-$version.tar.gz"
 +targz="gnurl-$version.tar.gz"
  make -sj dist VERSION=$version
  
 -############################################################################
 -#
 -# Now make a bz2 archive from the tar.gz original
 -#
 +# Now make an Z archive from the tar.gz original
  
 -bzip2="curl-$version.tar.bz2"
 -echo "Generating $bzip2"
 -gzip -dc $targz | bzip2 --best > $bzip2
 -
 -############################################################################
 -#
 -# Now make an xz archive from the tar.gz original
 -#
 +compress="gnurl-$version.tar.Z"
 +tempdir=".builddir"
  
 -xz="curl-$version.tar.xz"
 -echo "Generating $xz"
 -gzip -dc $targz | xz -6e - > $xz
 +makeZ() {
 +    rm -rf $tempdir
 +    mkdir $tempdir
 +    cd $tempdir
 +    tar -xf ../$targz
 +    tar -cZf $compress gnurl-$version
 +    mv $compress ../
 +    cd ..
 +    rm -rf $tempdir
+ 
+ ############################################################################
+ #
+ # Now make a zip archive from the tar.gz original
+ #
+ makezip() {
+   rm -rf $tempdir
+   mkdir $tempdir
+   cd $tempdir
+   gzip -dc ../$targz | tar -xf -
+   find . | zip $zip -@ >/dev/null
+   mv $zip ../
+   cd ..
+   rm -rf $tempdir
  }
  
 -zip="curl-$version.zip"
 -echo "Generating $zip"
 -tempdir=".builddir"
 -makezip
 +echo "Generating $compress"
 +makeZ
  
  echo "------------------"
  echo "maketgz report:"
diff --cc scripts/Makefile.am
index e9e97ef75,15c08828c..38824ed00
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@@ -22,8 -22,10 +22,10 @@@
  ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
  PERL = @PERL@
  
 -ZSH_COMPLETION_FUNCTION_FILENAME = _curl
 +ZSH_COMPLETION_FUNCTION_FILENAME = _gnurl
  
+ CLEANFILES = $(ZSH_COMPLETION_FUNCTION_FILENAME)
+ 
  all-local: $(ZSH_COMPLETION_FUNCTION_FILENAME)
  
  $(ZSH_COMPLETION_FUNCTION_FILENAME): zsh.pl
diff --cc tests/data/Makefile.inc
index 51e80a8e9,d9b1bcbee..0f204ecbb
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@@ -125,9 -125,9 +125,9 @@@ test1104 test1105 test1106 test1107 tes
  test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 \
  test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \
  test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \
 -test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \
 +test1136 test1137 test1138                   test1141 test1142 test1143 \
  test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
- test1152 test1153 test1154 test1155 \
+ test1152 test1153 test1154 test1155 test1156 \
  \
  test1160 test1161 test1162 test1163 test1164 \
  test1170 test1171 \

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]