[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 216/220: Merge tag 'curl-7_66_0'
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 216/220: Merge tag 'curl-7_66_0' |
Date: |
Thu, 12 Sep 2019 17:29:36 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit 5d5a61dc56228532927a7786375a13d7ae749180
Merge: bc555b4f3 9cd755e1d
Author: ng0 <address@hidden>
AuthorDate: Thu Sep 12 15:09:29 2019 +0000
Merge tag 'curl-7_66_0'
7.66.0
.lgtm.yml | 2 +-
.mailmap | 7 +
.travis.yml | 81 +-
CMake/FindGSS.cmake | 4 +
CMakeLists.txt | 3 +-
Makefile.am | 13 +-
RELEASE-NOTES | 185 ++-
appveyor.yml | 4 +-
configure.ac | 338 +++-
docs/ALTSVC.md | 64 +-
docs/DEPRECATE.md | 15 -
docs/EXPERIMENTAL.md | 22 +
docs/HTTP3.md | 121 ++
docs/INTERNALS.md | 2 +-
docs/KNOWN_BUGS | 68 +-
docs/MANUAL | 1058 -------------
docs/MANUAL.md | 1011 ++++++++++++
docs/Makefile.am | 3 +
docs/PARALLEL-TRANSFERS.md | 58 +
docs/ROADMAP.md | 65 +-
docs/THANKS | 25 +-
docs/THANKS-filter | 1 +
docs/TODO | 238 +--
docs/cmdline-opts/Makefile.inc | 7 +-
docs/cmdline-opts/config.d | 2 +-
docs/cmdline-opts/http0.9.d | 3 +-
docs/cmdline-opts/http2.d | 1 +
docs/cmdline-opts/http3.d | 19 +
docs/cmdline-opts/parallel-max.d | 9 +
docs/cmdline-opts/parallel.d | 7 +
docs/cmdline-opts/retry.d | 3 +
docs/cmdline-opts/sasl-authzid.d | 11 +
docs/examples/Makefile.inc | 5 +-
lib/curl_md4.h => docs/examples/altsvc.c | 41 +-
docs/examples/curlx.c | 6 +-
docs/examples/ephiperfifo.c | 42 +-
docs/examples/hiperfifo.c | 52 +-
lib/curl_md4.h => docs/examples/http3-present.c | 32 +-
lib/curl_md4.h => docs/examples/http3.c | 39 +-
docs/examples/imap-authzid.c | 71 +
docs/examples/pop3-authzid.c | 70 +
docs/examples/smtp-authzid.c | 161 ++
docs/libcurl/Makefile.inc | 1 +
docs/libcurl/curl_multi_poll.3 | 110 ++
docs/libcurl/gnurl_easy_getinfo.3 | 3 +
docs/libcurl/gnurl_easy_setopt.3 | 2 +
docs/libcurl/gnurl_global_init_mem.3 | 4 +-
docs/libcurl/gnurl_version_info.3 | 103 +-
docs/libcurl/libgnurl-errors.3 | 2 +
...LINFO_HTTP_VERSION.3 => CURLINFO_RETRY_AFTER.3} | 35 +-
.../{GNURLOPT_ALTSVC.3 => CURLOPT_SASL_AUTHZID.3} | 49 +-
docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3 | 4 +-
docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3 | 5 +-
docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3 | 9 +-
docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3 | 4 +-
docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3 | 4 +-
docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3 | 4 +-
docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3 | 4 +-
docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3 | 4 +-
docs/libcurl/opts/GNURLOPT_ALTSVC.3 | 2 +
docs/libcurl/opts/GNURLOPT_ALTSVC_CTRL.3 | 7 +-
docs/libcurl/opts/GNURLOPT_HEADERFUNCTION.3 | 5 +-
docs/libcurl/opts/GNURLOPT_HTTP09_ALLOWED.3 | 10 +-
docs/libcurl/opts/GNURLOPT_HTTP_VERSION.3 | 12 +-
docs/libcurl/opts/GNURLOPT_POST.3 | 5 +-
docs/libcurl/opts/GNURLOPT_PROXY_SSL_VERIFYHOST.3 | 13 +-
docs/libcurl/opts/GNURLOPT_READFUNCTION.3 | 33 +-
docs/libcurl/opts/GNURLOPT_SSL_VERIFYHOST.3 | 16 +-
docs/libcurl/opts/Makefile.inc | 2 +
docs/libcurl/symbols-in-versions | 7 +-
include/gnurl/curl.h | 35 +-
include/gnurl/curlver.h | 14 +-
include/gnurl/easy.h | 6 +-
include/gnurl/mprintf.h | 8 +-
include/gnurl/multi.h | 20 +-
include/gnurl/stdcheaders.h | 8 +-
include/gnurl/system.h | 30 +-
include/gnurl/typecheck-gcc.h | 547 +++----
include/gnurl/urlapi.h | 6 +-
lib/Makefile.am | 8 +-
lib/Makefile.inc | 16 +-
lib/altsvc.c | 65 +-
lib/altsvc.h | 27 +-
lib/asyn-ares.c | 6 +-
lib/asyn-thread.c | 102 +-
lib/asyn.h | 3 +-
lib/base64.c | 4 +-
lib/config-os400.h | 3 +
lib/config-plan9.h | 217 +++
lib/connect.c | 160 +-
lib/connect.h | 3 +
lib/cookie.c | 14 +-
lib/curl_md4.h | 10 +-
lib/curl_ntlm_core.c | 70 +-
lib/curl_path.c | 2 +-
lib/curl_rtmp.c | 14 +-
lib/curl_sasl.c | 10 +-
lib/curl_setup.h | 17 +-
lib/doh.h | 3 +-
lib/easy.c | 87 +-
lib/ftp.c | 23 +-
lib/getenv.c | 4 +-
lib/getinfo.c | 8 +-
lib/hostip.c | 8 +-
lib/hostip.h | 6 +-
lib/hostip6.c | 3 +-
lib/http.c | 208 ++-
lib/http.h | 31 +-
lib/http2.c | 23 +-
lib/http_negotiate.c | 4 +-
lib/imap.c | 8 +-
lib/md4.c | 248 ++-
lib/multi.c | 252 ++-
lib/multiif.h | 9 +-
lib/netrc.c | 151 +-
lib/openldap.c | 28 +-
lib/pingpong.c | 13 +-
lib/pingpong.h | 5 +-
lib/pop3.c | 8 +-
lib/progress.c | 13 +-
lib/{curl_md4.h => quic.h} | 36 +-
lib/rtsp.c | 9 +-
lib/security.c | 6 +-
lib/select.h | 6 +-
lib/setopt.c | 37 +-
lib/smb.c | 12 +-
lib/smtp.c | 14 +-
lib/ssh.h | 13 +-
lib/strerror.c | 3 +
lib/tftp.c | 77 +-
lib/timeval.c | 24 +-
lib/timeval.h | 10 +-
lib/transfer.c | 27 +-
lib/transfer.h | 3 +-
lib/url.c | 281 +---
lib/url.h | 13 -
lib/urlapi.c | 17 +-
lib/urldata.h | 58 +-
lib/vauth/digest_sspi.c | 15 +-
lib/vauth/krb5_gssapi.c | 10 +-
lib/vauth/krb5_sspi.c | 26 +-
lib/vauth/ntlm_sspi.c | 14 +-
lib/vauth/spnego_gssapi.c | 6 +-
lib/vauth/spnego_sspi.c | 23 +-
lib/version.c | 60 +-
lib/vquic/ngtcp2.c | 1600 +++++++++++++++++++
lib/{curl_md4.h => vquic/ngtcp2.h} | 46 +-
lib/vquic/quiche.c | 780 ++++++++++
lib/{curl_md4.h => vquic/quiche.h} | 32 +-
lib/{ssh-libssh.c => vssh/libssh.c} | 40 +-
lib/{ssh.c => vssh/libssh2.c} | 49 +-
lib/vtls/mesalink.c | 62 +-
lib/vtls/nss.c | 16 +-
lib/vtls/openssl.c | 233 ++-
lib/vtls/vtls.c | 10 +-
lib/vtls/vtls.h | 3 +-
packages/OS400/README.OS400 | 1 +
packages/OS400/ccsidcurl.c | 8 +-
packages/OS400/ccsidcurl.h | 8 +-
packages/OS400/curl.inc.in | 4 +
plan9/BUILD.PLAN9.txt | 55 +
plan9/include/mkfile | 34 +
plan9/lib/mkfile | 39 +
plan9/lib/mkfile.inc | 25 +
plan9/mkfile | 36 +
plan9/mkfile.proto | 30 +
plan9/src/mkfile | 45 +
plan9/src/mkfile.inc | 25 +
projects/build-openssl.bat | 19 +-
src/Makefile.am | 2 +-
src/Makefile.inc | 2 +
src/tool_cb_hdr.c | 12 +-
src/tool_cb_wrt.c | 8 +-
src/tool_cfgable.c | 3 +-
src/tool_cfgable.h | 11 +-
src/tool_getparam.c | 74 +-
src/tool_help.c | 15 +-
src/tool_help.h | 4 +-
src/tool_main.c | 26 +-
src/tool_main.h | 5 +-
src/tool_metalink.c | 15 +-
src/tool_metalink.h | 3 +-
src/tool_operate.c | 1638 +++++++++++---------
src/tool_operate.h | 48 +-
src/tool_operhlp.c | 8 +-
src/tool_operhlp.h | 4 +-
src/tool_paramhlp.c | 22 +
src/tool_paramhlp.h | 3 +-
src/tool_parsecfg.c | 120 +-
src/tool_progress.c | 314 ++++
lib/curl_md4.h => src/tool_progress.h | 26 +-
src/tool_setopt.c | 11 +
src/tool_writeout.c | 5 +-
tests/README | 27 +-
tests/data/Makefile.inc | 18 +-
tests/data/test1002 | 8 +
tests/data/test1135 | 1 +
tests/data/test1174 | 50 +
tests/data/test1269 | 34 +
tests/data/test1291 | 10 +-
tests/data/test1401 | 1 -
tests/data/test1402 | 1 -
tests/data/test1403 | 1 -
tests/data/test1404 | 1 -
tests/data/test1406 | 2 +-
tests/data/test1412 | 18 +
tests/data/test1418 | 13 +
tests/data/test1420 | 1 -
tests/data/test1514 | 17 +-
tests/data/test153 | 24 +-
tests/data/test1538 | 3 +-
tests/data/test1594 | 52 +
tests/data/test1595 | 51 +
tests/data/test1596 | 52 +
tests/data/test1654 | 6 +-
tests/data/test2006 | 4 -
tests/data/test2007 | 4 -
tests/data/test2008 | 4 -
tests/data/test2009 | 4 -
tests/data/test2010 | 4 -
tests/data/test2047 | 2 +-
tests/data/test2077 | 42 +
tests/data/test2078 | 54 +
tests/data/test335 | 102 ++
tests/data/test356 | 2 +-
tests/data/test848 | 56 +
tests/data/test849 | 51 +
tests/data/test892 | 57 +
tests/data/test893 | 53 +
tests/data/test953 | 56 +
tests/data/test954 | 55 +
tests/libtest/Makefile.inc | 9 +-
tests/libtest/first.c | 6 +-
tests/libtest/lib1560.c | 4 +
lib/curl_md4.h => tests/libtest/lib1594.c | 51 +-
tests/symbol-scan.pl | 4 +-
tests/unit/unit1607.c | 8 +-
tests/unit/unit1609.c | 10 +-
tests/unit/unit1654.c | 2 +-
winbuild/MakefileBuild.vc | 4 +
245 files changed, 10345 insertions(+), 4089 deletions(-)
diff --cc Makefile.am
index 2cdd8a898,3116e1053..a61f9e6ce
--- a/Makefile.am
+++ b/Makefile.am
@@@ -156,9 -154,20 +156,20 @@@ VC_DIST = projects/READM
WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/MakefileBuild.vc winbuild/Makefile.vc
+ PLAN9_DIST = plan9/include/mkfile \
+ plan9/include/mkfile \
+ plan9/mkfile.proto \
+ plan9/mkfile \
+ plan9/BUILD.PLAN9.txt \
+ plan9/lib/mkfile.inc \
+ plan9/lib/mkfile \
+ plan9/src/mkfile.inc \
+ plan9/src/mkfile
+
-EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
- RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
+EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist gnurl-config.in \
+ RELEASE-NOTES buildconf libgnurl.pc.in MacOSX-Framework \
- scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
+ scripts/updatemanpages.pl $(CMAKE_DIST) \
+ $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
diff --cc configure.ac
index 3db063459,07e0a502e..a7585da9f
--- a/configure.ac
+++ b/configure.ac
@@@ -4575,9 -4800,9 +4904,10 @@@ AC_MSG_NOTICE([Configured to build gnur
PSL: ${curl_psl_msg}
Alt-svc: ${curl_altsvc_msg}
HTTP2: ${curl_h2_msg}
+ HTTP3: ${curl_h3_msg}
Protocols: ${SUPPORT_PROTOCOLS}
Features: ${SUPPORT_FEATURES}
+ valgrind tests: ${valgrind_msg}
])
if test -n "$experimental"; then
cat >&2 << _EOF
diff --cc docs/examples/ephiperfifo.c
index 4668c6ca3,c076a8523..9f89125a9
--- a/docs/examples/ephiperfifo.c
+++ b/docs/examples/ephiperfifo.c
@@@ -71,14 -71,8 +71,8 @@@ callback
#include <time.h>
#include <unistd.h>
-#include <curl/curl.h>
+#include <gnurl/curl.h>
- #ifdef __GNUC__
- #define _Unused __attribute__((unused))
- #else
- #define _Unused
- #endif
-
#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */
diff --cc docs/libcurl/Makefile.inc
index e472ea37b,bd88c9c38..380c153b8
--- a/docs/libcurl/Makefile.inc
+++ b/docs/libcurl/Makefile.inc
@@@ -1,83 -1,84 +1,84 @@@
# Shared between Makefile.am and CMakeLists.txt
man_MANS = \
- curl_easy_cleanup.3 \
- curl_easy_duphandle.3 \
- curl_easy_escape.3 \
- curl_easy_getinfo.3 \
- curl_easy_init.3 \
- curl_easy_pause.3 \
- curl_easy_perform.3 \
- curl_easy_recv.3 \
- curl_easy_reset.3 \
- curl_easy_send.3 \
- curl_easy_setopt.3 \
- curl_easy_strerror.3 \
- curl_easy_unescape.3 \
- curl_easy_upkeep.3 \
- curl_escape.3 \
- curl_formadd.3 \
- curl_formfree.3 \
- curl_formget.3 \
- curl_free.3 \
- curl_getdate.3 \
- curl_getenv.3 \
- curl_global_cleanup.3 \
- curl_global_init.3 \
- curl_global_init_mem.3 \
- curl_global_sslset.3 \
- curl_mime_addpart.3 \
- curl_mime_data.3 \
- curl_mime_data_cb.3 \
- curl_mime_encoder.3 \
- curl_mime_filedata.3 \
- curl_mime_filename.3 \
- curl_mime_free.3 \
- curl_mime_headers.3 \
- curl_mime_init.3 \
- curl_mime_name.3 \
- curl_mime_subparts.3 \
- curl_mime_type.3 \
- curl_mprintf.3 \
- curl_multi_add_handle.3 \
- curl_multi_assign.3 \
- curl_multi_cleanup.3 \
- curl_multi_fdset.3 \
- curl_multi_info_read.3 \
- curl_multi_init.3 \
- curl_multi_perform.3 \
- curl_multi_poll.3 \
- curl_multi_remove_handle.3 \
- curl_multi_setopt.3 \
- curl_multi_socket.3 \
- curl_multi_socket_action.3 \
- curl_multi_socket_all.3 \
- curl_multi_strerror.3 \
- curl_multi_timeout.3 \
- curl_multi_wait.3 \
- curl_share_cleanup.3 \
- curl_share_init.3 \
- curl_share_setopt.3 \
- curl_share_strerror.3 \
- curl_slist_append.3 \
- curl_slist_free_all.3 \
- curl_strequal.3 \
- curl_strnequal.3 \
- curl_unescape.3 \
- curl_url.3 \
- curl_url_cleanup.3 \
- curl_url_dup.3 \
- curl_url_get.3 \
- curl_url_set.3 \
- curl_version.3 \
- curl_version_info.3 \
- libcurl-easy.3 \
- libcurl-env.3 \
- libcurl-errors.3 \
- libcurl-multi.3 \
- libcurl-security.3 \
- libcurl-share.3 \
- libcurl-symbols.3 \
- libcurl-thread.3 \
- libcurl-tutorial.3 \
- libcurl-url.3 \
- libcurl.3
+ gnurl_easy_cleanup.3 \
+ gnurl_easy_duphandle.3 \
+ gnurl_easy_escape.3 \
+ gnurl_easy_getinfo.3 \
+ gnurl_easy_init.3 \
+ gnurl_easy_pause.3 \
+ gnurl_easy_perform.3 \
+ gnurl_easy_recv.3 \
+ gnurl_easy_reset.3 \
+ gnurl_easy_send.3 \
+ gnurl_easy_setopt.3 \
+ gnurl_easy_strerror.3 \
+ gnurl_easy_unescape.3 \
+ gnurl_easy_upkeep.3 \
+ gnurl_escape.3 \
+ gnurl_formadd.3 \
+ gnurl_formfree.3 \
+ gnurl_formget.3 \
+ gnurl_free.3 \
+ gnurl_getdate.3 \
+ gnurl_getenv.3 \
+ gnurl_global_cleanup.3 \
+ gnurl_global_init.3 \
+ gnurl_global_init_mem.3 \
+ gnurl_global_sslset.3 \
+ gnurl_mime_addpart.3 \
+ gnurl_mime_data.3 \
+ gnurl_mime_data_cb.3 \
+ gnurl_mime_encoder.3 \
+ gnurl_mime_filedata.3 \
+ gnurl_mime_filename.3 \
+ gnurl_mime_free.3 \
+ gnurl_mime_headers.3 \
+ gnurl_mime_init.3 \
+ gnurl_mime_name.3 \
+ gnurl_mime_subparts.3 \
+ gnurl_mime_type.3 \
+ gnurl_mprintf.3 \
+ gnurl_multi_add_handle.3 \
+ gnurl_multi_assign.3 \
+ gnurl_multi_cleanup.3 \
+ gnurl_multi_fdset.3 \
+ gnurl_multi_info_read.3 \
+ gnurl_multi_init.3 \
+ gnurl_multi_perform.3 \
++ gnurl_multi_poll.3 \
+ gnurl_multi_remove_handle.3 \
+ gnurl_multi_setopt.3 \
+ gnurl_multi_socket.3 \
+ gnurl_multi_socket_action.3 \
+ gnurl_multi_socket_all.3 \
+ gnurl_multi_strerror.3 \
+ gnurl_multi_timeout.3 \
+ gnurl_multi_wait.3 \
+ gnurl_share_cleanup.3 \
+ gnurl_share_init.3 \
+ gnurl_share_setopt.3 \
+ gnurl_share_strerror.3 \
+ gnurl_slist_append.3 \
+ gnurl_slist_free_all.3 \
+ gnurl_strequal.3 \
+ gnurl_strnequal.3 \
+ gnurl_unescape.3 \
+ gnurl_url.3 \
+ gnurl_url_cleanup.3 \
+ gnurl_url_dup.3 \
+ gnurl_url_get.3 \
+ gnurl_url_set.3 \
+ gnurl_version.3 \
+ gnurl_version_info.3 \
+ libgnurl-easy.3 \
+ libgnurl-env.3 \
+ libgnurl-errors.3 \
+ libgnurl-multi.3 \
+ libgnurl-security.3 \
+ libgnurl-share.3 \
+ libgnurl-symbols.3 \
+ libgnurl-thread.3 \
+ libgnurl-tutorial.3 \
+ libgnurl-url.3 \
+ libgnurl.3
diff --cc docs/libcurl/gnurl_easy_getinfo.3
index 3133c4f90,000000000..3c3d4779e
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_getinfo.3
+++ b/docs/libcurl/gnurl_easy_getinfo.3
@@@ -1,277 -1,0 +1,280 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 gnurl_easy_getinfo 3 "11 Feb 2009" "libcurl 7.19.4" "libgnurl 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_RETRY_AFTER
++The value from the from the Retry-After header.
++See \fICURLINFO_RETRY_AFTER(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 and \fICURLINFO_NAMELOOKUP_TIME_T\fP.
+The time it took from the start until the name resolving was completed.
+.IP 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 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 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 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 and \fICURLINFO_TOTAL_TIME_T\fP.
+Total time of the previous request.
+.IP REDIRECT
+\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 e8250b0e5,000000000..8e622fc17
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_setopt.3
+++ b/docs/libcurl/gnurl_easy_setopt.3
@@@ -1,641 -1,0 +1,643 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 gnurl_easy_setopt 3 "25 Jun 2014" "libcurl 7.38.0" "libgnurl 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 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_DOH_URL
+Use this DOH server for name resolves. See \fICURLOPT_DOH_URL(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_AUTHZID
++SASL authorisation identity (identity to act as). See
\fICURLOPT_SASL_AUTHZID(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_ALTSVC
+Specify the Alt-Svc: cache file name. See \fICURLOPT_ALTSVC(3)\fP
+.IP CURLOPT_ALTSVC_CTRL
+Enable and configure Alt-Svc: treatment. See \fICURLOPT_ALTSVC_CTRL(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_HTTP09_ALLOWED
+Allow HTTP/0.9 responses. \fICURLOPT_HTTP09_ALLOWED(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_TRAILERFUNCTION
+Set callback for sending trailing headers. See
+\fICURLOPT_TRAILERFUNCTION(3)\fP
+.IP CURLOPT_TRAILERDATA
+Custom pointer passed to the trailing headers callback. See
+\fICURLOPT_TRAILERDATA(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_CURLU
+Set URL to work on with CURLU *. See \fICURLOPT_CURLU(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_UPLOAD_BUFFERSIZE
+Set upload buffer size. See \fICURLOPT_UPLOAD_BUFFERSIZE(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_MAXAGE_CONN
+Limit the age of connections for reuse. See \fICURLOPT_MAXAGE_CONN(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
+.IP CURLOPT_UPKEEP_INTERVAL_MS
+Sets the interval at which connection upkeep are performed. See
+\fICURLOPT_UPKEEP_INTERVAL_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_global_init_mem.3
index d49d4b13d,000000000..ddd64db7f
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_init_mem.3
+++ b/docs/libcurl/gnurl_global_init_mem.3
@@@ -1,64 -1,0 +1,66 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 gnurl_global_init_mem 3 "10 May 2004" "libcurl 7.12.0" "libgnurl Manual"
+.SH NAME
+curl_global_init_mem - Global libcurl initialisation with memory callbacks
+.SH SYNOPSIS
+.B #include <gnurl/curl.h>
+.nf
+.B "CURLcode curl_global_init_mem(long " flags,
+.B " curl_malloc_callback "m,
+.B " curl_free_callback "f,
+.B " curl_realloc_callback "r,
+.B " curl_strdup_callback "s,
+.B " curl_calloc_callback "c ");"
+.SH DESCRIPTION
+This function works exactly as \fIcurl_global_init(3)\fP with one addition: it
+allows the application to set callbacks to replace the otherwise used internal
+memory functions.
+
+If you are using libcurl from multiple threads or libcurl was built with the
+threaded resolver option then the callback functions must be thread safe. The
+threaded resolver is a common build option to enable (and in some cases the
+default) so we strongly urge you to make your callback functions thread safe.
+
+All callback arguments must be set to valid function pointers. The
+prototypes for the given callbacks must match these:
+.IP "void *malloc_callback(size_t size);"
+To replace malloc()
+.IP "void free_callback(void *ptr);"
+To replace free()
+.IP "void *realloc_callback(void *ptr, size_t size);"
+To replace realloc()
+.IP "char *strdup_callback(const char *str);"
+To replace strdup()
+.IP "void *calloc_callback(size_t nmemb, size_t size);"
+To replace calloc()
+.RE
+This function is otherwise the same as \fIcurl_global_init(3)\fP, please refer
+to that man page for documentation.
+.SH "CAUTION"
+Manipulating these gives considerable powers to the application to severely
+screw things up for libcurl. Take care!
++.SH AVAILABILITY
++Added in 7.12.0
+.SH "SEE ALSO"
+.BR curl_global_init "(3), "
+.BR curl_global_cleanup "(3), "
diff --cc docs/libcurl/gnurl_version_info.3
index 09e0fe535,000000000..1ba8d8401
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_version_info.3
+++ b/docs/libcurl/gnurl_version_info.3
@@@ -1,188 -1,0 +1,201 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 gnurl_version_info 3 "2 Nov 2014" "libcurl 7.40.0" "libgnurl Manual"
+.SH NAME
+curl_version_info - returns run-time libcurl version info
+.SH SYNOPSIS
+.B #include <gnurl/curl.h>
+.sp
+.BI "curl_version_info_data *curl_version_info( CURLversion "age ");"
+.ad
+.SH DESCRIPTION
+Returns a pointer to a filled in static struct with information about various
+features in the running version of libcurl. \fIage\fP should be set to the
+version of this functionality by the time you write your program. This way,
+libcurl will always return a proper struct that your program understands,
+while programs in the future might get a different
+struct. \fBCURLVERSION_NOW\fP will be the most recent one for the library you
+have installed:
+
+ data = curl_version_info(CURLVERSION_NOW);
+
+Applications should use this information to judge if things are possible to do
+or not, instead of using compile-time checks, as dynamic/DLL libraries can be
+changed independent of applications.
+
+The curl_version_info_data struct looks like this
+
+.nf
+typedef struct {
+ CURLversion age; /* see description below */
+
+ /* when 'age' is 0 or higher, the members below also exist: */
+ const char *version; /* human readable string */
+ unsigned int version_num; /* numeric representation */
+ const char *host; /* human readable string */
+ int features; /* bitmask, see below */
+ char *ssl_version; /* human readable string */
+ long ssl_version_num; /* not used, always zero */
+ const char *libz_version; /* human readable string */
+ const char * const *protocols; /* protocols */
+
+ /* when 'age' is 1 or higher, the members below also exist: */
+ const char *ares; /* human readable string */
+ int ares_num; /* number */
+
+ /* when 'age' is 2 or higher, the member below also exists: */
+ const char *libidn; /* human readable string */
+
+ /* when 'age' is 3 or higher (7.16.1 or later), the members below also
+ exist */
+ int iconv_ver_num; /* '_libiconv_version' if iconv support enabled */
+
+ const char *libssh_version; /* human readable string */
+
+ /* when 'age' is 4 or higher (7.57.0 or later), the members below also
+ exist */
+ unsigned int brotli_ver_num; /* Numeric Brotli version
+ (MAJOR << 24) | (MINOR << 12) | PATCH */
+ const char *brotli_version; /* human readable string. */
+
++ /* when 'age is CURLVERSION_SIXTH or alter (7.66.0 or later), these fields
++ also exist */
++ unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
++ (MAJOR << 16) | (MINOR << 8) | PATCH */
++ const char *nghttp2_version; /* human readable string. */
++
++ const char *quic_version; /* human readable quic (+ HTTP/3) library +
++ version or NULL */
++
+} curl_version_info_data;
+.fi
+
+\fIage\fP describes what the age of this struct is. The number depends on how
+new the libcurl you're using is. You are however guaranteed to get a struct
+that you have a matching struct for in the header, as you tell libcurl your
+"age" with the input argument.
+
+\fIversion\fP is just an ascii string for the libcurl version.
+
+\fIversion_num\fP is a 24 bit number created like this: <8 bits major number>
+| <8 bits minor number> | <8 bits patch number>. Version 7.9.8 is therefore
+returned as 0x070908.
+
+\fIhost\fP is an ascii string showing what host information that this libcurl
+was built for. As discovered by a configure script or set by the build
+environment.
+
+\fIfeatures\fP can have none, one or more bits set, and the currently defined
+bits are:
+.RS
++.IP CURL_VERSION_ALTSVC
++HTTP Alt-Svc parsing and the associated options (Added in 7.64.1)
++.IP CURL_VERSION_ASYNCHDNS
++libcurl was built with support for asynchronous name lookups, which allows
++more exact timeouts (even on Windows) and less blocking when using the multi
++interface. (added in 7.10.7)
++.IP CURL_VERSION_BROTLI
++supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
++.IP CURL_VERSION_CONV
++libcurl was built with support for character conversions, as provided by the
++CURLOPT_CONV_* callbacks. (Added in 7.15.4)
++.IP CURL_VERSION_CURLDEBUG
++libcurl was built with memory tracking debug capabilities. This is mainly of
++interest for libcurl hackers. (added in 7.19.6)
++.IP CURL_VERSION_DEBUG
++libcurl was built with debug capabilities (added in 7.10.6)
++.IP CURL_VERSION_GSSAPI
++libcurl was built with support for GSS-API. This makes libcurl use provided
++functions for Kerberos and SPNEGO authentication. It also allows libcurl
++to use the current user credentials without the app having to pass them on.
++(Added in 7.38.0)
++.IP CURL_VERSION_GSSNEGOTIATE
++supports HTTP GSS-Negotiate (added in 7.10.6)
++.IP CURL_VERSION_HTTPS_PROXY
++libcurl was built with support for HTTPS-proxy.
++(Added in 7.52.0)
++.IP CURL_VERSION_HTTP2
++libcurl was built with support for HTTP2.
++(Added in 7.33.0)
++.IP CURL_VERSION_HTTP3
++HTTP/3 and QUIC support are built-in (Added in 7.66.0)
++.IP CURL_VERSION_IDN
++libcurl was built with support for IDNA, domain names with international
++letters. (Added in 7.12.0)
+.IP CURL_VERSION_IPV6
+supports IPv6
+.IP CURL_VERSION_KERBEROS4
+supports Kerberos V4 (when using FTP)
+.IP CURL_VERSION_KERBEROS5
+supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5
proxy
+(Added in 7.40.0)
- .IP CURL_VERSION_SSL
- supports SSL (HTTPS/FTPS) (Added in 7.10)
++.IP CURL_VERSION_LARGEFILE
++libcurl was built with support for large files. (Added in 7.11.1)
+.IP CURL_VERSION_LIBZ
+supports HTTP deflate using libz (Added in 7.10)
++.IP CURL_VERSION_MULTI_SSL
++libcurl was built with multiple SSL backends. For details, see
++\fIcurl_global_sslset(3)\fP.
++(Added in 7.56.0)
+.IP CURL_VERSION_NTLM
+supports HTTP NTLM (added in 7.10.6)
- .IP CURL_VERSION_GSSNEGOTIATE
- supports HTTP GSS-Negotiate (added in 7.10.6)
- .IP CURL_VERSION_DEBUG
- libcurl was built with debug capabilities (added in 7.10.6)
- .IP CURL_VERSION_CURLDEBUG
- libcurl was built with memory tracking debug capabilities. This is mainly of
- interest for libcurl hackers. (added in 7.19.6)
- .IP CURL_VERSION_ASYNCHDNS
- libcurl was built with support for asynchronous name lookups, which allows
- more exact timeouts (even on Windows) and less blocking when using the multi
- interface. (added in 7.10.7)
++.IP CURL_VERSION_NTLM_WB
++libcurl was built with support for NTLM delegation to a winbind helper.
++(Added in 7.22.0)
++.IP CURL_VERSION_PSL
++libcurl was built with support for Mozilla's Public Suffix List. This makes
++libcurl ignore cookies with a domain that's on the list.
++(Added in 7.47.0)
+.IP CURL_VERSION_SPNEGO
+libcurl was built with support for SPNEGO authentication (Simple and Protected
+GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)
- .IP CURL_VERSION_LARGEFILE
- libcurl was built with support for large files. (Added in 7.11.1)
- .IP CURL_VERSION_IDN
- libcurl was built with support for IDNA, domain names with international
- letters. (Added in 7.12.0)
++.IP CURL_VERSION_SSL
++supports SSL (HTTPS/FTPS) (Added in 7.10)
+.IP CURL_VERSION_SSPI
+libcurl was built with support for SSPI. This is only available on Windows and
+makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
+Digest authentication. It also allows libcurl to use the current user
+credentials without the app having to pass them on. (Added in 7.13.2)
- .IP CURL_VERSION_GSSAPI
- libcurl was built with support for GSS-API. This makes libcurl use provided
- functions for Kerberos and SPNEGO authentication. It also allows libcurl
- to use the current user credentials without the app having to pass them on.
- (Added in 7.38.0)
- .IP CURL_VERSION_CONV
- libcurl was built with support for character conversions, as provided by the
- CURLOPT_CONV_* callbacks. (Added in 7.15.4)
+.IP CURL_VERSION_TLSAUTH_SRP
+libcurl was built with support for TLS-SRP. (Added in 7.21.4)
- .IP CURL_VERSION_NTLM_WB
- libcurl was built with support for NTLM delegation to a winbind helper.
- (Added in 7.22.0)
- .IP CURL_VERSION_HTTP2
- libcurl was built with support for HTTP2.
- (Added in 7.33.0)
+.IP CURL_VERSION_UNIX_SOCKETS
+libcurl was built with support for Unix domain sockets.
+(Added in 7.40.0)
- .IP CURL_VERSION_PSL
- libcurl was built with support for Mozilla's Public Suffix List. This makes
- libcurl ignore cookies with a domain that's on the list.
- (Added in 7.47.0)
- .IP CURL_VERSION_HTTPS_PROXY
- libcurl was built with support for HTTPS-proxy.
- (Added in 7.52.0)
- .IP CURL_VERSION_MULTI_SSL
- libcurl was built with multiple SSL backends. For details, see
- \fIcurl_global_sslset(3)\fP.
- (Added in 7.56.0)
- .IP CURL_VERSION_BROTLI
- supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
+.RE
+\fIssl_version\fP is an ASCII string for the TLS library name + version
+used. If libcurl has no SSL support, this is NULL. For example "Schannel",
+\&"SecureTransport" or "OpenSSL/1.1.0g".
+
+\fIssl_version_num\fP is always 0.
+
+\fIlibz_version\fP is an ASCII string (there is no numerical version). If
+libcurl has no libz support, this is NULL.
+
+\fIprotocols\fP is a pointer to an array of char * pointers, containing the
+names protocols that libcurl supports (using lowercase letters). The protocol
+names are the same as would be used in URLs. The array is terminated by a NULL
+entry.
+.SH RETURN VALUE
+A pointer to a curl_version_info_data struct.
+.SH "SEE ALSO"
+\fIcurl_version(3)\fP
diff --cc docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
index ce04fa6f4,000000000..03ade4a3c
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,64 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), "
CURLINFO_APPCONNECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3
index e218fcc37,000000000..1ae9e6c9e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3
@@@ -1,64 -1,0 +1,66 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_APPCONNECT_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_APPCONNECT_TIME_T \- 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_T,
curl_off_t *timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the time, in microseconds,
+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_T(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.
+
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &connect);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", connect / 1000000,
+ (long)(connect % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), "
CURLINFO_APPCONNECT_TIME "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
index 3767cd84d,000000000..651850cde
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,61 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), "
CURLINFO_CONNECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3
index eaa6f551e,000000000..3479cc851
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3
@@@ -1,59 -1,0 +1,62 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_CONNECT_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_CONNECT_TIME_T \- get the time until connect
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME_T, curl_off_t
*timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the total time in microseconds
+from the start until the connection to the remote host (or proxy) was
completed.
++
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &connect);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", connect / 1000000,
+ (long)(connect % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), " CURLINFO_CONNECT_TIME
"(3)"
diff --cc docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3
index 3af6665f0,000000000..caa43c725
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3
+++ b/docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3
@@@ -1,56 -1,0 +1,57 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_HTTP_VERSION 3 "11 May 2016" "libcurl 7.50.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_HTTP_VERSION \- get the http version used in the connection
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_VERSION, long *p);
+.SH DESCRIPTION
- Pass a pointer to a long to receive the version used in the last http
connection.
- The returned value will be CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1, or
- CURL_HTTP_VERSION_2_0, or 0 if the version can't be determined.
++Pass a pointer to a long to receive the version used in the last http
++connection. The returned value will be CURL_HTTP_VERSION_1_0,
++CURL_HTTP_VERSION_1_1, CURL_HTTP_VERSION_2_0, CURL_HTTP_VERSION_3 or 0 if the
++version can't be determined.
+.SH PROTOCOLS
+HTTP
+.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);
+ if(res == CURLE_OK) {
+ long http_version;
+ curl_easy_getinfo(curl, CURLINFO_HTTP_VERSION, &http_version);
+ }
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.50.0
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLINFO_RESPONSE_CODE "(3), "
+.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
index ecb93050c,000000000..52d374d1f
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,61 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), "
CURLINFO_NAMELOOKUP_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3
index 012cd7343,000000000..542df9736
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3
@@@ -1,60 -1,0 +1,62 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_NAMELOOKUP_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME_T,
curl_off_t *timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the total time in microseconds
+from the start until the name resolving was completed.
+
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &namelookup);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", namelookup / 1000000,
+ (long)(namelookup % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), "
CURLINFO_NAMELOOKUP_TIME "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
index 8026f82e2,000000000..515293439
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,64 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), "
CURLINFO_PRETRANSFER_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3
index e67fab94b,000000000..1cccdef70
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3
@@@ -1,64 -1,0 +1,66 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_PRETRANSFER_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME_T,
curl_off_t *timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the time, in microseconds,
+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.
+
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &pretransfer);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", pretransfer / 1000000,
+ (long)(pretransfer % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), "
CURLINFO_PRETRANSFER_TIME "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
index af7fc5dd9,000000000..6ac4707c8
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,63 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), "
CURLINFO_STARTTRANSFER_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3
index 5e19ab590,000000000..db71fd8e2
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3
@@@ -1,63 -1,0 +1,65 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_STARTTRANSFER_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME_T,
curl_off_t *timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the time, in microseconds,
+it took from the
+start until the first byte is received by libcurl. This includes
+\fICURLINFO_PRETRANSFER_TIME_T(3)\fP and also the time the server needs to
+calculate the result.
+
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &start);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", start / 1000000,
+ (long)(start % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), "
CURLINFO_STARTTRANSFER_TIME "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
index da1ae6465,000000000..bab982cdc
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,62 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLINFO_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.
+
++When a redirect is followed, the time from each request is added together.
++
+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), " CURLINFO_TOTAL_TIME_T
"(3)"
diff --cc docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3
index 3796e8fc7,000000000..70cd7e567
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3
@@@ -1,61 -1,0 +1,63 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 2018 - 2019, 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 GNURLINFO_TOTAL_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0"
"curl_easy_getinfo options"
+.SH NAME
+CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME_T, curl_off_t
*timep);
+.SH DESCRIPTION
+Pass a pointer to a curl_off_t to receive the total time in microseconds
+for the previous transfer, including name resolving, TCP connect etc.
+The curl_off_t represents the time in microseconds.
+
++When a redirect is followed, the time from each request is added together.
++
+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) {
+ curl_off_t 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_T, &total);
+ if(CURLE_OK == res) {
+ printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", total / 1000000,
+ (long)(total % 1000000));
+ }
+ }
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.61.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), " CURLINFO_TOTAL_TIME
"(3)"
diff --cc docs/libcurl/opts/GNURLOPT_ALTSVC.3
index 156f4e979,000000000..d1d44629e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ALTSVC.3
+++ b/docs/libcurl/opts/GNURLOPT_ALTSVC.3
@@@ -1,61 -1,0 +1,63 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_ALTSVC 3 "5 Feb 2019" "libcurl 7.64.1" "curl_easy_setopt options"
+.SH NAME
+CURLOPT_ALTSVC \- set alt-svc cache file name
+.SH SYNOPSIS
+.nf
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC, char *filename);
+.fi
+.SH EXPERIMENTAL
+Warning: this feature is early code and is marked as experimental. It can only
+be enabled by explicitly telling configure with \fB--enable-alt-svc\fP. You
are
+advised to not ship this in production before the experimental label is
+removed.
+.SH DESCRIPTION
+Pass in a pointer to a \fIfilename\fP to instruct libcurl to use that file as
+the Alt-Svc cache to read existing cache contents from and possibly also write
+it back to a after a transfer, unless \fBCURLALTSVC_READONLYFILE\fP is set in
+\fICURLOPT_ALTSVC_CTRL(3)\fP.
++
++Specify a blank file name ("") to make libcurl not load from a file at all.
+.SH DEFAULT
+NULL. The alt-svc cache is not read nor written to file.
+.SH PROTOCOLS
+HTTPS
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1);
+ curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc-cache.txt");
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.64.1
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_ALTSVC_CTRL "(3), " CURLOPT_CONNECT_TO "(3), " CURLOPT_RESOLVE
"(3), "
+.BR CURLOPT_COOKIEFILE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ALTSVC_CTRL.3
index aed1253dd,000000000..fa8e88967
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ALTSVC_CTRL.3
+++ b/docs/libcurl/opts/GNURLOPT_ALTSVC_CTRL.3
@@@ -1,92 -1,0 +1,89 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_ALTSVC_CTRL 3 "5 Feb 2019" "libcurl 7.64.1" "curl_easy_setopt
options"
+.SH NAME
+CURLOPT_ALTSVC_CTRL \- control alt-svc behavior
+.SH SYNOPSIS
+.nf
+#include <gnurl/curl.h>
+
+#define CURLALTSVC_IMMEDIATELY (1<<0)
- #define CURLALTSVC_ALTUSED (1<<1)
+#define CURLALTSVC_READONLYFILE (1<<2)
+#define CURLALTSVC_H1 (1<<3)
+#define CURLALTSVC_H2 (1<<4)
+#define CURLALTSVC_H3 (1<<5)
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC_CTRL, long bitmask);
+.fi
+.SH EXPERIMENTAL
+Warning: this feature is early code and is marked as experimental. It can only
+be enabled by explicitly telling configure with \fB--enable-alt-svc\fP. You
are
+advised to not ship this in production before the experimental label is
+removed.
+.SH DESCRIPTION
+Populate the long \fIbitmask\fP with the correct set of features to instruct
+libcurl how to handle Alt-Svc for the transfers using this handle.
+
+libcurl will only accept Alt-Svc headers over a secure transport, meaning
+HTTPS. It will also only complete a request to an alternative origin if that
+origin is properly hosted over HTTPS. These requirements are there to make
+sure both the source and the destination are legitimate.
+
+Setting any bit will enable the alt-svc engine.
+.IP "CURLALTSVC_IMMEDIATELY"
+If an Alt-Svc: header is received, this instructs libcurl to switch to one of
- those alternatives asap rather than to save it and use for the next request.
- .IP "CURLALTSVC_ALTUSED"
- Issue the Alt-Used: header in all requests that have been redirected by
- alt-svc.
++those alternatives asap rather than to save it and use for the next
++request. (Not currently supported).
+.IP "CURLALTSVC_READONLYFILE"
+Do not write the alt-svc cache back to the file specified with
+\fICURLOPT_ALTSVC(3)\fP even if it gets updated. By default a file specified
+with that option will be read and written to as deemed necessary.
+.IP "CURLALTSVC_H1"
+Accept alternative services offered over HTTP/1.1.
+.IP "CURLALTSVC_H2"
+Accept alternative services offered over HTTP/2. This will only be used if
+libcurl was also built to actually support HTTP/2, otherwise this bit will be
+ignored.
+.IP "CURLALTSVC_H3"
+Accept alternative services offered over HTTP/3. This will only be used if
+libcurl was also built to actually support HTTP/3, otherwise this bit will be
+ignored.
+.SH DEFAULT
+0. No Alt-Svc treatment.
+.SH PROTOCOLS
+HTTPS
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1);
+ curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc-cache.txt");
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.64.1
+.SH RETURN VALUE
+Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_ALTSVC "(3), " CURLOPT_CONNECT_TO "(3), " CURLOPT_RESOLVE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_HEADERFUNCTION.3
index 48bdbdaaf,000000000..5a569fef9
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HEADERFUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_HEADERFUNCTION.3
@@@ -1,114 -1,0 +1,117 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * 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 GNURLOPT_HEADERFUNCTION 3 "17 Jun 2014" "libcurl 7.37.0"
"curl_easy_setopt options"
+.SH NAME
+CURLOPT_HEADERFUNCTION \- callback that receives header data
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+size_t header_callback(char *buffer,
+ size_t size,
+ size_t nitems,
+ void *userdata);
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADERFUNCTION,
header_callback);
+.SH DESCRIPTION
+Pass a pointer to your callback function, which should match the prototype
+shown above.
+
+This function gets called by libcurl as soon as it has received header
+data. The header callback will be called once for each header and only
+complete header lines are passed on to the callback. Parsing headers is very
+easy using this. The size of the data pointed to by \fIbuffer\fP is \fIsize\fP
+multiplied with \fInitems\fP. Do not assume that the header line is zero
+terminated!
+
+The pointer named \fIuserdata\fP is the one you set with the
+\fICURLOPT_HEADERDATA(3)\fP option.
+
+This callback function must return the number of bytes actually taken care of.
+If that amount differs from the amount passed in to your function, it'll
signal
+an error to the library. This will cause the transfer to get aborted and the
+libcurl function in progress will return \fICURLE_WRITE_ERROR\fP.
+
+A complete HTTP header that is passed to this function can be up to
- \fICURL_MAX_HTTP_HEADER\fP (100K) bytes.
++\fICURL_MAX_HTTP_HEADER\fP (100K) bytes and includes the final line
terminator.
+
+If this option is not set, or if it is set to NULL, but
+\fICURLOPT_HEADERDATA(3)\fP is set to anything but NULL, the function used to
+accept response data will be used instead. That is, it will be the function
+specified with \fICURLOPT_WRITEFUNCTION(3)\fP, or if it is not specified or
+NULL - the default, stream-writing function.
+
+It's important to note that the callback will be invoked for the headers of
+all responses received after initiating a request and not just the final
+response. This includes all responses which occur during authentication
+negotiation. If you need to operate on only the headers from the final
+response, you will need to collect headers in the callback yourself and use
+HTTP status lines, for example, to delimit response boundaries.
+
++For an HTTP transfer, the status line and the blank line preceding the
response
++body are both included as headers and passed to this function.
++
+When a server sends a chunked encoded transfer, it may contain a trailer. That
+trailer is identical to an HTTP header and if such a trailer is received it is
+passed to the application using this callback as well. There are several ways
+to detect it being a trailer and not an ordinary header: 1) it comes after the
+response-body. 2) it comes after the final header line (CR LF) 3) a Trailer:
+header among the regular response-headers mention what header(s) to expect in
+the trailer.
+
+For non-HTTP protocols like FTP, POP3, IMAP and SMTP this function will get
+called with the server responses to the commands that libcurl sends.
+.SH LIMITATIONS
+libcurl does not unfold HTTP "folded headers" (deprecated since RFC 7230). A
+folded header is a header that continues on a subsequent line and starts with
+a whitespace. Such folds will be passed to the header callback as a separate
+one, although strictly it is just a continuation of the previous line.
+.SH DEFAULT
+Nothing.
+.SH PROTOCOLS
+Used for all protocols with headers or meta-data concept: HTTP, FTP, POP3,
+IMAP, SMTP and more.
+.SH EXAMPLE
+.nf
+static size_t header_callback(char *buffer, size_t size,
+ size_t nitems, void *userdata)
+{
+ /* received header is nitems * size long in 'buffer' NOT ZERO TERMINATED */
+ /* 'userdata' is set with CURLOPT_HEADERDATA */
+ return nitems * size;
+}
+
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
+
+ curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
+
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Always
+.SH RETURN VALUE
+Returns CURLE_OK
+.SH "SEE ALSO"
+.BR CURLOPT_HEADERDATA "(3), " CURLOPT_WRITEFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_HTTP09_ALLOWED.3
index e1a658072,000000000..8856c1a19
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HTTP09_ALLOWED.3
+++ b/docs/libcurl/opts/GNURLOPT_HTTP09_ALLOWED.3
@@@ -1,58 -1,0 +1,58 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_HTTP09_ALLOWED 3 "17 Dec 2018" "libcurl 7.64.0"
"curl_easy_setopt options"
+.SH NAME
+CURLOPT_HTTP09 \- allow HTTP/0.9 response
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP09_ALLOWED, long allowed);
+.SH DESCRIPTION
+Pass the long argument \fIallowed\fP set to 1L to allow HTTP/0.9 responses.
+
+A HTTP/0.9 response is a server response entirely without headers and only a
- body, while you can connect to lots of random TCP services and still get a
- response that curl might consider to be HTTP/0.9.
++body. You can connect to lots of random TCP services and still get a response
++that curl might consider to be HTTP/0.9!
+.SH DEFAULT
- curl allows HTTP/0.9 responses by default.
++curl allowed HTTP/0.9 responses by default before 7.66.0
+
- A future curl version will require this option to be set to allow HTTP/0.9
++Since 7.66.0, libcurl requires this option set to 1L to allow HTTP/0.9
+responses.
+.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_HTTP09_ALLOWED, 1L);
+ ret = curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Option added in 7.64.0, present along with HTTP.
+.SH RETURN VALUE
+Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
+.SH "SEE ALSO"
+.BR CURLOPT_SSLVERSION "(3), " CURLOPT_HTTP_VERSION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_HTTP_VERSION.3
index 3716ff933,000000000..260363e16
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_HTTP_VERSION.3
+++ b/docs/libcurl/opts/GNURLOPT_HTTP_VERSION.3
@@@ -1,85 -1,0 +1,93 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_HTTP_VERSION 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt
options"
+.SH NAME
+CURLOPT_HTTP_VERSION \- specify HTTP protocol version to use
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTP_VERSION, long version);
+.SH DESCRIPTION
+Pass \fIversion\fP a long, set to one of the values described below. They ask
+libcurl to use the specific HTTP versions.
+
+Note that the HTTP version is just a request. libcurl will still prioritize to
+re-use an existing connection so it might then re-use a connection using a
+HTTP version you haven't asked for.
+
+.IP CURL_HTTP_VERSION_NONE
+We don't care about what version the library uses. libcurl will use whatever
+it thinks fit.
+.IP CURL_HTTP_VERSION_1_0
+Enforce HTTP 1.0 requests.
+.IP CURL_HTTP_VERSION_1_1
+Enforce HTTP 1.1 requests.
+.IP CURL_HTTP_VERSION_2_0
+Attempt HTTP 2 requests. libcurl will fall back to HTTP 1.1 if HTTP 2 can't be
+negotiated with the server. (Added in 7.33.0)
+
+The alias \fICURL_HTTP_VERSION_2\fP was added in 7.43.0 to better reflect the
+actual protocol name.
+.IP CURL_HTTP_VERSION_2TLS
+Attempt HTTP 2 over TLS (HTTPS) only. libcurl will fall back to HTTP 1.1 if
+HTTP 2 can't be negotiated with the HTTPS server. For clear text HTTP servers,
+libcurl will use 1.1. (Added in 7.47.0)
+.IP CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
+Issue non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade. It requires
+prior knowledge that the server supports HTTP/2 straight away. HTTPS requests
+will still do HTTP/2 the standard way with negotiated protocol version in the
+TLS handshake. (Added in 7.49.0)
++.IP CURL_HTTP_VERSION_3
++(Added in 7.66.0) Setting this value will make libcurl attempt to use HTTP/3
++directly to server given in the URL. Note that this cannot gracefully
++downgrade to earlier HTTP version if the server doesn't support HTTP/3.
++
++For more reliably upgrading to HTTP/3, set the prefered version to something
++lower and let the server announce its HTTP/3 support via Alt-Svc:. See
++\fICURLOPT_ALTSVC(3)\fP.
+.SH DEFAULT
+Since curl 7.62.0: CURL_HTTP_VERSION_2TLS
+
+Before that: CURL_HTTP_VERSION_1_1
+.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_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
+ ret = curl_easy_perform(curl);
+ if(ret == CURLE_HTTP_RETURNED_ERROR) {
+ /* an HTTP response error problem */
+ }
+}
+.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_SSLVERSION "(3), " CURLOPT_HTTP200ALIASES "(3), "
- .BR CURLOPT_HTTP09_ALLOWED "(3), "
++.BR CURLOPT_HTTP09_ALLOWED "(3), " CURLOPT_ALTSVC "(3) "
diff --cc docs/libcurl/opts/GNURLOPT_POST.3
index 70f3da8db,000000000..0b3080e0d
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_POST.3
+++ b/docs/libcurl/opts/GNURLOPT_POST.3
@@@ -1,89 -1,0 +1,90 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_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.
++must specify the size in the request. (Since 7.66.0, libcurl will
++automatically use chunked encoding for POSTs if the size is unknown.)
+
+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_PROXY_SSL_VERIFYHOST.3
index b68aea1ca,000000000..afcc51413
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_PROXY_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/GNURLOPT_PROXY_SSL_VERIFYHOST.3
@@@ -1,82 -1,0 +1,89 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_PROXY_SSL_VERIFYHOST 3 "16 Nov 2016" "libcurl 7.52.0"
"curl_easy_setopt options"
+.SH NAME
+CURLOPT_PROXY_SSL_VERIFYHOST \- verify the proxy certificate's name against
host
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY_SSL_VERIFYHOST, long
verify);
+.SH DESCRIPTION
+Pass a long set to 2L as asking curl to \fIverify\fP in the HTTPS proxy's
+certificate name fields against the proxy name.
+
+This option determines whether libcurl verifies that the proxy cert contains
+the correct name for the name it is known as.
+
+When \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP is 2, the proxy certificate must
+indicate that the server is the proxy to which you meant to connect to, or the
+connection fails.
+
+Curl considers the proxy the intended one when the Common Name field or a
+Subject Alternate Name field in the certificate matches the host name in the
+proxy string which you told curl to use.
+
- When the \fIverify\fP value is 1L, \fIcurl_easy_setopt\fP will return an error
- and the option value will not be changed due to old legacy reasons.
++If \fIverify\fP value is set to 1:
++
++In 7.28.0 and earlier: treated as a debug option of some sorts, not supported
++anymore due to frequently leading to programmer mistakes.
++
++From 7.28.1 to 7.65.3: setting it to 1 made curl_easy_setopt() return an error
++and leaving the flag untouched.
++
++From 7.66.0: treats 1 and 2 the same.
+
+When the \fIverify\fP value is 0L, the connection succeeds regardless of the
+names used in the certificate. Use that ability with caution!
+
+See also \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP to verify the digital signature
+of the proxy certificate. If libcurl is built against NSS and
+\fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP is zero,
+\fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP is also set to zero and cannot be
+overridden.
+.SH DEFAULT
+2
+.SH PROTOCOLS
+All protocols when used over an HTTPS proxy.
+.SH EXAMPLE
+.nf
+CURL *curl = curl_easy_init();
+if(curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
+
+ /* Set the default value: strict name check please */
+ curl_easy_setopt(curl, CURLOPT_PROXY_SSL_VERIFYHOST, 2L);
+
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+Added in 7.52.0.
+
+If built TLS enabled.
+.SH RETURN VALUE
+Returns CURLE_OK if TLS is supported, and CURLE_UNKNOWN_OPTION if not.
+
+If 1 is set as argument, \fICURLE_BAD_FUNCTION_ARGUMENT\fP is returned.
+.SH "SEE ALSO"
+.BR CURLOPT_PROXY_SSL_VERIFYPEER "(3), " CURLOPT_PROXY_CAINFO "(3), "
+.BR CURLOPT_SSL_VERIFYPEER "(3), " CURLOPT_CAINFO "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_READFUNCTION.3
index 412a9cd70,000000000..3bd7fc2ce
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_READFUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_READFUNCTION.3
@@@ -1,82 -1,0 +1,111 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
+.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_READFUNCTION 3 "16 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt
options"
+.SH NAME
+CURLOPT_READFUNCTION \- read callback for data uploads
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+size_t read_callback(char *buffer, size_t size, size_t nitems, void
*userdata);
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_READFUNCTION, read_callback);
+
+.SH DESCRIPTION
+Pass a pointer to your callback function, as the prototype shows above.
+
+This callback function gets called by libcurl as soon as it needs to read data
+in order to send it to the peer - like if you ask it to upload or post data to
+the server. The data area pointed at by the pointer \fIbuffer\fP should be
+filled up with at most \fIsize\fP multiplied with \fInitems\fP number of bytes
+by your function.
+
+Set the \fIuserdata\fP argument with the \fICURLOPT_READDATA(3)\fP option.
+
+Your function must return the actual number of bytes that it stored in the
data
+area pointed at by the pointer \fIbuffer\fP. Returning 0 will signal
+end-of-file to the library and cause it to stop the current transfer.
+
+If you stop the current transfer by returning 0 "pre-maturely" (i.e before the
+server expected it, like when you've said you will upload N bytes and you
+upload less than N bytes), you may experience that the server "hangs" waiting
+for the rest of the data that won't come.
+
+The read callback may return \fICURL_READFUNC_ABORT\fP to stop the current
+operation immediately, resulting in a \fICURLE_ABORTED_BY_CALLBACK\fP error
+code from the transfer.
+
+The callback can return \fICURL_READFUNC_PAUSE\fP to cause reading from this
+connection to pause. See \fIcurl_easy_pause(3)\fP for further details.
+
+\fBBugs\fP: when doing TFTP uploads, you must return the exact amount of data
+that the callback wants, or it will be considered the final packet by the
+server end and the transfer will end there.
+
+If you set this callback pointer to NULL, or don't set it at all, the default
+internal read function will be used. It is doing an fread() on the FILE *
+userdata set with \fICURLOPT_READDATA(3)\fP.
+.SH DEFAULT
+The default internal read callback is fread().
+.SH PROTOCOLS
+This is used for all protocols when doing uploads.
+.SH EXAMPLE
- Here's an example setting a read callback for reading that to upload to an FTP
- site: https://curl.haxx.se/libcurl/c/ftpupload.html
++.nf
++size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userdata)
++{
++ FILE *readhere = (FILE *)userdata;
++ curl_off_t nread;
++
++ /* copy as much data as possible into the 'ptr' buffer, but no more than
++ 'size' * 'nmemb' bytes! */
++ size_t retcode = fread(ptr, size, nmemb, readhere);
++
++ nread = (curl_off_t)retcode;
++
++ fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T
++ " bytes from file\\n", nread);
++ return retcode;
++}
++
++void setup(char *uploadthis)
++{
++ FILE *file = fopen("rb", uploadthis);
++ CURLcode result;
++
++ /* set callback to use */
++ curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
++
++ /* pass in suitable argument to callback */
++ curl_easy_setopt(curl, CURLOPT_READDATA, uploadthis);
++
++ result = curl_easy_perform(curl);
++}
++.fi
+.SH AVAILABILITY
+CURL_READFUNC_PAUSE return code was added in 7.18.0 and CURL_READFUNC_ABORT
+was added in 7.12.1.
+.SH RETURN VALUE
+This will return CURLE_OK.
+.SH "SEE ALSO"
+.BR CURLOPT_READDATA "(3), " CURLOPT_WRITEFUNCTION "(3), "
+.BR CURLOPT_SEEKFUNCTION "(3), " CURLOPT_UPLOAD "(3), " CURLOPT_POST "(3), "
+.BR CURLOPT_UPLOAD_BUFFERSIZE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_SSL_VERIFYHOST.3
index c680d2e37,000000000..9513c65b1
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_SSL_VERIFYHOST.3
+++ b/docs/libcurl/opts/GNURLOPT_SSL_VERIFYHOST.3
@@@ -1,94 -1,0 +1,98 @@@
+.\" **************************************************************************
+.\" * _ _ ____ _
+.\" * Project ___| | | | _ \| |
+.\" * / __| | | | |_) | |
+.\" * | (__| |_| | _ <| |___
+.\" * \___|\___/|_| \_\_____|
+.\" *
- .\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2019, 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 GNURLOPT_SSL_VERIFYHOST 3 "17 Jun 2014" "libcurl 7.37.0"
"curl_easy_setopt options"
+.SH NAME
+CURLOPT_SSL_VERIFYHOST \- verify the certificate's name against host
+.SH SYNOPSIS
+#include <gnurl/curl.h>
+
+CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_VERIFYHOST, long verify);
+.SH DESCRIPTION
+Pass a long as parameter specifying what to \fIverify\fP.
+
+This option determines whether libcurl verifies that the server cert is for
+the server it is known as.
+
+When negotiating TLS and SSL connections, the server sends a certificate
+indicating its identity.
+
+When \fICURLOPT_SSL_VERIFYHOST(3)\fP is 2, that certificate must indicate that
+the server is the server to which you meant to connect, or the connection
+fails. Simply put, it means it has to have the same name in the certificate as
+is in the URL you operate against.
+
+Curl considers the server the intended one when the Common Name field or a
+Subject Alternate Name field in the certificate matches the host name in the
+URL to which you told Curl to connect.
+
- When the \fIverify\fP value is 1, \fIcurl_easy_setopt\fP will return an error
- and the option value will not be changed. It was previously (in 7.28.0 and
- earlier) a debug option of some sorts, but it is no longer supported due to
- frequently leading to programmer mistakes. Future versions will stop returning
- an error for 1 and just treat 1 and 2 the same.
++If \fIverify\fP value is set to 1:
++
++In 7.28.0 and earlier: treated as a debug option of some sorts, not supported
++anymore due to frequently leading to programmer mistakes.
++
++From 7.28.1 to 7.65.3: setting it to 1 made curl_easy_setopt() return an error
++and leaving the flag untouched.
++
++From 7.66.0: treats 1 and 2 the same.
+
+When the \fIverify\fP value is 0, the connection succeeds regardless of the
+names in the certificate. Use that ability with caution!
+
+The default value for this option is 2.
+
+This option controls checking the server's certificate's claimed identity.
+The server could be lying. To control lying, see
+\fICURLOPT_SSL_VERIFYPEER(3)\fP.
+.SH LIMITATIONS
+DarwinSSL: If \fIverify\fP value is 0, then SNI is also disabled. SNI is a TLS
+extension that sends the hostname to the server. The server may use that
+information to do such things as sending back a specific certificate for the
+hostname, or forwarding the request to a specific origin server. Some
hostnames
+may be inaccessible if SNI is not sent.
+
+NSS: If \fICURLOPT_SSL_VERIFYPEER(3)\fP is zero,
+\fICURLOPT_SSL_VERIFYHOST(3)\fP is also set to zero and cannot be overridden.
+.SH DEFAULT
+2
+.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 name check please */
+ curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L);
+
+ curl_easy_perform(curl);
+}
+.fi
+.SH AVAILABILITY
+If built TLS enabled.
+.SH RETURN VALUE
+Returns CURLE_OK if TLS is supported, and CURLE_UNKNOWN_OPTION if not.
+
+If 1 is set as argument, \fICURLE_BAD_FUNCTION_ARGUMENT\fP is returned.
+.SH "SEE ALSO"
+.BR CURLOPT_SSL_VERIFYPEER "(3), " CURLOPT_CAINFO "(3), "
diff --cc docs/libcurl/opts/Makefile.inc
index a0b8bd95e,b5f62a159..58b58dc41
--- a/docs/libcurl/opts/Makefile.inc
+++ b/docs/libcurl/opts/Makefile.inc
@@@ -1,350 -1,352 +1,352 @@@
# 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_RETRY_AFTER.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_ALTSVC.3 \
- CURLOPT_ALTSVC_CTRL.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_UPKEEP_INTERVAL_MS.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_CURLU.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_DOH_URL.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_HTTP09_ALLOWED.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_TRAILERDATA.3 \
- CURLOPT_TRAILERFUNCTION.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_MAXAGE_CONN.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_AUTHZID.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_UPLOAD_BUFFERSIZE.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_RETRY_AFTER.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_ALTSVC.3 \
+ GNURLOPT_ALTSVC_CTRL.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_UPKEEP_INTERVAL_MS.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_CURLU.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_DOH_URL.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_HTTP09_ALLOWED.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_TRAILERDATA.3 \
+ GNURLOPT_TRAILERFUNCTION.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_MAXAGE_CONN.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_AUTHZID.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_UPLOAD_BUFFERSIZE.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 include/gnurl/multi.h
index eab23c08e,000000000..f10932244
mode 100644,000000..100644
--- a/include/gnurl/multi.h
+++ b/include/gnurl/multi.h
@@@ -1,441 -1,0 +1,455 @@@
- #ifndef __CURL_MULTI_H
- #define __CURL_MULTI_H
++#ifndef CURLINC_MULTI_H
++#define CURLINC_MULTI_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, et al.
++ * Copyright (C) 1998 - 2019, 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.
+ *
+ ***************************************************************************/
+/*
+ This is an "external" header file. Don't give away any internals here!
+
+ GOALS
+
+ o Enable a "pull" interface. The application that uses libcurl decides where
+ and when to ask libcurl to get/send data.
+
+ o Enable multiple simultaneous transfers in the same thread without making
it
+ complicated for the application.
+
+ o Enable the application to select() on its own file descriptors and curl's
+ file descriptors simultaneous easily.
+
+*/
+
+/*
+ * This header file should not really need to include "curl.h" since curl.h
+ * itself includes this file and we expect user applications to do #include
+ * <gnurl/curl.h> without the need for especially including multi.h.
+ *
+ * For some reason we added this include here at one point, and rather than to
+ * break existing (wrongly written) libcurl applications, we leave it as-is
+ * but with this warning attached.
+ */
+#include "curl.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
+typedef struct Curl_multi CURLM;
+#else
+typedef void CURLM;
+#endif
+
+typedef enum {
+ CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
+ curl_multi_socket*() soon */
+ CURLM_OK,
+ CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle
*/
+ CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */
+ CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */
+ CURLM_INTERNAL_ERROR, /* this is a libcurl bug */
+ CURLM_BAD_SOCKET, /* the passed in socket argument did not match */
+ CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */
+ CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
+ attempted to get added - again */
+ CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a
+ callback */
+ CURLM_LAST
+} CURLMcode;
+
+/* just to make code nicer when using curl_multi_socket() you can now check
+ for CURLM_CALL_MULTI_SOCKET too in the same style it works for
+ curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
+#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
+
+/* bitmask bits for CURLMOPT_PIPELINING */
+#define CURLPIPE_NOTHING 0L
+#define CURLPIPE_HTTP1 1L
+#define CURLPIPE_MULTIPLEX 2L
+
+typedef enum {
+ CURLMSG_NONE, /* first, not used */
+ CURLMSG_DONE, /* This easy handle has completed. 'result' contains
+ the CURLcode of the transfer */
+ CURLMSG_LAST /* last, not used */
+} CURLMSG;
+
+struct CURLMsg {
+ CURLMSG msg; /* what this message means */
+ CURL *easy_handle; /* the handle it concerns */
+ union {
+ void *whatever; /* message-specific data */
+ CURLcode result; /* return code for transfer */
+ } data;
+};
+typedef struct CURLMsg CURLMsg;
+
+/* Based on poll(2) structure and values.
+ * We don't use pollfd and POLL* constants explicitly
+ * to cover platforms without poll(). */
+#define CURL_WAIT_POLLIN 0x0001
+#define CURL_WAIT_POLLPRI 0x0002
+#define CURL_WAIT_POLLOUT 0x0004
+
+struct curl_waitfd {
+ curl_socket_t fd;
+ short events;
+ short revents; /* not supported yet */
+};
+
+/*
+ * Name: curl_multi_init()
+ *
+ * Desc: inititalize multi-style curl usage
+ *
+ * Returns: a new CURLM handle to use in all 'curl_multi' functions.
+ */
+CURL_EXTERN CURLM *curl_multi_init(void);
+
+/*
+ * Name: curl_multi_add_handle()
+ *
+ * Desc: add a standard curl handle to the multi stack
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle,
+ CURL *curl_handle);
+
+ /*
+ * Name: curl_multi_remove_handle()
+ *
+ * Desc: removes a curl handle from the multi stack again
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
+ CURL *curl_handle);
+
+ /*
+ * Name: curl_multi_fdset()
+ *
+ * Desc: Ask curl for its fd_set sets. The app can use these to select()
or
+ * poll() on. We want curl_multi_perform() called as soon as one of
+ * them are ready.
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle,
+ fd_set *read_fd_set,
+ fd_set *write_fd_set,
+ fd_set *exc_fd_set,
+ int *max_fd);
+
+/*
+ * Name: curl_multi_wait()
+ *
+ * Desc: Poll on all fds within a CURLM set as well as any
+ * additional fds passed to the function.
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
+ struct curl_waitfd extra_fds[],
+ unsigned int extra_nfds,
++ int timeout_ms,
++ int *ret);
++
++/*
++ * Name: curl_multi_poll()
++ *
++ * Desc: Poll on all fds within a CURLM set as well as any
++ * additional fds passed to the function.
++ *
++ * Returns: CURLMcode type, general multi error code.
++ */
++CURL_EXTERN CURLMcode curl_multi_poll(CURLM *multi_handle,
++ struct curl_waitfd extra_fds[],
++ unsigned int extra_nfds,
+ int timeout_ms,
+ int *ret);
+
+ /*
+ * Name: curl_multi_perform()
+ *
+ * Desc: When the app thinks there's data available for curl it calls this
+ * function to read/write whatever there is right now. This returns
+ * as soon as the reads and writes are done. This function does not
+ * require that there actually is data available for reading or that
+ * data can be written, it can be called just in case. It returns
+ * the number of handles that still transfer data in the second
+ * argument's integer-pointer.
+ *
+ * Returns: CURLMcode type, general multi error code. *NOTE* that this only
+ * returns errors etc regarding the whole multi stack. There might
+ * still have occurred problems on individual transfers even when
+ * this returns OK.
+ */
+CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
+ int *running_handles);
+
+ /*
+ * Name: curl_multi_cleanup()
+ *
+ * Desc: Cleans up and removes a whole multi stack. It does not free or
+ * touch any individual easy handles in any way. We need to define
+ * in what state those handles will be if this function is called
+ * in the middle of a transfer.
+ *
+ * Returns: CURLMcode type, general multi error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
+
+/*
+ * Name: curl_multi_info_read()
+ *
+ * Desc: Ask the multi handle if there's any messages/informationals from
+ * the individual transfers. Messages include informationals such as
+ * error code from the transfer or just the fact that a transfer is
+ * completed. More details on these should be written down as well.
+ *
+ * Repeated calls to this function will return a new struct each
+ * time, until a special "end of msgs" struct is returned as a signal
+ * that there is no more to get at this point.
+ *
+ * The data the returned pointer points to will not survive calling
+ * curl_multi_cleanup().
+ *
+ * The 'CURLMsg' struct is meant to be very simple and only contain
+ * very basic information. If more involved information is wanted,
+ * we will provide the particular "transfer handle" in that struct
+ * and that should/could/would be used in subsequent
+ * curl_easy_getinfo() calls (or similar). The point being that we
+ * must never expose complex structs to applications, as then we'll
+ * undoubtably get backwards compatibility problems in the future.
+ *
+ * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
+ * of structs. It also writes the number of messages left in the
+ * queue (after this read) in the integer the second argument points
+ * to.
+ */
+CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
+ int *msgs_in_queue);
+
+/*
+ * Name: curl_multi_strerror()
+ *
+ * Desc: The curl_multi_strerror function may be used to turn a CURLMcode
+ * value into the equivalent human readable error string. This is
+ * useful for printing meaningful error messages.
+ *
+ * Returns: A pointer to a zero-terminated error message.
+ */
+CURL_EXTERN const char *curl_multi_strerror(CURLMcode);
+
+/*
+ * Name: curl_multi_socket() and
+ * curl_multi_socket_all()
+ *
+ * Desc: An alternative version of curl_multi_perform() that allows the
+ * application to pass in one of the file descriptors that have been
+ * detected to have "action" on them and let libcurl perform.
+ * See man page for details.
+ */
+#define CURL_POLL_NONE 0
+#define CURL_POLL_IN 1
+#define CURL_POLL_OUT 2
+#define CURL_POLL_INOUT 3
+#define CURL_POLL_REMOVE 4
+
+#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD
+
+#define CURL_CSELECT_IN 0x01
+#define CURL_CSELECT_OUT 0x02
+#define CURL_CSELECT_ERR 0x04
+
+typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */
+ curl_socket_t s, /* socket */
+ int what, /* see above */
+ void *userp, /* private callback
+ pointer */
+ void *socketp); /* private socket
+ pointer */
+/*
+ * Name: curl_multi_timer_callback
+ *
+ * Desc: Called by libcurl whenever the library detects a change in the
+ * maximum number of milliseconds the app is allowed to wait before
+ * curl_multi_socket() or curl_multi_perform() must be called
+ * (to allow libcurl's timed events to take place).
+ *
+ * Returns: The callback should return zero.
+ */
+typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */
+ long timeout_ms, /* see above */
+ void *userp); /* private callback
+ pointer */
+
+CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s,
+ int *running_handles);
+
+CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle,
+ curl_socket_t s,
+ int ev_bitmask,
+ int *running_handles);
+
+CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle,
+ int *running_handles);
+
+#ifndef CURL_ALLOW_OLD_MULTI_SOCKET
+/* This macro below was added in 7.16.3 to push users who recompile to use
+ the new curl_multi_socket_action() instead of the old curl_multi_socket()
+*/
+#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z)
+#endif
+
+/*
+ * Name: curl_multi_timeout()
+ *
+ * Desc: Returns the maximum number of milliseconds the app is allowed to
+ * wait before curl_multi_socket() or curl_multi_perform() must be
+ * called (to allow libcurl's timed events to take place).
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
+ long *milliseconds);
+
+#undef CINIT /* re-using the same name as in curl.h */
+
+#ifdef CURL_ISOCPP
+#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num
+#else
+/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
+#define LONG CURLOPTTYPE_LONG
+#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT
+#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
+#define OFF_T CURLOPTTYPE_OFF_T
+#define CINIT(name,type,number) CURLMOPT_/**/name = type + number
+#endif
+
+typedef enum {
+ /* This is the socket callback function pointer */
+ CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1),
+
+ /* This is the argument passed to the socket callback */
+ CINIT(SOCKETDATA, OBJECTPOINT, 2),
+
+ /* set to 1 to enable pipelining for this multi handle */
+ CINIT(PIPELINING, LONG, 3),
+
+ /* This is the timer callback function pointer */
+ CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4),
+
+ /* This is the argument passed to the timer callback */
+ CINIT(TIMERDATA, OBJECTPOINT, 5),
+
+ /* maximum number of entries in the connection cache */
+ CINIT(MAXCONNECTS, LONG, 6),
+
+ /* maximum number of (pipelining) connections to one host */
+ CINIT(MAX_HOST_CONNECTIONS, LONG, 7),
+
+ /* maximum number of requests in a pipeline */
+ CINIT(MAX_PIPELINE_LENGTH, LONG, 8),
+
+ /* a connection with a content-length longer than this
+ will not be considered for pipelining */
+ CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9),
+
+ /* a connection with a chunk length longer than this
+ will not be considered for pipelining */
+ CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10),
+
+ /* a list of site names(+port) that are blacklisted from
+ pipelining */
+ CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11),
+
+ /* a list of server types that are blacklisted from
+ pipelining */
+ CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12),
+
+ /* maximum number of open connections in total */
+ CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13),
+
+ /* This is the server push callback function pointer */
+ CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14),
+
+ /* This is the argument passed to the server push callback */
+ CINIT(PUSHDATA, OBJECTPOINT, 15),
+
+ CURLMOPT_LASTENTRY /* the last unused */
+} CURLMoption;
+
+
+/*
+ * Name: curl_multi_setopt()
+ *
+ * Desc: Sets options for the multi handle.
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle,
+ CURLMoption option, ...);
+
+
+/*
+ * Name: curl_multi_assign()
+ *
+ * Desc: This function sets an association in the multi handle between the
+ * given socket and a private pointer of the application. This is
+ * (only) useful for curl_multi_socket uses.
+ *
+ * Returns: CURLM error code.
+ */
+CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
+ curl_socket_t sockfd, void *sockp);
+
+
+/*
+ * Name: curl_push_callback
+ *
+ * Desc: This callback gets called when a new stream is being pushed by the
+ * server. It approves or denies the new stream.
+ *
+ * Returns: CURL_PUSH_OK or CURL_PUSH_DENY.
+ */
+#define CURL_PUSH_OK 0
+#define CURL_PUSH_DENY 1
+
+struct curl_pushheaders; /* forward declaration only */
+
+CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h,
+ size_t num);
+CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h,
+ const char *name);
+
+typedef int (*curl_push_callback)(CURL *parent,
+ CURL *easy,
+ size_t num_headers,
+ struct curl_pushheaders *headers,
+ void *userp);
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif
diff --cc lib/Makefile.am
index 6e8a83fad,516a2394d..7003f99cc
--- 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.m32 config-win32.h \
- config-win32ce.h config-riscos.h config-mac.h curl_config.h.in \
+ EXTRA_DIST = Makefile.m32 config-win32.h config-win32ce.h \
+ config-plan9.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/multi.c
index e5761fb7c,2e91e4ff3..5fe6c58a4
mode 100644,100755..100755
--- a/lib/multi.c
+++ b/lib/multi.c
diff --cc tests/data/Makefile.inc
index dfedea3d8,fc22c2f17..e2a04e181
--- a/tests/data/Makefile.inc
+++ b/tests/data/Makefile.inc
@@@ -129,7 -130,7 +130,7 @@@ test1136 test1137 test113
test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \
test1160 test1161 test1162 test1163 test1164 test1165 \
- test1170 test1171 test1172 \
-test1170 test1171 test1172 test1173 test1174 \
++test1170 test1171 test1172 test1174 \
\
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [GNUnet-SVN] [gnurl] 207/220: sspi: fix memory leaks, (continued)
- [GNUnet-SVN] [gnurl] 207/220: sspi: fix memory leaks, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 209/220: openssl: use SSL_CTX_set_<min|max>_proto_version() when available, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 210/220: urlapi: verify the IPv6 numerical address, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 218/220: docs: curl->gnurl sed, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 220/220: doc: man 3 rename., gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 219/220: rename man 3 file, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 208/220: openssl: indent, re-organize and add comments, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 203/220: security:read_data fix bad realloc(), gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 196/220: cleanup: move functions out of url.c and make them static, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 214/220: RELEASE-NOTES: curl 7.66.0, gnunet, 2019/09/12
- [GNUnet-SVN] [gnurl] 216/220: Merge tag 'curl-7_66_0',
gnunet <=