gnunet-svn
[Top][All Lists]
Advanced

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

[gnurl] 407/411: Merge tag 'curl-7_74_0'


From: gnunet
Subject: [gnurl] 407/411: Merge tag 'curl-7_74_0'
Date: Wed, 13 Jan 2021 01:23:42 +0100

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

nikita pushed a commit to branch master
in repository gnurl.

commit 5b9f8acdda96cbaf7ec070db3ae9bdbe2a42f8eb
Merge: 7bd28f373 e05285975
Author: nikita <nikita@NetBSD.org>
AuthorDate: Wed Jan 13 00:53:52 2021 +0100

    Merge tag 'curl-7_74_0'
    
    7.74.0

 .azure-pipelines.yml                               |  31 +-
 .cirrus.yml                                        |  16 +-
 .dir-locals.el                                     |   2 +-
 .github/ISSUE_TEMPLATE/config.yml                  |  11 +
 .lgtm.yml                                          |   2 +-
 .mailmap                                           |  10 +-
 .travis.yml                                        | 317 +++-----
 CHANGES                                            |   2 +-
 CMake/CMakeConfigurableFile.in                     |   2 +-
 CMake/CurlSymbolHiding.cmake                       |   4 +-
 CMake/CurlTests.c                                  |   4 +-
 CMake/FindBearSSL.cmake                            |   2 +-
 CMake/FindGSS.cmake                                |   2 +-
 CMake/FindNGHTTP3.cmake                            |   2 +-
 CMake/FindNGTCP2.cmake                             |   2 +-
 CMake/FindNSS.cmake                                |   2 +-
 CMake/FindQUICHE.cmake                             |   2 +-
 CMake/FindWolfSSL.cmake                            |   2 +-
 CMake/FindZstd.cmake                               |   2 +-
 CMake/Macros.cmake                                 |  13 +-
 CMake/OtherTests.cmake                             |   2 +-
 CMake/Platforms/WindowsCache.cmake                 |   2 +-
 CMake/Utilities.cmake                              |   2 +-
 CMake/cmake_uninstall.cmake.in                     |   2 +-
 CMake/gnurl-config.cmake.in                        |   2 +-
 CMakeLists.txt                                     | 104 ++-
 MacOSX-Framework                                   |   2 +-
 Makefile.am                                        |   3 +-
 Makefile.dist                                      |  16 +-
 README                                             |  10 +-
 README.md                                          |  29 +-
 RELEASE-NOTES                                      | 452 +++++------
 acinclude.m4                                       |  38 +-
 appveyor.yml                                       |  34 +-
 buildconf                                          | 432 +----------
 buildconf.bat                                      |   2 +-
 configure.ac                                       | 181 +++--
 docs/ALTSVC.md                                     |   4 +-
 docs/BUGS                                          | 302 --------
 docs/BUGS.md                                       | 266 +++++++
 docs/CHECKSRC.md                                   |   6 +-
 docs/CIPHERS.md                                    |   8 +-
 docs/CMakeLists.txt                                |   2 +-
 docs/CONTRIBUTE.md                                 |  45 +-
 docs/CURL-DISABLE.md                               |  18 +
 docs/DYNBUF.md                                     |   6 +
 docs/{ESNI.md => ECH.md}                           |  76 +-
 docs/EXPERIMENTAL.md                               |   4 +-
 docs/FAQ                                           | 267 +++----
 docs/{FEATURES => FEATURES.md}                     | 182 +++--
 docs/HELP-US.md                                    |   8 +-
 docs/HISTORY.md                                    |  40 +-
 docs/HSTS.md                                       |  44 ++
 docs/HTTP-COOKIES.md                               |   2 +-
 docs/HTTP3.md                                      |  16 +-
 docs/INTERNALS.md                                  |  49 +-
 docs/KNOWN_BUGS                                    | 200 +++--
 docs/LICENSE-MIXING.md                             | 128 ----
 docs/MAIL-ETIQUETTE                                |   2 +-
 docs/MANUAL.md                                     |  28 +-
 docs/MQTT.md                                       |  32 -
 docs/Makefile.am                                   |  14 +-
 docs/NEW-PROTOCOL.md                               | 110 +++
 docs/README.md                                     |   6 +-
 docs/RESOURCES                                     |  85 ---
 docs/ROADMAP.md                                    |  32 +-
 docs/SECURITY-PROCESS.md                           |  12 +-
 docs/SSL-PROBLEMS.md                               |   2 +-
 docs/SSLCERTS.md                                   |   6 +-
 docs/THANKS                                        |  53 ++
 docs/THANKS-filter                                 |   3 +-
 docs/TODO                                          |  58 +-
 docs/TheArtOfHttpScripting                         | 758 ------------------
 docs/TheArtOfHttpScripting.md                      | 692 +++++++++++++++++
 docs/VERSIONS.md                                   |  13 +-
 docs/cmdline-opts/CMakeLists.txt                   |   2 +-
 docs/cmdline-opts/Makefile.am                      |   2 +-
 docs/cmdline-opts/Makefile.inc                     |   5 +-
 docs/cmdline-opts/abstract-unix-socket.d           |   1 +
 docs/cmdline-opts/alt-svc.d                        |   1 +
 docs/cmdline-opts/anyauth.d                        |   1 +
 docs/cmdline-opts/append.d                         |   1 +
 docs/cmdline-opts/basic.d                          |   1 +
 docs/cmdline-opts/cacert.d                         |   1 +
 docs/cmdline-opts/capath.d                         |   1 +
 docs/cmdline-opts/cert-status.d                    |   1 +
 docs/cmdline-opts/cert-type.d                      |   1 +
 docs/cmdline-opts/cert.d                           |   1 +
 docs/cmdline-opts/ciphers.d                        |   3 +-
 docs/cmdline-opts/compressed-ssh.d                 |   1 +
 docs/cmdline-opts/compressed.d                     |   1 +
 docs/cmdline-opts/config.d                         |  21 +-
 docs/cmdline-opts/connect-timeout.d                |   1 +
 docs/cmdline-opts/connect-to.d                     |   1 +
 docs/cmdline-opts/continue-at.d                    |   1 +
 docs/cmdline-opts/cookie-jar.d                     |   1 +
 docs/cmdline-opts/cookie.d                         |   1 +
 docs/cmdline-opts/create-dirs.d                    |   1 +
 docs/cmdline-opts/crlf.d                           |   1 +
 docs/cmdline-opts/crlfile.d                        |   1 +
 docs/cmdline-opts/curves.d                         |  18 +
 docs/cmdline-opts/data-ascii.d                     |   1 +
 docs/cmdline-opts/data-binary.d                    |   1 +
 docs/cmdline-opts/data-raw.d                       |   1 +
 docs/cmdline-opts/data-urlencode.d                 |   1 +
 docs/cmdline-opts/data.d                           |   1 +
 docs/cmdline-opts/delegation.d                     |   1 +
 docs/cmdline-opts/digest.d                         |   1 +
 docs/cmdline-opts/disable-eprt.d                   |   1 +
 docs/cmdline-opts/disable-epsv.d                   |   1 +
 docs/cmdline-opts/disable.d                        |   1 +
 docs/cmdline-opts/disallow-username-in-url.d       |   1 +
 docs/cmdline-opts/dns-interface.d                  |   1 +
 docs/cmdline-opts/dns-ipv4-addr.d                  |   1 +
 docs/cmdline-opts/dns-ipv6-addr.d                  |   1 +
 docs/cmdline-opts/dns-servers.d                    |   1 +
 docs/cmdline-opts/doh-url.d                        |   1 +
 docs/cmdline-opts/dump-header.d                    |   1 +
 docs/cmdline-opts/egd-file.d                       |   1 +
 docs/cmdline-opts/engine.d                         |   1 +
 docs/cmdline-opts/etag-compare.d                   |   3 +-
 docs/cmdline-opts/etag-save.d                      |   5 +-
 docs/cmdline-opts/expect100-timeout.d              |   1 +
 docs/cmdline-opts/fail-early.d                     |   1 +
 docs/cmdline-opts/fail.d                           |   1 +
 docs/cmdline-opts/false-start.d                    |   1 +
 docs/cmdline-opts/form-string.d                    |   1 +
 docs/cmdline-opts/form.d                           |   1 +
 docs/cmdline-opts/ftp-account.d                    |   1 +
 docs/cmdline-opts/ftp-alternative-to-user.d        |   1 +
 docs/cmdline-opts/ftp-create-dirs.d                |   1 +
 docs/cmdline-opts/ftp-method.d                     |   1 +
 docs/cmdline-opts/ftp-pasv.d                       |   1 +
 docs/cmdline-opts/ftp-port.d                       |   1 +
 docs/cmdline-opts/ftp-pret.d                       |   1 +
 docs/cmdline-opts/ftp-skip-pasv-ip.d               |   3 +
 docs/cmdline-opts/ftp-ssl-ccc-mode.d               |   1 +
 docs/cmdline-opts/ftp-ssl-ccc.d                    |   1 +
 docs/cmdline-opts/ftp-ssl-control.d                |   1 +
 docs/cmdline-opts/gen.pl                           |  66 +-
 docs/cmdline-opts/get.d                            |   1 +
 docs/cmdline-opts/globoff.d                        |   1 +
 docs/cmdline-opts/happy-eyeballs-timeout-ms.d      |   1 +
 docs/cmdline-opts/haproxy-protocol.d               |   1 +
 docs/cmdline-opts/head.d                           |   1 +
 docs/cmdline-opts/header.d                         |  19 +-
 docs/cmdline-opts/help.d                           |  12 +-
 docs/cmdline-opts/hostpubmd5.d                     |   1 +
 docs/cmdline-opts/hsts.d                           |  18 +
 docs/cmdline-opts/http0.9.d                        |   1 +
 docs/cmdline-opts/http1.0.d                        |   1 +
 docs/cmdline-opts/http1.1.d                        |   1 +
 docs/cmdline-opts/http2-prior-knowledge.d          |   1 +
 docs/cmdline-opts/http2.d                          |   1 +
 docs/cmdline-opts/http3.d                          |   1 +
 docs/cmdline-opts/ignore-content-length.d          |   1 +
 docs/cmdline-opts/include.d                        |   1 +
 docs/cmdline-opts/insecure.d                       |   3 +-
 docs/cmdline-opts/interface.d                      |   1 +
 docs/cmdline-opts/ipv4.d                           |   1 +
 docs/cmdline-opts/ipv6.d                           |   1 +
 docs/cmdline-opts/junk-session-cookies.d           |   1 +
 docs/cmdline-opts/keepalive-time.d                 |   1 +
 docs/cmdline-opts/key-type.d                       |   1 +
 docs/cmdline-opts/key.d                            |   1 +
 docs/cmdline-opts/krb.d                            |   1 +
 docs/cmdline-opts/libcurl.d                        |   1 +
 docs/cmdline-opts/limit-rate.d                     |   1 +
 docs/cmdline-opts/list-only.d                      |   1 +
 docs/cmdline-opts/local-port.d                     |   1 +
 docs/cmdline-opts/location-trusted.d               |   1 +
 docs/cmdline-opts/location.d                       |   1 +
 docs/cmdline-opts/login-options.d                  |   1 +
 docs/cmdline-opts/mail-auth.d                      |   1 +
 docs/cmdline-opts/mail-from.d                      |   1 +
 docs/cmdline-opts/mail-rcpt-allowfails.d           |   1 +
 docs/cmdline-opts/mail-rcpt.d                      |   1 +
 docs/cmdline-opts/manual.d                         |   1 +
 docs/cmdline-opts/max-filesize.d                   |   1 +
 docs/cmdline-opts/max-redirs.d                     |   1 +
 docs/cmdline-opts/max-time.d                       |   1 +
 docs/cmdline-opts/metalink.d                       |   1 +
 docs/cmdline-opts/negotiate.d                      |   1 +
 docs/cmdline-opts/netrc-file.d                     |   1 +
 docs/cmdline-opts/netrc-optional.d                 |   1 +
 docs/cmdline-opts/netrc.d                          |   1 +
 docs/cmdline-opts/next.d                           |   1 +
 docs/cmdline-opts/no-alpn.d                        |   1 +
 docs/cmdline-opts/no-buffer.d                      |   1 +
 docs/cmdline-opts/no-keepalive.d                   |   1 +
 docs/cmdline-opts/no-npn.d                         |   1 +
 docs/cmdline-opts/no-progress-meter.d              |   1 +
 docs/cmdline-opts/no-sessionid.d                   |   1 +
 docs/cmdline-opts/noproxy.d                        |   1 +
 docs/cmdline-opts/ntlm-wb.d                        |   1 +
 docs/cmdline-opts/ntlm.d                           |   1 +
 docs/cmdline-opts/oauth2-bearer.d                  |   1 +
 docs/cmdline-opts/output-dir.d                     |  19 +
 docs/cmdline-opts/output.d                         |   1 +
 docs/cmdline-opts/page-footer                      |   8 +-
 docs/cmdline-opts/page-header                      |  11 +-
 docs/cmdline-opts/parallel-immediate.d             |   1 +
 docs/cmdline-opts/parallel-max.d                   |   1 +
 docs/cmdline-opts/parallel.d                       |   1 +
 docs/cmdline-opts/pass.d                           |   1 +
 docs/cmdline-opts/path-as-is.d                     |   1 +
 docs/cmdline-opts/pinnedpubkey.d                   |   1 +
 docs/cmdline-opts/post301.d                        |   1 +
 docs/cmdline-opts/post302.d                        |   1 +
 docs/cmdline-opts/post303.d                        |   1 +
 docs/cmdline-opts/preproxy.d                       |   1 +
 docs/cmdline-opts/progress-bar.d                   |   1 +
 docs/cmdline-opts/proto-default.d                  |   1 +
 docs/cmdline-opts/proto-redir.d                    |   1 +
 docs/cmdline-opts/proto.d                          |   1 +
 docs/cmdline-opts/proxy-anyauth.d                  |   1 +
 docs/cmdline-opts/proxy-basic.d                    |   1 +
 docs/cmdline-opts/proxy-cacert.d                   |   1 +
 docs/cmdline-opts/proxy-capath.d                   |   1 +
 docs/cmdline-opts/proxy-cert-type.d                |   1 +
 docs/cmdline-opts/proxy-cert.d                     |   1 +
 docs/cmdline-opts/proxy-ciphers.d                  |   1 +
 docs/cmdline-opts/proxy-crlfile.d                  |   1 +
 docs/cmdline-opts/proxy-digest.d                   |   1 +
 docs/cmdline-opts/proxy-header.d                   |   1 +
 docs/cmdline-opts/proxy-insecure.d                 |   1 +
 docs/cmdline-opts/proxy-key-type.d                 |   1 +
 docs/cmdline-opts/proxy-key.d                      |   1 +
 docs/cmdline-opts/proxy-negotiate.d                |   1 +
 docs/cmdline-opts/proxy-ntlm.d                     |   1 +
 docs/cmdline-opts/proxy-pass.d                     |   1 +
 docs/cmdline-opts/proxy-pinnedpubkey.d             |   1 +
 docs/cmdline-opts/proxy-service-name.d             |   1 +
 docs/cmdline-opts/proxy-ssl-allow-beast.d          |   1 +
 docs/cmdline-opts/proxy-tls13-ciphers.d            |   3 +-
 docs/cmdline-opts/proxy-tlsauthtype.d              |   1 +
 docs/cmdline-opts/proxy-tlspassword.d              |   1 +
 docs/cmdline-opts/proxy-tlsuser.d                  |   1 +
 docs/cmdline-opts/proxy-tlsv1.d                    |   1 +
 docs/cmdline-opts/proxy-user.d                     |   1 +
 docs/cmdline-opts/proxy.d                          |   1 +
 docs/cmdline-opts/proxy1.0.d                       |   1 +
 docs/cmdline-opts/proxytunnel.d                    |   1 +
 docs/cmdline-opts/pubkey.d                         |   1 +
 docs/cmdline-opts/quote.d                          |   9 +
 docs/cmdline-opts/random-file.d                    |   1 +
 docs/cmdline-opts/range.d                          |   4 +-
 docs/cmdline-opts/raw.d                            |   1 +
 docs/cmdline-opts/referer.d                        |   1 +
 docs/cmdline-opts/remote-header-name.d             |   1 +
 docs/cmdline-opts/remote-name-all.d                |   1 +
 docs/cmdline-opts/remote-name.d                    |   1 +
 docs/cmdline-opts/remote-time.d                    |   1 +
 docs/cmdline-opts/request-target.d                 |   1 +
 docs/cmdline-opts/request.d                        |   1 +
 docs/cmdline-opts/resolve.d                        |   1 +
 docs/cmdline-opts/retry-all-errors.d               |   1 +
 docs/cmdline-opts/retry-connrefused.d              |   1 +
 docs/cmdline-opts/retry-delay.d                    |   1 +
 docs/cmdline-opts/retry-max-time.d                 |   1 +
 docs/cmdline-opts/retry.d                          |   1 +
 docs/cmdline-opts/sasl-authzid.d                   |   1 +
 docs/cmdline-opts/sasl-ir.d                        |   1 +
 docs/cmdline-opts/service-name.d                   |   1 +
 docs/cmdline-opts/show-error.d                     |   2 +
 docs/cmdline-opts/silent.d                         |   3 +-
 docs/cmdline-opts/socks4.d                         |   1 +
 docs/cmdline-opts/socks4a.d                        |   1 +
 docs/cmdline-opts/socks5-basic.d                   |   1 +
 docs/cmdline-opts/socks5-gssapi-nec.d              |   1 +
 docs/cmdline-opts/socks5-gssapi-service.d          |   1 +
 docs/cmdline-opts/socks5-gssapi.d                  |   1 +
 docs/cmdline-opts/socks5-hostname.d                |   1 +
 docs/cmdline-opts/socks5.d                         |   1 +
 docs/cmdline-opts/speed-limit.d                    |   1 +
 docs/cmdline-opts/speed-time.d                     |   1 +
 docs/cmdline-opts/ssl-allow-beast.d                |   1 +
 docs/cmdline-opts/ssl-no-revoke.d                  |   1 +
 docs/cmdline-opts/ssl-reqd.d                       |   1 +
 docs/cmdline-opts/ssl-revoke-best-effort.d         |   1 +
 docs/cmdline-opts/ssl.d                            |   1 +
 docs/cmdline-opts/sslv2.d                          |   1 +
 docs/cmdline-opts/sslv3.d                          |   1 +
 docs/cmdline-opts/stderr.d                         |   1 +
 docs/cmdline-opts/styled-output.d                  |   1 +
 docs/cmdline-opts/suppress-connect-headers.d       |   1 +
 docs/cmdline-opts/tcp-fastopen.d                   |   1 +
 docs/cmdline-opts/tcp-nodelay.d                    |   1 +
 docs/cmdline-opts/telnet-option.d                  |   1 +
 docs/cmdline-opts/tftp-blksize.d                   |   1 +
 docs/cmdline-opts/tftp-no-options.d                |   1 +
 docs/cmdline-opts/time-cond.d                      |   1 +
 docs/cmdline-opts/tls-max.d                        |   1 +
 docs/cmdline-opts/tls13-ciphers.d                  |   3 +-
 docs/cmdline-opts/tlsauthtype.d                    |   1 +
 docs/cmdline-opts/tlspassword.d                    |   1 +
 docs/cmdline-opts/tlsuser.d                        |   1 +
 docs/cmdline-opts/tlsv1.0.d                        |   1 +
 docs/cmdline-opts/tlsv1.1.d                        |   1 +
 docs/cmdline-opts/tlsv1.2.d                        |   1 +
 docs/cmdline-opts/tlsv1.3.d                        |   1 +
 docs/cmdline-opts/tlsv1.d                          |   1 +
 docs/cmdline-opts/tr-encoding.d                    |   1 +
 docs/cmdline-opts/trace-ascii.d                    |   1 +
 docs/cmdline-opts/trace-time.d                     |   1 +
 docs/cmdline-opts/trace.d                          |   1 +
 docs/cmdline-opts/unix-socket.d                    |   1 +
 docs/cmdline-opts/upload-file.d                    |   1 +
 docs/cmdline-opts/url.d                            |   1 +
 docs/cmdline-opts/use-ascii.d                      |   1 +
 docs/cmdline-opts/user-agent.d                     |   1 +
 docs/cmdline-opts/user.d                           |   1 +
 docs/cmdline-opts/verbose.d                        |   1 +
 docs/cmdline-opts/version.d                        |   3 +
 docs/cmdline-opts/write-out.d                      |   5 +
 docs/cmdline-opts/xattr.d                          |   1 +
 docs/examples/.gitignore                           |  12 +-
 docs/examples/10-at-a-time.c                       |   4 +-
 docs/examples/Makefile.am                          |   4 +-
 docs/examples/Makefile.example                     |   2 +-
 docs/examples/Makefile.inc                         |   4 +-
 docs/examples/Makefile.m32                         |  32 +-
 docs/examples/Makefile.netware                     |   2 +-
 docs/examples/{README => README.md}                |  22 +-
 docs/examples/adddocsref.pl                        |   4 +-
 docs/examples/altsvc.c                             |   4 +-
 docs/examples/anyauthput.c                         |   2 +-
 docs/examples/cacertinmem.c                        |   4 +-
 docs/examples/certinfo.c                           |   4 +-
 docs/examples/chkspeed.c                           |   4 +-
 docs/examples/cookie_interface.c                   |   4 +-
 docs/examples/debug.c                              |   4 +-
 docs/examples/ephiperfifo.c                        |   2 +-
 docs/examples/evhiperfifo.c                        |   4 +-
 docs/examples/externalsocket.c                     |   4 +-
 docs/examples/fileupload.c                         |   4 +-
 docs/examples/ftp-wildcard.c                       |   4 +-
 docs/examples/ftpget.c                             |   4 +-
 docs/examples/ftpgetinfo.c                         |   6 +-
 docs/examples/ftpgetresp.c                         |   4 +-
 docs/examples/ftpsget.c                            |   4 +-
 docs/examples/ftpupload.c                          |   4 +-
 docs/examples/ftpuploadfrommem.c                   |   4 +-
 docs/examples/ftpuploadresume.c                    |   4 +-
 docs/examples/getinfo.c                            |   4 +-
 docs/examples/getinmemory.c                        |   4 +-
 docs/examples/getredirect.c                        |   4 +-
 docs/examples/ghiper.c                             |   4 +-
 docs/examples/hiperfifo.c                          |   4 +-
 docs/examples/href_extractor.c                     |   4 +-
 docs/examples/htmltidy.c                           |   4 +-
 docs/examples/htmltitle.cpp                        |   4 +-
 docs/examples/http-post.c                          |   4 +-
 docs/examples/http2-download.c                     |   2 +-
 docs/examples/http2-pushinmemory.c                 |   4 +-
 docs/examples/http2-serverpush.c                   |   4 +-
 docs/examples/http2-upload.c                       |   2 +-
 docs/examples/http3-present.c                      |   4 +-
 docs/examples/http3.c                              |   4 +-
 docs/examples/httpcustomheader.c                   |   4 +-
 docs/examples/httpput-postfields.c                 | 101 +++
 docs/examples/httpput.c                            |   9 +-
 docs/examples/https.c                              |   4 +-
 docs/examples/imap-append.c                        |   4 +-
 docs/examples/imap-authzid.c                       |   4 +-
 docs/examples/imap-copy.c                          |   4 +-
 docs/examples/imap-create.c                        |   4 +-
 docs/examples/imap-delete.c                        |   4 +-
 docs/examples/imap-examine.c                       |   4 +-
 docs/examples/imap-fetch.c                         |   4 +-
 docs/examples/imap-list.c                          |   4 +-
 docs/examples/imap-lsub.c                          |   4 +-
 docs/examples/imap-multi.c                         |   4 +-
 docs/examples/imap-noop.c                          |   4 +-
 docs/examples/imap-search.c                        |   4 +-
 docs/examples/imap-ssl.c                           |   4 +-
 docs/examples/imap-store.c                         |   4 +-
 docs/examples/imap-tls.c                           |   4 +-
 docs/examples/makefile.dj                          |   2 +-
 docs/examples/multi-app.c                          |   4 +-
 docs/examples/multi-debugcallback.c                |   4 +-
 docs/examples/multi-double.c                       |   4 +-
 docs/examples/multi-event.c                        |   2 +-
 docs/examples/multi-formadd.c                      |   4 +-
 docs/examples/multi-poll.c                         |   4 +-
 docs/examples/multi-post.c                         |   4 +-
 docs/examples/multi-single.c                       |   4 +-
 docs/examples/multi-uv.c                           |   2 +-
 docs/examples/multithread.c                        |   6 +-
 docs/examples/opensslthreadlock.c                  |   4 +-
 docs/examples/parseurl.c                           |   4 +-
 docs/examples/persistent.c                         |   4 +-
 docs/examples/pop3-authzid.c                       |   4 +-
 docs/examples/pop3-dele.c                          |   4 +-
 docs/examples/pop3-list.c                          |   4 +-
 docs/examples/pop3-multi.c                         |   4 +-
 docs/examples/pop3-noop.c                          |   4 +-
 docs/examples/pop3-retr.c                          |   4 +-
 docs/examples/pop3-ssl.c                           |   4 +-
 docs/examples/pop3-stat.c                          |   4 +-
 docs/examples/pop3-tls.c                           |   4 +-
 docs/examples/pop3-top.c                           |   4 +-
 docs/examples/pop3-uidl.c                          |   4 +-
 docs/examples/post-callback.c                      |   4 +-
 docs/examples/postinmemory.c                       |   4 +-
 docs/examples/postit2-formadd.c                    |   4 +-
 docs/examples/postit2.c                            |   4 +-
 docs/examples/progressfunc.c                       |   4 +-
 docs/examples/resolve.c                            |   4 +-
 docs/examples/sampleconv.c                         |   4 +-
 docs/examples/sendrecv.c                           |   4 +-
 docs/examples/sepheaders.c                         |   4 +-
 docs/examples/sessioninfo.c                        |   2 +-
 docs/examples/sftpget.c                            |   4 +-
 docs/examples/sftpuploadresume.c                   |   4 +-
 docs/examples/shared-connection-cache.c            |   6 +-
 docs/examples/simple.c                             |   4 +-
 docs/examples/simplepost.c                         |   4 +-
 docs/examples/simplessl.c                          |   4 +-
 docs/examples/smooth-gtk-thread.c                  |   4 +-
 docs/examples/smtp-authzid.c                       |   4 +-
 docs/examples/smtp-expn.c                          |   4 +-
 docs/examples/smtp-mail.c                          |   4 +-
 docs/examples/smtp-mime.c                          |   4 +-
 docs/examples/smtp-multi.c                         |   4 +-
 docs/examples/smtp-ssl.c                           |   4 +-
 docs/examples/smtp-tls.c                           |   4 +-
 docs/examples/smtp-vrfy.c                          |   4 +-
 docs/examples/sslbackend.c                         |   8 +-
 docs/examples/synctime.c                           |   4 +-
 docs/examples/threaded-shared-conn.c               |   4 +-
 docs/examples/threaded-ssl.c                       |   4 +-
 docs/examples/url2file.c                           |   4 +-
 docs/examples/urlapi.c                             |   4 +-
 docs/examples/usercertinmem.c                      |   4 +-
 docs/examples/version-check.pl                     |   2 +-
 docs/examples/xmlstream.c                          |   4 +-
 docs/gnurl-config.1                                |   2 +-
 docs/libcurl/CMakeLists.txt                        |   2 +-
 docs/libcurl/Makefile.am                           |   2 +-
 docs/libcurl/Makefile.inc                          | 169 ++--
 .../GNURLOPT_STDERR.3 => curl_easy_option_by_id.3} |  44 +-
 ...NURLOPT_STDERR.3 => curl_easy_option_by_name.3} |  42 +-
 docs/libcurl/curl_easy_option_next.3               |  74 ++
 docs/libcurl/gnurl_easy_cleanup.3                  |   6 +-
 docs/libcurl/gnurl_easy_duphandle.3                |   4 +-
 docs/libcurl/gnurl_easy_escape.3                   |   5 +-
 docs/libcurl/gnurl_easy_getinfo.3                  |   5 +-
 docs/libcurl/gnurl_easy_init.3                     |   4 +-
 docs/libcurl/gnurl_easy_pause.3                    |   4 +-
 docs/libcurl/gnurl_easy_perform.3                  |   4 +-
 docs/libcurl/gnurl_easy_recv.3                     |   4 +-
 docs/libcurl/gnurl_easy_reset.3                    |   2 +-
 docs/libcurl/gnurl_easy_send.3                     |   4 +-
 docs/libcurl/gnurl_easy_setopt.3                   |  24 +-
 docs/libcurl/gnurl_easy_strerror.3                 |   2 +-
 docs/libcurl/gnurl_easy_unescape.3                 |   2 +-
 docs/libcurl/gnurl_easy_upkeep.3                   |   4 +-
 docs/libcurl/gnurl_escape.3                        |   2 +-
 docs/libcurl/gnurl_formadd.3                       |   2 +-
 docs/libcurl/gnurl_formfree.3                      |   4 +-
 docs/libcurl/gnurl_formget.3                       |   4 +-
 docs/libcurl/gnurl_free.3                          |   4 +-
 docs/libcurl/gnurl_getdate.3                       |   4 +-
 docs/libcurl/gnurl_getenv.3                        |   2 +-
 docs/libcurl/gnurl_global_cleanup.3                |   4 +-
 docs/libcurl/gnurl_global_init.3                   |   2 +-
 docs/libcurl/gnurl_global_init_mem.3               |   4 +-
 docs/libcurl/gnurl_global_sslset.3                 |   2 +-
 docs/libcurl/gnurl_mime_addpart.3                  |   4 +-
 docs/libcurl/gnurl_mime_data.3                     |   2 +-
 docs/libcurl/gnurl_mime_data_cb.3                  |   4 +-
 docs/libcurl/gnurl_mime_encoder.3                  |   2 +-
 docs/libcurl/gnurl_mime_filedata.3                 |   2 +-
 docs/libcurl/gnurl_mime_filename.3                 |   2 +-
 docs/libcurl/gnurl_mime_free.3                     |   4 +-
 docs/libcurl/gnurl_mime_headers.3                  |   6 +-
 docs/libcurl/gnurl_mime_init.3                     |   6 +-
 docs/libcurl/gnurl_mime_name.3                     |   2 +-
 docs/libcurl/gnurl_mime_subparts.3                 |   4 +-
 docs/libcurl/gnurl_mime_type.3                     |   2 +-
 docs/libcurl/gnurl_mprintf.3                       |   4 +-
 docs/libcurl/gnurl_multi_add_handle.3              |   4 +-
 docs/libcurl/gnurl_multi_assign.3                  |   2 +-
 docs/libcurl/gnurl_multi_cleanup.3                 |   4 +-
 docs/libcurl/gnurl_multi_fdset.3                   |   4 +-
 docs/libcurl/gnurl_multi_info_read.3               |   2 +-
 docs/libcurl/gnurl_multi_init.3                    |   2 +-
 docs/libcurl/gnurl_multi_perform.3                 |   2 +-
 docs/libcurl/gnurl_multi_poll.3                    |   4 +-
 docs/libcurl/gnurl_multi_remove_handle.3           |   4 +-
 docs/libcurl/gnurl_multi_setopt.3                  |   4 +-
 docs/libcurl/gnurl_multi_socket.3                  |   4 +-
 docs/libcurl/gnurl_multi_socket_action.3           |   4 +-
 docs/libcurl/gnurl_multi_strerror.3                |   2 +-
 docs/libcurl/gnurl_multi_timeout.3                 |   2 +-
 docs/libcurl/gnurl_multi_wait.3                    |   4 +-
 docs/libcurl/gnurl_multi_wakeup.3                  |   4 +-
 docs/libcurl/gnurl_share_cleanup.3                 |   4 +-
 docs/libcurl/gnurl_share_init.3                    |   2 +-
 docs/libcurl/gnurl_share_setopt.3                  |   2 +-
 docs/libcurl/gnurl_share_strerror.3                |   2 +-
 docs/libcurl/gnurl_slist_append.3                  |   4 +-
 docs/libcurl/gnurl_slist_free_all.3                |   4 +-
 docs/libcurl/gnurl_strequal.3                      |   4 +-
 docs/libcurl/gnurl_unescape.3                      |   2 +-
 docs/libcurl/gnurl_url.3                           |   4 +-
 docs/libcurl/gnurl_url_cleanup.3                   |   4 +-
 docs/libcurl/gnurl_url_dup.3                       |   4 +-
 docs/libcurl/gnurl_url_get.3                       |   4 +-
 docs/libcurl/gnurl_url_set.3                       |   4 +-
 docs/libcurl/gnurl_version.3                       |   2 +-
 docs/libcurl/gnurl_version_info.3                  |   8 +-
 docs/libcurl/libgnurl-easy.3                       |   2 +-
 docs/libcurl/libgnurl-env.3                        |   6 +-
 docs/libcurl/libgnurl-errors.3                     |   2 +-
 docs/libcurl/libgnurl-multi.3                      |   2 +-
 docs/libcurl/libgnurl-security.3                   |   6 +-
 docs/libcurl/libgnurl-share.3                      |   4 +-
 docs/libcurl/libgnurl-thread.3                     |   4 +-
 docs/libcurl/libgnurl-tutorial.3                   |   4 +-
 docs/libcurl/libgnurl-url.3                        |   4 +-
 docs/libcurl/libgnurl.3                            |   2 +-
 docs/libcurl/libgnurl.m4                           |   2 +-
 docs/libcurl/mksymbolsmanpage.pl                   |   4 +-
 docs/libcurl/opts/CMakeLists.txt                   |   2 +-
 docs/libcurl/opts/CURLINFO_PROXY_ERROR.3           | 104 +++
 docs/libcurl/opts/CURLOPT_HSTS.3                   |  81 ++
 ...{GNURLOPT_READDATA.3 => CURLOPT_HSTSREADDATA.3} |  43 +-
 docs/libcurl/opts/CURLOPT_HSTSREADFUNCTION.3       |  81 ++
 ...GNURLOPT_READDATA.3 => CURLOPT_HSTSWRITEDATA.3} |  41 +-
 docs/libcurl/opts/CURLOPT_HSTSWRITEFUNCTION.3      |  79 ++
 docs/libcurl/opts/CURLOPT_HSTS_CTRL.3              |  73 ++
 ...PT_SSL_ENABLE_NPN.3 => CURLOPT_SSL_EC_CURVES.3} |  27 +-
 docs/libcurl/opts/GNURLINFO_ACTIVESOCKET.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3    |   2 +-
 docs/libcurl/opts/GNURLINFO_CERTINFO.3             |   2 +-
 docs/libcurl/opts/GNURLINFO_CONDITION_UNMET.3      |   4 +-
 docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3         |   2 +-
 docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3       |   2 +-
 .../opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD.3       |   4 +-
 .../opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3     |   4 +-
 .../libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD.3 |   4 +-
 .../opts/GNURLINFO_CONTENT_LENGTH_UPLOAD_T.3       |   4 +-
 docs/libcurl/opts/GNURLINFO_CONTENT_TYPE.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_COOKIELIST.3           |   4 +-
 docs/libcurl/opts/GNURLINFO_EFFECTIVE_METHOD.3     |   4 +-
 docs/libcurl/opts/GNURLINFO_EFFECTIVE_URL.3        |   4 +-
 docs/libcurl/opts/GNURLINFO_FILETIME.3             |   2 +-
 docs/libcurl/opts/GNURLINFO_FILETIME_T.3           |   2 +-
 docs/libcurl/opts/GNURLINFO_FTP_ENTRY_PATH.3       |   2 +-
 docs/libcurl/opts/GNURLINFO_HEADER_SIZE.3          |   4 +-
 docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3       |   4 +-
 docs/libcurl/opts/GNURLINFO_HTTP_CONNECTCODE.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_LASTSOCKET.3           |   4 +-
 docs/libcurl/opts/GNURLINFO_LOCAL_IP.3             |   4 +-
 docs/libcurl/opts/GNURLINFO_LOCAL_PORT.3           |   4 +-
 docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3    |   2 +-
 docs/libcurl/opts/GNURLINFO_NUM_CONNECTS.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_OS_ERRNO.3             |   4 +-
 docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3   |   2 +-
 docs/libcurl/opts/GNURLINFO_PRIMARY_IP.3           |   4 +-
 docs/libcurl/opts/GNURLINFO_PRIMARY_PORT.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_PRIVATE.3              |   4 +-
 docs/libcurl/opts/GNURLINFO_PROTOCOL.3             |   4 +-
 docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3      |   4 +-
 .../opts/GNURLINFO_PROXY_SSL_VERIFYRESULT.3        |   2 +-
 docs/libcurl/opts/GNURLINFO_REDIRECT_COUNT.3       |   4 +-
 docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3        |   2 +-
 docs/libcurl/opts/GNURLINFO_REDIRECT_TIME_T.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_REDIRECT_URL.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_REQUEST_SIZE.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_RESPONSE_CODE.3        |   4 +-
 docs/libcurl/opts/GNURLINFO_RETRY_AFTER.3          |   6 +-
 docs/libcurl/opts/GNURLINFO_RTSP_CLIENT_CSEQ.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_RTSP_CSEQ_RECV.3       |   2 +-
 docs/libcurl/opts/GNURLINFO_RTSP_SERVER_CSEQ.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_RTSP_SESSION_ID.3      |   2 +-
 docs/libcurl/opts/GNURLINFO_SCHEME.3               |   4 +-
 docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD.3        |   4 +-
 docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD_T.3      |   4 +-
 docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD.3          |   4 +-
 docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD_T.3        |   4 +-
 docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD.3       |   4 +-
 docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD_T.3     |   4 +-
 docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD.3         |   4 +-
 docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD_T.3       |   4 +-
 docs/libcurl/opts/GNURLINFO_SSL_ENGINES.3          |   2 +-
 docs/libcurl/opts/GNURLINFO_SSL_VERIFYRESULT.3     |   2 +-
 docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3   |   2 +-
 docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3 |   2 +-
 docs/libcurl/opts/GNURLINFO_TLS_SESSION.3          |   2 +-
 docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3          |   2 +-
 docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3           |   2 +-
 docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3         |   2 +-
 .../opts/GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3     |   2 +-
 .../opts/GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3   |   2 +-
 docs/libcurl/opts/GNURLMOPT_MAXCONNECTS.3          |   2 +-
 .../opts/GNURLMOPT_MAX_CONCURRENT_STREAMS.3        |   2 +-
 docs/libcurl/opts/GNURLMOPT_MAX_HOST_CONNECTIONS.3 |   2 +-
 docs/libcurl/opts/GNURLMOPT_MAX_PIPELINE_LENGTH.3  |   2 +-
 .../libcurl/opts/GNURLMOPT_MAX_TOTAL_CONNECTIONS.3 |   2 +-
 docs/libcurl/opts/GNURLMOPT_PIPELINING.3           |   2 +-
 docs/libcurl/opts/GNURLMOPT_PIPELINING_SERVER_BL.3 |   2 +-
 docs/libcurl/opts/GNURLMOPT_PIPELINING_SITE_BL.3   |   2 +-
 docs/libcurl/opts/GNURLMOPT_PUSHDATA.3             |   2 +-
 docs/libcurl/opts/GNURLMOPT_PUSHFUNCTION.3         |   2 +-
 docs/libcurl/opts/GNURLMOPT_SOCKETDATA.3           |   2 +-
 docs/libcurl/opts/GNURLMOPT_SOCKETFUNCTION.3       |   2 +-
 docs/libcurl/opts/GNURLMOPT_TIMERDATA.3            |   2 +-
 docs/libcurl/opts/GNURLMOPT_TIMERFUNCTION.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_ABSTRACT_UNIX_SOCKET.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_ACCEPTTIMEOUT_MS.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3       |   4 +-
 docs/libcurl/opts/GNURLOPT_ADDRESS_SCOPE.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_ALTSVC.3                |   9 +-
 docs/libcurl/opts/GNURLOPT_ALTSVC_CTRL.3           |  12 +-
 docs/libcurl/opts/GNURLOPT_APPEND.3                |   2 +-
 docs/libcurl/opts/GNURLOPT_AUTOREFERER.3           |   4 +-
 docs/libcurl/opts/GNURLOPT_BUFFERSIZE.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_CAINFO.3                |   2 +-
 docs/libcurl/opts/GNURLOPT_CAPATH.3                |   2 +-
 docs/libcurl/opts/GNURLOPT_CERTINFO.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_CHUNK_BGN_FUNCTION.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_CHUNK_DATA.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_CHUNK_END_FUNCTION.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_CLOSESOCKETDATA.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_CLOSESOCKETFUNCTION.3   |   2 +-
 docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT_MS.3     |   4 +-
 docs/libcurl/opts/GNURLOPT_CONNECT_ONLY.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_CONNECT_TO.3            |   4 +-
 .../opts/GNURLOPT_CONV_FROM_NETWORK_FUNCTION.3     |   2 +-
 .../opts/GNURLOPT_CONV_FROM_UTF8_FUNCTION.3        |   2 +-
 .../opts/GNURLOPT_CONV_TO_NETWORK_FUNCTION.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_COOKIE.3                |   4 +-
 docs/libcurl/opts/GNURLOPT_COOKIEFILE.3            |   6 +-
 docs/libcurl/opts/GNURLOPT_COOKIEJAR.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_COOKIELIST.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_COOKIESESSION.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_COPYPOSTFIELDS.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_CRLF.3                  |   2 +-
 docs/libcurl/opts/GNURLOPT_CRLFILE.3               |   2 +-
 docs/libcurl/opts/GNURLOPT_CURLU.3                 |   4 +-
 docs/libcurl/opts/GNURLOPT_CUSTOMREQUEST.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_DEBUGDATA.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_DEBUGFUNCTION.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_DEFAULT_PROTOCOL.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_DIRLISTONLY.3           |   2 +-
 .../opts/GNURLOPT_DISALLOW_USERNAME_IN_URL.3       |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_CACHE_TIMEOUT.3     |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_INTERFACE.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP4.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP6.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_SERVERS.3           |   4 +-
 docs/libcurl/opts/GNURLOPT_DNS_SHUFFLE_ADDRESSES.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_DNS_USE_GLOBAL_CACHE.3  |   4 +-
 docs/libcurl/opts/GNURLOPT_DOH_URL.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_EGDSOCKET.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_ERRORBUFFER.3           |   4 +-
 docs/libcurl/opts/GNURLOPT_EXPECT_100_TIMEOUT_MS.3 |   4 +-
 docs/libcurl/opts/GNURLOPT_FAILONERROR.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_FILETIME.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_FNMATCH_DATA.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_FNMATCH_FUNCTION.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_FOLLOWLOCATION.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_FORBID_REUSE.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_FRESH_CONNECT.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_FTPPORT.3               |   2 +-
 docs/libcurl/opts/GNURLOPT_FTPSSLAUTH.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_ACCOUNT.3           |   2 +-
 .../opts/GNURLOPT_FTP_ALTERNATIVE_TO_USER.3        |   2 +-
 .../opts/GNURLOPT_FTP_CREATE_MISSING_DIRS.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_FILEMETHOD.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_RESPONSE_TIMEOUT.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_SKIP_PASV_IP.3      |  10 +-
 docs/libcurl/opts/GNURLOPT_FTP_SSL_CCC.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_USE_EPRT.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_USE_EPSV.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_FTP_USE_PRET.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_GSSAPI_DELEGATION.3     |   2 +-
 .../opts/GNURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_HAPROXYPROTOCOL.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_HEADER.3                |   4 +-
 docs/libcurl/opts/GNURLOPT_HEADERDATA.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_HEADERFUNCTION.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_HEADEROPT.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTP09_ALLOWED.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTP200ALIASES.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_HTTPAUTH.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTPGET.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_HTTPHEADER.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_HTTPPOST.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTPPROXYTUNNEL.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTP_CONTENT_DECODING.3 |   2 +-
 .../libcurl/opts/GNURLOPT_HTTP_TRANSFER_DECODING.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_HTTP_VERSION.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_IGNORE_CONTENT_LENGTH.3 |   4 +-
 docs/libcurl/opts/GNURLOPT_INFILESIZE.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_INFILESIZE_LARGE.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_INTERFACE.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_INTERLEAVEDATA.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_INTERLEAVEFUNCTION.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_IOCTLDATA.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_IOCTLFUNCTION.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_IPRESOLVE.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_ISSUERCERT.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_ISSUERCERT_BLOB.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_KEEP_SENDING_ON_ERROR.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_KEYPASSWD.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_KRBLEVEL.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_LOCALPORT.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_LOCALPORTRANGE.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_LOGIN_OPTIONS.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_LOW_SPEED_LIMIT.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_LOW_SPEED_TIME.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_MAIL_AUTH.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_MAIL_FROM.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_MAIL_RCPT.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_MAIL_RCPT_ALLLOWFAILS.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_MAXAGE_CONN.3           |   4 +-
 docs/libcurl/opts/GNURLOPT_MAXCONNECTS.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_MAXFILESIZE.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_MAXFILESIZE_LARGE.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_MAXREDIRS.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_MAX_RECV_SPEED_LARGE.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_MAX_SEND_SPEED_LARGE.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_MIMEPOST.3              |   4 +-
 docs/libcurl/opts/GNURLOPT_NETRC.3                 |   2 +-
 docs/libcurl/opts/GNURLOPT_NETRC_FILE.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_NEW_DIRECTORY_PERMS.3   |   2 +-
 docs/libcurl/opts/GNURLOPT_NEW_FILE_PERMS.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_NOBODY.3                |   4 +-
 docs/libcurl/opts/GNURLOPT_NOPROGRESS.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_NOPROXY.3               |   8 +-
 docs/libcurl/opts/GNURLOPT_NOSIGNAL.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_OPENSOCKETDATA.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_OPENSOCKETFUNCTION.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_PASSWORD.3              |   4 +-
 docs/libcurl/opts/GNURLOPT_PATH_AS_IS.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_PINNEDPUBLICKEY.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_PIPEWAIT.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_PORT.3                  |   4 +-
 docs/libcurl/opts/GNURLOPT_POST.3                  |   4 +-
 docs/libcurl/opts/GNURLOPT_POSTFIELDS.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_POSTFIELDSIZE.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_POSTFIELDSIZE_LARGE.3   |   4 +-
 docs/libcurl/opts/GNURLOPT_POSTQUOTE.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_POSTREDIR.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_PREQUOTE.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_PRE_PROXY.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_PRIVATE.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_PROGRESSDATA.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_PROGRESSFUNCTION.3      |   4 +-
 docs/libcurl/opts/GNURLOPT_PROTOCOLS.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY.3                 |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXYAUTH.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXYHEADER.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXYPASSWORD.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXYPORT.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXYTYPE.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXYUSERNAME.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXYUSERPWD.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXY_CAINFO.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXY_CAPATH.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXY_CRLFILE.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_ISSUERCERT.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_ISSUERCERT_BLOB.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_KEYPASSWD.3       |   4 +-
 docs/libcurl/opts/GNURLOPT_PROXY_PINNEDPUBLICKEY.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SERVICE_NAME.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLCERT.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLCERTTYPE.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLCERT_BLOB.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLKEY.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLKEYTYPE.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLKEY_BLOB.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSLVERSION.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSL_CIPHER_LIST.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSL_OPTIONS.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSL_VERIFYHOST.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_SSL_VERIFYPEER.3  |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_TLS13_CIPHERS.3   |   4 +-
 .../libcurl/opts/GNURLOPT_PROXY_TLSAUTH_PASSWORD.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_TLSAUTH_TYPE.3    |   2 +-
 .../libcurl/opts/GNURLOPT_PROXY_TLSAUTH_USERNAME.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_PROXY_TRANSFER_MODE.3   |   2 +-
 docs/libcurl/opts/GNURLOPT_PUT.3                   |   2 +-
 docs/libcurl/opts/GNURLOPT_QUOTE.3                 |  10 +-
 docs/libcurl/opts/GNURLOPT_RANDOM_FILE.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_RANGE.3                 |   6 +-
 docs/libcurl/opts/GNURLOPT_READDATA.3              |   4 +-
 docs/libcurl/opts/GNURLOPT_READFUNCTION.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_REDIR_PROTOCOLS.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_REFERER.3               |   6 +-
 docs/libcurl/opts/GNURLOPT_REQUEST_TARGET.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_RESOLVE.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_RESOLVER_START_DATA.3   |   4 +-
 .../opts/GNURLOPT_RESOLVER_START_FUNCTION.3        |   4 +-
 docs/libcurl/opts/GNURLOPT_RESUME_FROM.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_RESUME_FROM_LARGE.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_CLIENT_CSEQ.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_REQUEST.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_SERVER_CSEQ.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_SESSION_ID.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_STREAM_URI.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_RTSP_TRANSPORT.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SASL_AUTHZID.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_SASL_IR.3               |   2 +-
 docs/libcurl/opts/GNURLOPT_SEEKDATA.3              |   2 +-
 docs/libcurl/opts/GNURLOPT_SEEKFUNCTION.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_SERVICE_NAME.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_SHARE.3                 |   2 +-
 docs/libcurl/opts/GNURLOPT_SOCKOPTDATA.3           |   4 +-
 docs/libcurl/opts/GNURLOPT_SOCKOPTFUNCTION.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_SOCKS5_AUTH.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_SOCKS5_GSSAPI_NEC.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_SOCKS5_GSSAPI_SERVICE.3 |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_AUTH_TYPES.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_COMPRESSION.3       |   2 +-
 .../opts/GNURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_KEYDATA.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_KEYFUNCTION.3       |  13 +-
 docs/libcurl/opts/GNURLOPT_SSH_KNOWNHOSTS.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_PRIVATE_KEYFILE.3   |   2 +-
 docs/libcurl/opts/GNURLOPT_SSH_PUBLIC_KEYFILE.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLCERT.3               |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLCERTTYPE.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLCERT_BLOB.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLENGINE.3             |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLENGINE_DEFAULT.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLKEY.3                |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLKEYTYPE.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLKEY_BLOB.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_SSLVERSION.3            |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_CIPHER_LIST.3       |   4 +-
 docs/libcurl/opts/GNURLOPT_SSL_CTX_DATA.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_CTX_FUNCTION.3      |   4 +-
 docs/libcurl/opts/GNURLOPT_SSL_ENABLE_ALPN.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_ENABLE_NPN.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_FALSESTART.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_OPTIONS.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_SESSIONID_CACHE.3   |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_VERIFYHOST.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_VERIFYPEER.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_SSL_VERIFYSTATUS.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_STDERR.3                |   4 +-
 docs/libcurl/opts/GNURLOPT_STREAM_DEPENDS.3        |   2 +-
 docs/libcurl/opts/GNURLOPT_STREAM_DEPENDS_E.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_STREAM_WEIGHT.3         |   2 +-
 .../opts/GNURLOPT_SUPPRESS_CONNECT_HEADERS.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_TCP_FASTOPEN.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_TCP_KEEPALIVE.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_TCP_KEEPIDLE.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_TCP_KEEPINTVL.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_TCP_NODELAY.3           |   6 +-
 docs/libcurl/opts/GNURLOPT_TELNETOPTIONS.3         |   2 +-
 docs/libcurl/opts/GNURLOPT_TFTP_BLKSIZE.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_TFTP_NO_OPTIONS.3       |   2 +-
 docs/libcurl/opts/GNURLOPT_TIMECONDITION.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_TIMEOUT.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_TIMEOUT_MS.3            |   4 +-
 docs/libcurl/opts/GNURLOPT_TIMEVALUE.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_TIMEVALUE_LARGE.3       |   4 +-
 docs/libcurl/opts/GNURLOPT_TLS13_CIPHERS.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_TLSAUTH_PASSWORD.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_TLSAUTH_TYPE.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_TLSAUTH_USERNAME.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_TRAILERDATA.3           |   2 +-
 docs/libcurl/opts/GNURLOPT_TRAILERFUNCTION.3       |   6 +-
 docs/libcurl/opts/GNURLOPT_TRANSFERTEXT.3          |   2 +-
 docs/libcurl/opts/GNURLOPT_TRANSFER_ENCODING.3     |   4 +-
 docs/libcurl/opts/GNURLOPT_UNIX_SOCKET_PATH.3      |   2 +-
 docs/libcurl/opts/GNURLOPT_UNRESTRICTED_AUTH.3     |   4 +-
 docs/libcurl/opts/GNURLOPT_UPKEEP_INTERVAL_MS.3    |   2 +-
 docs/libcurl/opts/GNURLOPT_UPLOAD.3                |   2 +-
 docs/libcurl/opts/GNURLOPT_UPLOAD_BUFFERSIZE.3     |   2 +-
 docs/libcurl/opts/GNURLOPT_URL.3                   |  21 +-
 docs/libcurl/opts/GNURLOPT_USERAGENT.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_USERNAME.3              |   4 +-
 docs/libcurl/opts/GNURLOPT_USERPWD.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_USE_SSL.3               |   2 +-
 docs/libcurl/opts/GNURLOPT_VERBOSE.3               |   4 +-
 docs/libcurl/opts/GNURLOPT_WILDCARDMATCH.3         |   4 +-
 docs/libcurl/opts/GNURLOPT_WRITEDATA.3             |   4 +-
 docs/libcurl/opts/GNURLOPT_WRITEFUNCTION.3         |   9 +-
 docs/libcurl/opts/GNURLOPT_XFERINFODATA.3          |   4 +-
 docs/libcurl/opts/GNURLOPT_XFERINFOFUNCTION.3      |   4 +-
 docs/libcurl/opts/GNURLOPT_XOAUTH2_BEARER.3        |   2 +-
 docs/libcurl/opts/Makefile.am                      |   4 +-
 docs/libcurl/opts/Makefile.inc                     | 728 +++++++++---------
 docs/libcurl/opts/template.3                       |   2 +-
 docs/libcurl/symbols-in-versions                   |  78 +-
 docs/libcurl/symbols.pl                            |   2 +-
 docs/mk-ca-bundle.1                                |   6 +-
 docs/options-in-versions                           |   3 +
 gnurl-config.in                                    |   2 +-
 include/Makefile.am                                |   4 +-
 include/README                                     |  18 -
 include/README.md                                  |  14 +
 include/gnurl/Makefile.am                          |   6 +-
 include/gnurl/curl.h                               | 193 +++--
 include/gnurl/curlver.h                            |   8 +-
 include/gnurl/easy.h                               |   2 +-
 include/gnurl/mprintf.h                            |   4 +-
 include/gnurl/multi.h                              |   2 +-
 include/gnurl/options.h                            |  68 ++
 include/gnurl/stdcheaders.h                        |   4 +-
 include/gnurl/system.h                             |   4 +-
 include/gnurl/typecheck-gcc.h                      |   8 +-
 include/gnurl/urlapi.h                             |   4 +-
 lib/.gitattributes                                 |   2 +-
 lib/CMakeLists.txt                                 |  17 +-
 lib/Makefile.Watcom                                | 274 -------
 lib/Makefile.am                                    |   9 +-
 lib/Makefile.inc                                   |  10 +-
 lib/Makefile.m32                                   |  40 +-
 lib/Makefile.netware                               |   6 +-
 lib/Makefile.vxworks                               |   2 +-
 lib/altsvc.c                                       |  36 +-
 lib/altsvc.h                                       |  13 +-
 lib/amigaos.c                                      |   4 +-
 lib/amigaos.h                                      |   4 +-
 lib/arpa_telnet.h                                  |   4 +-
 lib/asyn-ares.c                                    |  29 +-
 lib/asyn-thread.c                                  |  26 +-
 lib/asyn.h                                         |   2 +-
 lib/base64.c                                       |   7 +-
 lib/checksrc.pl                                    |  31 +-
 lib/config-amigaos.h                               |   6 +-
 lib/config-dos.h                                   |   2 +-
 lib/config-mac.h                                   |   4 +-
 lib/config-os400.h                                 |   5 +-
 lib/config-plan9.h                                 |   4 +-
 lib/config-riscos.h                                |   2 +-
 lib/config-symbian.h                               | 793 -------------------
 lib/config-tpf.h                                   |   4 +-
 lib/config-vxworks.h                               |   2 +-
 lib/config-win32.h                                 |   2 +-
 lib/config-win32ce.h                               |   4 +-
 lib/conncache.c                                    |  36 +-
 lib/conncache.h                                    |   6 +-
 lib/connect.c                                      | 133 ++--
 lib/connect.h                                      |   4 +-
 lib/content_encoding.c                             |   6 +-
 lib/content_encoding.h                             |   2 +-
 lib/cookie.c                                       |   4 +-
 lib/cookie.h                                       |   4 +-
 lib/curl_addrinfo.c                                |   2 +-
 lib/curl_addrinfo.h                                |   2 +-
 lib/curl_base64.h                                  |   4 +-
 lib/curl_config.h.cmake                            |  20 +-
 lib/curl_ctype.c                                   |   4 +-
 lib/curl_ctype.h                                   |   4 +-
 lib/curl_des.c                                     |   4 +-
 lib/curl_des.h                                     |   4 +-
 lib/curl_endian.c                                  |   4 +-
 lib/curl_endian.h                                  |   4 +-
 lib/curl_fnmatch.c                                 |   4 +-
 lib/curl_fnmatch.h                                 |   4 +-
 lib/curl_get_line.c                                |   9 +-
 lib/curl_get_line.h                                |   4 +-
 lib/curl_gethostname.c                             |   6 +-
 lib/curl_gethostname.h                             |   6 +-
 lib/curl_gssapi.c                                  |   4 +-
 lib/curl_gssapi.h                                  |   4 +-
 lib/curl_hmac.h                                    |   2 +-
 lib/{curl_sec.h => curl_krb5.h}                    |  14 +-
 lib/curl_ldap.h                                    |   4 +-
 lib/curl_md4.h                                     |   2 +-
 lib/curl_md5.h                                     |   2 +-
 lib/curl_memory.h                                  |   4 +-
 lib/curl_memrchr.c                                 |   4 +-
 lib/curl_memrchr.h                                 |   4 +-
 lib/curl_multibyte.c                               |   2 +-
 lib/curl_multibyte.h                               |   2 +-
 lib/curl_ntlm_core.c                               |  18 +-
 lib/curl_ntlm_core.h                               |  10 +-
 lib/curl_ntlm_wb.c                                 |   2 +-
 lib/curl_ntlm_wb.h                                 |   4 +-
 lib/curl_path.c                                    |   6 +-
 lib/curl_path.h                                    |   4 +-
 lib/curl_printf.h                                  |   4 +-
 lib/curl_range.c                                   |   4 +-
 lib/curl_range.h                                   |   4 +-
 lib/curl_rtmp.c                                    |  10 +-
 lib/curl_rtmp.h                                    |   4 +-
 lib/curl_sasl.c                                    |   2 +-
 lib/curl_sasl.h                                    |   4 +-
 lib/curl_setup.h                                   |  36 +-
 lib/curl_setup_once.h                              |   2 +-
 lib/curl_sha256.h                                  |   2 +-
 lib/curl_sspi.c                                    |   2 +-
 lib/curl_sspi.h                                    |   4 +-
 lib/curl_threads.c                                 |   8 +-
 lib/curl_threads.h                                 |   4 +-
 lib/curlx.h                                        |   2 +-
 lib/dict.c                                         |  97 ++-
 lib/dict.h                                         |   4 +-
 lib/doh.c                                          |  11 +-
 lib/doh.h                                          |   2 +-
 lib/dotdot.c                                       |   2 +-
 lib/dotdot.h                                       |   4 +-
 lib/dynbuf.c                                       |  50 +-
 lib/dynbuf.h                                       |  27 +-
 lib/easy.c                                         |  46 +-
 lib/easygetopt.c                                   |  96 +++
 lib/easyif.h                                       |   2 +-
 lib/easyoptions.c                                  | 353 +++++++++
 src/tool_strdup.c => lib/easyoptions.h             |  27 +-
 lib/escape.c                                       |   4 +-
 lib/escape.h                                       |   2 +-
 lib/file.c                                         |  30 +-
 lib/file.h                                         |   4 +-
 lib/fileinfo.c                                     |   4 +-
 lib/fileinfo.h                                     |   6 +-
 lib/firefox-db2pem.sh                              |   2 +-
 lib/formdata.c                                     |   2 +-
 lib/formdata.h                                     |   2 +-
 lib/ftp.c                                          | 670 ++++++++--------
 lib/ftp.h                                          |   3 +-
 lib/ftplistparser.c                                |  10 +-
 lib/ftplistparser.h                                |   4 +-
 lib/getenv.c                                       |   2 +-
 lib/getinfo.c                                      |   5 +-
 lib/getinfo.h                                      |   4 +-
 lib/gopher.c                                       |   9 +-
 lib/gopher.h                                       |   4 +-
 lib/hash.c                                         |  84 +-
 lib/hash.h                                         |  50 +-
 lib/hmac.c                                         |   2 +-
 lib/hostasyn.c                                     |   2 +-
 lib/hostcheck.c                                    |   4 +-
 lib/hostcheck.h                                    |   4 +-
 lib/hostip.c                                       |   8 +-
 lib/hostip.h                                       |  10 +-
 lib/hostip4.c                                      |   2 +-
 lib/hostip6.c                                      |   2 +-
 lib/hostsyn.c                                      |   4 +-
 lib/hsts.c                                         | 522 +++++++++++++
 lib/hsts.h                                         |  65 ++
 lib/http.c                                         |  83 +-
 lib/http.h                                         |   2 +-
 lib/http2.c                                        | 178 ++---
 lib/http2.h                                        |   2 +-
 lib/http_chunks.c                                  |   2 +-
 lib/http_chunks.h                                  |   4 +-
 lib/http_digest.c                                  |   2 +-
 lib/http_digest.h                                  |   2 +-
 lib/http_negotiate.c                               |   2 +-
 lib/http_negotiate.h                               |   2 +-
 lib/http_ntlm.c                                    |   2 +-
 lib/http_ntlm.h                                    |   2 +-
 lib/http_proxy.c                                   |  32 +-
 lib/http_proxy.h                                   |   2 +-
 lib/idn_win32.c                                    |   2 +-
 lib/if2ip.c                                        |   2 +-
 lib/if2ip.h                                        |   4 +-
 lib/imap.c                                         |  65 +-
 lib/imap.h                                         |   7 +-
 lib/inet_ntop.h                                    |   4 +-
 lib/inet_pton.c                                    |   4 +-
 lib/inet_pton.h                                    |   4 +-
 lib/krb5.c                                         | 595 ++++++++++++++-
 lib/ldap.c                                         |  72 +-
 lib/libcurl.rc                                     |   8 +-
 lib/libgnurl.plist                                 |   2 +-
 lib/llist.c                                        |  14 +-
 lib/llist.h                                        |  30 +-
 lib/makefile.amiga                                 |   2 +-
 lib/makefile.dj                                    |   2 +-
 lib/md4.c                                          |   2 +-
 lib/md5.c                                          |   2 +-
 lib/memdebug.c                                     |  53 +-
 lib/memdebug.h                                     |   2 +-
 lib/mime.c                                         |   2 +-
 lib/mime.h                                         |   2 +-
 lib/mk-ca-bundle.pl                                |   2 +-
 lib/mk-ca-bundle.vbs                               |   2 +-
 lib/mprintf.c                                      |  57 +-
 lib/mqtt.c                                         |  40 +-
 lib/mqtt.h                                         |   4 +-
 lib/multi.c                                        |  94 ++-
 lib/multihandle.h                                  |  16 +-
 lib/multiif.h                                      |   2 +-
 lib/netrc.c                                        |   4 +-
 lib/netrc.h                                        |   4 +-
 lib/non-ascii.c                                    |   4 +-
 lib/non-ascii.h                                    |   4 +-
 lib/nonblock.c                                     |   4 +-
 lib/nonblock.h                                     |   4 +-
 lib/nwlib.c                                        |   2 +-
 lib/nwos.c                                         |   4 +-
 lib/openldap.c                                     |  14 +-
 lib/optiontable.pl                                 | 118 +++
 lib/parsedate.c                                    |  59 +-
 lib/parsedate.h                                    |   4 +-
 lib/pingpong.c                                     |  61 +-
 lib/pingpong.h                                     |   6 +-
 lib/pop3.c                                         |  19 +-
 lib/pop3.h                                         |   4 +-
 lib/progress.c                                     |  17 +-
 lib/progress.h                                     |   6 +-
 lib/psl.c                                          |   4 +-
 lib/psl.h                                          |   4 +-
 lib/quic.h                                         |   4 +-
 lib/rand.c                                         |   4 +-
 lib/rand.h                                         |   4 +-
 lib/rename.c                                       |   6 +-
 lib/rename.h                                       |   2 +-
 lib/rtsp.c                                         |  46 +-
 lib/rtsp.h                                         |   4 +-
 lib/security.c                                     | 579 --------------
 lib/select.c                                       | 177 ++---
 lib/select.h                                       |  17 +-
 lib/sendf.c                                        | 179 ++---
 lib/sendf.h                                        |   6 +-
 lib/setopt.c                                       | 294 ++++---
 lib/setopt.h                                       |   2 +-
 lib/setup-os400.h                                  |   2 +-
 lib/setup-vms.h                                    |   2 +-
 lib/setup-win32.h                                  |   5 +-
 lib/sha256.c                                       |   2 +-
 lib/share.c                                        |   4 +-
 lib/share.h                                        |   8 +-
 lib/sigpipe.h                                      |   4 +-
 lib/slist.c                                        |   4 +-
 lib/slist.h                                        |   4 +-
 lib/smb.c                                          |  33 +-
 lib/smb.h                                          |  11 +-
 lib/smtp.c                                         |  27 +-
 lib/smtp.h                                         |   2 +-
 lib/sockaddr.h                                     |   4 +-
 lib/socketpair.c                                   |   6 +-
 lib/socketpair.h                                   |   4 +-
 lib/socks.c                                        | 169 ++--
 lib/socks.h                                        |  28 +-
 lib/socks_gssapi.c                                 |   6 +-
 lib/socks_sspi.c                                   |   2 +-
 lib/speedcheck.c                                   |   4 +-
 lib/speedcheck.h                                   |   4 +-
 lib/splay.c                                        |  10 +-
 lib/splay.h                                        |  16 +-
 lib/strcase.c                                      |   2 +-
 lib/strcase.h                                      |   2 +-
 lib/strdup.c                                       |   2 +-
 lib/strdup.h                                       |   4 +-
 lib/strerror.c                                     |  44 +-
 lib/strerror.h                                     |   2 +-
 lib/strtok.c                                       |   2 +-
 lib/strtok.h                                       |   4 +-
 lib/strtoofft.c                                    |   4 +-
 lib/strtoofft.h                                    |   4 +-
 lib/system_win32.c                                 |  13 +-
 lib/system_win32.h                                 |   2 +-
 lib/telnet.c                                       | 164 +---
 lib/telnet.h                                       |   4 +-
 lib/tftp.c                                         |   3 +-
 lib/tftp.h                                         |   4 +-
 lib/timeval.c                                      |   2 +-
 lib/timeval.h                                      |   4 +-
 lib/transfer.c                                     |  19 +-
 lib/transfer.h                                     |   4 +-
 lib/url.c                                          | 223 ++----
 lib/url.h                                          |   2 +-
 lib/urlapi-int.h                                   |   6 +-
 lib/urlapi.c                                       |  48 +-
 lib/urldata.h                                      |  91 ++-
 lib/vauth/cleartext.c                              |   2 +-
 lib/vauth/cram.c                                   |   2 +-
 lib/vauth/digest.c                                 |   2 +-
 lib/vauth/digest.h                                 |   4 +-
 lib/vauth/digest_sspi.c                            |   2 +-
 lib/vauth/krb5_gssapi.c                            |   4 +-
 lib/vauth/krb5_sspi.c                              |   2 +-
 lib/vauth/ntlm.c                                   |   3 +-
 lib/vauth/ntlm.h                                   |   4 +-
 lib/vauth/ntlm_sspi.c                              |   2 +-
 lib/vauth/oauth2.c                                 |   4 +-
 lib/vauth/spnego_gssapi.c                          |   4 +-
 lib/vauth/spnego_sspi.c                            |   2 +-
 lib/vauth/vauth.c                                  |   2 +-
 lib/vauth/vauth.h                                  |   4 +-
 lib/version.c                                      |  24 +-
 lib/version_win32.c                                |   2 +-
 lib/version_win32.h                                |   2 +-
 lib/vquic/ngtcp2.c                                 |  96 ++-
 lib/vquic/ngtcp2.h                                 |   4 +-
 lib/vquic/quiche.c                                 |  43 +-
 lib/vquic/quiche.h                                 |   5 +-
 lib/vquic/vquic.c                                  |   2 +-
 lib/vquic/vquic.h                                  |   2 +-
 lib/vssh/libssh.c                                  |  69 +-
 lib/vssh/libssh2.c                                 | 217 ++++--
 lib/vssh/ssh.h                                     |   8 +-
 lib/vssh/wolfssh.c                                 |  10 +-
 lib/vssh/wolfssh.h                                 |   2 +-
 lib/vtls/bearssl.c                                 |   2 +-
 lib/vtls/bearssl.h                                 |   4 +-
 lib/vtls/gskit.c                                   |   4 +-
 lib/vtls/gskit.h                                   |   4 +-
 lib/vtls/gtls.c                                    |  72 +-
 lib/vtls/gtls.h                                    |   4 +-
 lib/vtls/keylog.c                                  |   2 +-
 lib/vtls/keylog.h                                  |   2 +-
 lib/vtls/mbedtls.c                                 |  16 +-
 lib/vtls/mbedtls.h                                 |   4 +-
 lib/vtls/mbedtls_threadlock.c                      |   2 +-
 lib/vtls/mbedtls_threadlock.h                      |   2 +-
 lib/vtls/mesalink.c                                |  24 +-
 lib/vtls/mesalink.h                                |   6 +-
 lib/vtls/nss.c                                     |  67 +-
 lib/vtls/nssg.h                                    |   4 +-
 lib/vtls/openssl.c                                 | 253 +++---
 lib/vtls/openssl.h                                 |   4 +-
 lib/vtls/schannel.c                                |  57 +-
 lib/vtls/schannel.h                                |  12 +-
 lib/vtls/schannel_verify.c                         |   2 +-
 lib/vtls/sectransp.c                               |  26 +-
 lib/vtls/sectransp.h                               |   4 +-
 lib/vtls/vtls.c                                    |  17 +-
 lib/vtls/vtls.h                                    |  18 +-
 lib/vtls/wolfssl.c                                 |  24 +-
 lib/vtls/wolfssl.h                                 |   4 +-
 lib/warnless.c                                     |   4 +-
 lib/warnless.h                                     |   2 +-
 lib/wildcard.c                                     |   4 +-
 lib/wildcard.h                                     |  14 +-
 lib/x509asn1.c                                     |   2 +-
 lib/x509asn1.h                                     |   2 +-
 libgnurl.pc.in                                     |   4 +-
 m4/curl-compilers.m4                               |  10 +-
 m4/curl-confopts.m4                                |  44 +-
 m4/curl-functions.m4                               |   2 +-
 m4/curl-openssl.m4                                 |   2 +-
 m4/curl-override.m4                                |   2 +-
 m4/curl-reentrant.m4                               |   2 +-
 maketgz                                            |   4 +-
 packages/Android/Android.mk                        |   2 +-
 packages/DOS/common.dj                             |   2 +-
 packages/Makefile.am                               |  20 +-
 packages/OS400/ccsidcurl.c                         |  69 +-
 packages/OS400/ccsidcurl.h                         |  56 +-
 packages/OS400/chkstrings.c                        |  34 +-
 packages/OS400/curl.inc.in                         |  30 +-
 packages/OS400/initscript.sh                       |   2 +-
 packages/OS400/make-include.sh                     |   2 +-
 packages/OS400/make-lib.sh                         |   2 +-
 packages/OS400/make-src.sh                         |   2 +-
 packages/OS400/make-tests.sh                       |   2 +-
 packages/OS400/makefile.sh                         |   2 +-
 packages/OS400/os400sys.c                          | 412 ++++------
 packages/OS400/os400sys.h                          |   2 +-
 packages/Symbian/bwins/libcurlu.def                |  60 --
 packages/Symbian/eabi/libcurlu.def                 |  60 --
 packages/Symbian/group/bld.inf                     |  10 -
 packages/Symbian/group/curl.iby                    |  15 -
 packages/Symbian/group/curl.mmp                    |  64 --
 packages/Symbian/group/curl.pkg                    |  26 -
 packages/Symbian/group/libcurl.iby                 |  14 -
 packages/Symbian/group/libcurl.mmp                 |  67 --
 packages/Symbian/group/libcurl.pkg                 |  22 -
 packages/Symbian/readme.txt                        |  93 ---
 packages/TPF/curl.mak                              |   2 +-
 packages/TPF/maketpf.env_curl                      |   2 +-
 packages/TPF/maketpf.env_curllib                   |   2 +-
 packages/vms/Makefile.am                           |   2 +-
 packages/vms/curl_crtl_init.c                      |   2 +-
 packages/vms/curl_gnv_build_steps.txt              |   2 +-
 packages/vms/curlmsg.h                             |   2 +-
 packages/vms/curlmsg.msg                           |   2 +-
 packages/vms/curlmsg_vms.h                         |   2 +-
 plan9/include/mkfile                               |   4 +-
 plan9/lib/mkfile                                   |   4 +-
 plan9/lib/mkfile.inc                               |   4 +-
 plan9/mkfile                                       |   4 +-
 plan9/mkfile.proto                                 |   4 +-
 plan9/src/mkfile                                   |   4 +-
 plan9/src/mkfile.inc                               |   4 +-
 scripts/Makefile.am                                |   2 +-
 scripts/completion.pl                              |   4 +-
 scripts/contributors.sh                            |   4 +-
 scripts/contrithanks.sh                            |   6 +-
 scripts/copyright.pl                               |  15 +-
 scripts/coverage.sh                                |   2 +-
 scripts/delta                                      |  39 +-
 scripts/installcheck.sh                            |   2 +-
 scripts/log2changes.pl                             |   2 +-
 scripts/release-notes.pl                           |  11 +-
 scripts/singleuse.pl                               |   2 +-
 scripts/travis/before_script.sh                    |   2 +-
 scripts/travis/iconv-env.sh                        |   2 +-
 scripts/travis/script.sh                           |   5 +-
 scripts/updatemanpages.pl                          |   2 +-
 src/CMakeLists.txt                                 |   8 +-
 src/Makefile.Watcom                                | 234 ------
 src/Makefile.am                                    |   6 +-
 src/Makefile.inc                                   |   8 +-
 src/Makefile.m32                                   |  41 +-
 src/Makefile.netware                               |   6 +-
 src/curl.rc                                        |   8 +-
 src/makefile.amiga                                 |   2 +-
 src/makefile.dj                                    |   2 +-
 src/mkhelp.pl.in                                   |   4 +-
 src/slist_wc.c                                     |   4 +-
 src/slist_wc.h                                     |   4 +-
 src/tool_binmode.c                                 |   4 +-
 src/tool_binmode.h                                 |   4 +-
 src/tool_bname.c                                   |   4 +-
 src/tool_bname.h                                   |   4 +-
 src/tool_cb_dbg.c                                  |   4 +-
 src/tool_cb_dbg.h                                  |   4 +-
 src/tool_cb_hdr.c                                  |  70 +-
 src/tool_cb_hdr.h                                  |   4 +-
 src/tool_cb_prg.c                                  |   2 +-
 src/tool_cb_prg.h                                  |   4 +-
 src/tool_cb_rea.c                                  |   2 +-
 src/tool_cb_rea.h                                  |   4 +-
 src/tool_cb_see.c                                  |   2 +-
 src/tool_cb_see.h                                  |   2 +-
 src/tool_cb_wrt.c                                  |  34 +-
 src/tool_cb_wrt.h                                  |   2 +-
 src/tool_cfgable.c                                 |   5 +-
 src/tool_cfgable.h                                 |   6 +-
 src/tool_convert.c                                 |   4 +-
 src/tool_convert.h                                 |   4 +-
 src/tool_dirhie.c                                  |   2 +-
 src/tool_dirhie.h                                  |   4 +-
 src/tool_doswin.c                                  |   2 +-
 src/tool_doswin.h                                  |   2 +-
 src/tool_easysrc.c                                 |   8 +-
 src/tool_easysrc.h                                 |   4 +-
 src/tool_filetime.c                                |   7 +-
 src/tool_filetime.h                                |   4 +-
 src/tool_formparse.c                               |   2 +-
 src/tool_formparse.h                               |   2 +-
 src/tool_getparam.c                                |  28 +-
 src/tool_getparam.h                                |   4 +-
 src/tool_getpass.c                                 |  12 +-
 src/tool_getpass.h                                 |   4 +-
 src/tool_help.c                                    | 848 +++++++++++++++------
 src/tool_help.h                                    |   6 +-
 src/tool_helpers.c                                 |   4 +-
 src/tool_helpers.h                                 |   4 +-
 src/tool_homedir.c                                 |  48 +-
 src/tool_homedir.h                                 |   6 +-
 src/tool_hugehelp.c.cvs                            |   2 +-
 src/tool_hugehelp.h                                |   4 +-
 src/tool_libinfo.c                                 |   4 +-
 src/tool_libinfo.h                                 |   4 +-
 src/tool_main.c                                    |   7 +-
 src/tool_main.h                                    |   4 +-
 src/tool_metalink.c                                |   2 +-
 src/tool_metalink.h                                |   2 +-
 src/tool_msgs.c                                    |   4 +-
 src/tool_msgs.h                                    |   4 +-
 src/tool_operate.c                                 | 140 ++--
 src/tool_operate.h                                 |   7 +-
 src/tool_operhlp.c                                 |   2 +-
 src/tool_operhlp.h                                 |   4 +-
 src/tool_panykey.c                                 |  12 +-
 src/tool_panykey.h                                 |  10 +-
 src/tool_paramhlp.c                                | 118 +--
 src/tool_paramhlp.h                                |   4 +-
 src/tool_parsecfg.c                                |  73 +-
 src/tool_parsecfg.h                                |   4 +-
 src/tool_progress.c                                |   6 +-
 src/tool_progress.h                                |   4 +-
 src/tool_sdecls.h                                  |   2 +-
 src/tool_setopt.c                                  |  63 +-
 src/tool_setopt.h                                  |  15 +-
 src/tool_setup.h                                   |   4 +-
 src/tool_sleep.c                                   |   2 +-
 src/tool_sleep.h                                   |   4 +-
 src/tool_strdup.c                                  |   2 +-
 src/tool_strdup.h                                  |   4 +-
 src/tool_urlglob.c                                 |  52 +-
 src/tool_urlglob.h                                 |   2 +-
 src/tool_util.c                                    |   2 +-
 src/tool_util.h                                    |   4 +-
 src/tool_version.h                                 |   4 +-
 src/tool_vms.c                                     |   2 +-
 src/tool_vms.h                                     |   4 +-
 src/tool_writeout.c                                |  95 +--
 src/tool_writeout.h                                |   6 +-
 src/tool_writeout_json.c                           |  24 +-
 src/tool_writeout_json.h                           |   6 +-
 src/tool_xattr.c                                   |   4 +-
 src/tool_xattr.h                                   |   4 +-
 tests/CMakeLists.txt                               |   7 +-
 tests/FILEFORMAT.md                                |  42 +-
 tests/Makefile.am                                  |  21 +-
 tests/{README => README.md}                        | 214 ++----
 tests/appveyor.pm                                  |  12 +-
 tests/azure.pm                                     |  21 +-
 tests/badsymbols.pl.in                             |   2 +-
 tests/certs/Makefile.am                            |   2 +-
 tests/certs/scripts/Makefile.am                    |   2 +-
 tests/convsrctest.pl.in                            |   2 +-
 tests/data/CMakeLists.txt                          |   2 +-
 tests/data/DISABLED                                |  30 +-
 tests/data/Makefile.am                             |   2 +-
 tests/data/Makefile.inc                            |  91 ++-
 tests/data/test1                                   |   4 +-
 tests/data/test10                                  |   4 +-
 tests/data/test1001                                |   6 +-
 tests/data/test1002                                |  10 +-
 tests/data/test1004                                |   4 +-
 tests/data/test1008                                |   7 +-
 tests/data/test1011                                |   6 +-
 tests/data/test1012                                |   6 +-
 tests/data/test1015                                |   5 +-
 tests/data/test1021                                |   8 +-
 tests/data/test1024                                |   6 +-
 tests/data/test1025                                |   6 +-
 tests/data/test1028                                |   4 +-
 tests/data/test1029                                |   4 +-
 tests/data/test1030                                |   6 +-
 tests/data/test1031                                |   5 +-
 tests/data/test1032                                |   4 +-
 tests/data/test1033                                |   4 +-
 tests/data/test1035                                |   3 -
 tests/data/test1040                                |   4 +-
 tests/data/test1041                                |   4 +-
 tests/data/test1042                                |   4 +-
 tests/data/test1043                                |   4 +-
 tests/data/test1045                                |   4 +-
 tests/data/test1046                                |   4 +-
 tests/data/test1051                                |   5 +-
 tests/data/test1052                                |   5 +-
 tests/data/test1053                                |   6 +-
 tests/data/test1054                                |   5 +-
 tests/data/test1055                                |   4 +-
 tests/data/test1056                                |   5 +-
 tests/data/test1058                                |   4 +-
 tests/data/test1059                                |   4 +-
 tests/data/test1060                                |  10 +-
 tests/data/test1061                                |  10 +-
 tests/data/test1064                                |   5 +-
 tests/data/test1065                                |   5 +-
 tests/data/test1066                                |   5 +-
 tests/data/test1067                                |   5 +-
 tests/data/test1068                                |   4 +-
 tests/data/test1070                                |   4 +-
 tests/data/test1071                                |   5 +-
 tests/data/test1072                                |   4 +-
 tests/data/test1073                                |   4 +-
 tests/data/test1074                                |   5 +-
 tests/data/test1075                                |   5 +-
 tests/data/test1076                                |   6 +-
 tests/data/test1077                                |   5 +-
 tests/data/test1078                                |   6 +-
 tests/data/test1079                                |   5 +-
 tests/data/test1080                                |   5 +-
 tests/data/test1081                                |   5 +-
 tests/data/test1082                                |   4 +-
 tests/data/test1083                                |   4 +-
 tests/data/test1087                                |   6 +-
 tests/data/test1088                                |   6 +-
 tests/data/test1089                                |   5 +-
 tests/data/test1090                                |   5 +-
 tests/data/test1092                                |   4 +-
 tests/data/test1095                                |   6 +-
 tests/data/test1096                                |   1 +
 tests/data/test1097                                |   7 +-
 tests/data/test1098                                |   5 +-
 tests/data/test11                                  |   5 +-
 tests/data/test1100                                |  10 +-
 tests/data/test1101                                |   4 +-
 tests/data/test1104                                |   5 +-
 tests/data/test1105                                |   6 +-
 tests/data/test1106                                |   4 +-
 tests/data/test1109                                |   4 +-
 tests/data/test1110                                |   4 +-
 tests/data/test1111                                |   4 +-
 tests/data/test1115                                |   4 +-
 tests/data/test1116                                |   4 +-
 tests/data/test1117                                |   5 +-
 tests/data/test1118                                |   4 +-
 tests/data/test1119                                |   1 -
 tests/data/test1121                                |   4 +-
 tests/data/test1122                                |   4 +-
 tests/data/test1123                                |   4 +-
 tests/data/test1124                                |   4 +-
 tests/data/test1125                                |   4 +-
 tests/data/test1126                                |   4 +-
 tests/data/test1127                                |   4 +-
 tests/data/test1128                                |   5 +-
 tests/data/test1129                                |   7 +-
 tests/data/test1130                                |   5 +-
 tests/data/test1131                                |   5 +-
 tests/data/test1133                                |   4 +-
 tests/data/test1134                                |   5 +-
 tests/data/test1136                                |   2 +-
 tests/data/test1138                                |   6 +-
 tests/data/test1141                                |   5 +-
 tests/data/test1142                                |   4 +-
 tests/data/test1143                                |   4 +-
 tests/data/test1144                                |   4 +-
 tests/data/test1148                                |   4 +-
 tests/data/test1150                                |   5 +-
 tests/data/test1151                                |   6 +-
 tests/data/test1154                                |   6 +-
 tests/data/test1155                                |   6 +-
 tests/data/test1157                                |   4 +-
 tests/data/test1158                                |   4 +-
 tests/data/test1159                                |   4 +-
 tests/data/test1160                                |   6 +-
 tests/data/test1161                                |   6 +-
 tests/data/test1164                                |   4 +-
 tests/data/test1166                                |   5 +-
 tests/data/test1168                                |   5 +-
 tests/data/test1170                                |   4 +-
 tests/data/test1171                                |   4 +-
 tests/data/test1172                                |   4 +-
 tests/data/test1174                                |   4 +-
 tests/data/test1176                                |   4 +-
 tests/data/test1178                                |   4 +-
 tests/data/test118                                 |   1 +
 tests/data/test119                                 |   1 +
 tests/data/test1197                                |   5 +-
 tests/data/test12                                  |   4 +-
 tests/data/test1204                                |   5 +-
 tests/data/test1205                                |   4 +-
 tests/data/test1210                                |   4 +-
 tests/data/test1212                                |   4 +-
 tests/data/test1213                                |   4 +-
 tests/data/test1214                                |   4 +-
 tests/data/test1215                                |   7 +-
 tests/data/test1216                                |   5 +-
 tests/data/test1218                                |   6 +-
 tests/data/test1221                                |  53 --
 tests/data/test1222                                |  53 --
 tests/data/test1223                                |   4 +-
 tests/data/test1228                                |   5 +-
 tests/data/test1229                                |   5 +-
 tests/data/test1230                                |   5 +-
 tests/data/test1231                                |   5 +-
 tests/data/test1232                                |   5 +-
 tests/data/test1235                                |  11 +-
 tests/data/test1237                                |   4 +-
 tests/data/test1239                                |   4 +-
 tests/data/test1240                                |   5 +-
 tests/data/test1241                                |   5 +-
 tests/data/test1244                                |   4 +-
 tests/data/test1245                                |   4 +-
 tests/data/test1246                                |   5 +-
 tests/data/test1248                                |   4 +-
 tests/data/test1249                                |   4 +-
 tests/data/test1250                                |   4 +-
 tests/data/test1251                                |   4 +-
 tests/data/test1252                                |   4 +-
 tests/data/test1253                                |   4 +-
 tests/data/test1254                                |   4 +-
 tests/data/test1255                                |   4 +-
 tests/data/test1256                                |   4 +-
 tests/data/test1257                                |   4 +-
 tests/data/test1258                                |   5 +-
 tests/data/test1259                                |   4 +-
 tests/data/test1261                                |   4 +-
 tests/data/test1265                                |   4 +-
 tests/data/test1266                                |   4 +-
 tests/data/test1267                                |   4 +-
 tests/data/test1270                                |   4 +-
 tests/data/test1271                                |   4 +-
 tests/data/test1280                                |   7 +-
 tests/data/test1283                                |   4 +-
 tests/data/test1284                                |   5 +-
 tests/data/test1285                                |   5 +-
 tests/data/test1286                                |   7 +-
 tests/data/test1287                                |   5 +-
 tests/data/test1288                                |   5 +-
 tests/data/test1290                                |   4 +-
 tests/data/test1292                                |   4 +-
 tests/data/test1293                                |   4 +-
 tests/data/test1294                                |   4 +-
 tests/data/test1295                                |   4 +-
 tests/data/test1296                                |   4 +-
 tests/data/test1297                                |  65 ++
 tests/data/test1298                                |   4 +-
 tests/data/test1299                                |   4 +-
 tests/data/test13                                  |   4 +-
 tests/data/test1310                                |   7 +-
 tests/data/test1311                                |   4 +-
 tests/data/test1312                                |   4 +-
 tests/data/test1313                                |   4 +-
 tests/data/test1314                                |   5 +-
 tests/data/test1315                                |   4 +-
 tests/data/test1317                                |   4 +-
 tests/data/test1318                                |   5 +-
 tests/data/test1319                                |   5 +-
 tests/data/test1320                                |   5 +-
 tests/data/test1321                                |   5 +-
 tests/data/test1322                                |   4 +-
 tests/data/test1324                                |   4 +-
 tests/data/test1325                                |   5 +-
 tests/data/test1328                                |   5 +-
 tests/data/test1331                                |   5 +-
 tests/data/test1332                                |   6 +-
 tests/data/test1333                                |   4 +-
 tests/data/test1334                                |   4 +-
 tests/data/test1335                                |   4 +-
 tests/data/test1336                                |   4 +-
 tests/data/test1337                                |   4 +-
 tests/data/test1338                                |   4 +-
 tests/data/test1339                                |   4 +-
 tests/data/test1340                                |   4 +-
 tests/data/test1341                                |   4 +-
 tests/data/test1342                                |   4 +-
 tests/data/test1343                                |   4 +-
 tests/data/test1344                                |   4 +-
 tests/data/test1345                                |   4 +-
 tests/data/test1346                                |   4 +-
 tests/data/test1347                                |   4 +-
 tests/data/test1364                                |   4 +-
 tests/data/test1365                                |   4 +-
 tests/data/test1366                                |   4 +-
 tests/data/test1367                                |   4 +-
 tests/data/test1368                                |   4 +-
 tests/data/test1369                                |   4 +-
 tests/data/test1370                                |   4 +-
 tests/data/test1371                                |   4 +-
 tests/data/test1372                                |   4 +-
 tests/data/test1373                                |   4 +-
 tests/data/test1374                                |   4 +-
 tests/data/test1375                                |   4 +-
 tests/data/test1376                                |   4 +-
 tests/data/test1377                                |   4 +-
 tests/data/test138                                 |   1 +
 tests/data/test14                                  |   5 +-
 tests/data/test1400                                |   8 +-
 tests/data/test1401                                |   8 +-
 tests/data/test1402                                |   8 +-
 tests/data/test1403                                |   8 +-
 tests/data/test1404                                |   7 +-
 tests/data/test1405                                |   3 +-
 tests/data/test1406                                |   3 +-
 tests/data/test1407                                |   3 +-
 tests/data/test1408                                |   5 +-
 tests/data/test1411                                |   4 +-
 tests/data/test1412                                |  10 +-
 tests/data/test1413                                |   5 +-
 tests/data/test1415                                |   6 +-
 tests/data/test1416                                |   4 +-
 tests/data/test1417                                |   4 +-
 tests/data/test1418                                |   7 +-
 tests/data/test1419                                |   5 +-
 tests/data/test1420                                |   3 +-
 tests/data/test1421                                |   5 +-
 tests/data/test1422                                |   4 +-
 tests/data/test1423                                |   4 +-
 tests/data/test1424                                |   4 +-
 tests/data/test1425                                | Bin 1726 -> 1721 bytes
 tests/data/test1426                                | Bin 1663 -> 1658 bytes
 tests/data/test1428                                |   7 +-
 tests/data/test1429                                |   4 +-
 tests/data/test1430                                |   4 +-
 tests/data/test1431                                |   4 +-
 tests/data/test1432                                |   4 +-
 tests/data/test1433                                |   4 +-
 tests/data/test1434                                |   4 +-
 tests/data/test1435                                |   4 +-
 tests/data/test1436                                |   6 +-
 tests/data/test1437                                |   6 +-
 tests/data/test1438                                |   4 +-
 tests/data/test1439                                |   6 +-
 tests/data/test1443                                |   4 +-
 tests/data/test1448                                |   5 +-
 tests/data/test1455                                |   4 +-
 tests/data/test1456                                |   5 +-
 tests/data/test1457                                |   4 +-
 tests/data/test1458                                |   4 +-
 tests/data/test1460                                |   3 -
 tests/data/test1461                                |  53 ++
 tests/data/test1462                                |  61 ++
 tests/data/{test76 => test1463}                    |  23 +-
 tests/data/{test702 => test1464}                   |  34 +-
 tests/data/{test1402 => test1465}                  | Bin 3016 -> 2964 bytes
 tests/data/test15                                  |   4 +-
 tests/data/test150                                 |   7 +-
 tests/data/test1502                                |   3 -
 tests/data/test1503                                |   3 -
 tests/data/test1504                                |   3 -
 tests/data/test1505                                |   3 -
 tests/data/test151                                 |   5 +-
 tests/data/test152                                 |   5 +-
 tests/data/test1524                                |   6 +-
 tests/data/test153                                 |  10 +-
 tests/data/test1538                                |   3 +-
 tests/data/test154                                 |   6 +-
 tests/data/test155                                 |   7 +-
 tests/data/test1551                                |   3 -
 tests/data/test1556                                |   5 +-
 tests/data/test156                                 |   5 +-
 tests/data/test1561                                |   9 +-
 tests/data/test1562                                |   6 +-
 tests/data/test1563                                |   4 +-
 tests/data/test1566                                |   6 +-
 tests/data/test1567                                |   3 -
 tests/data/test157                                 |   4 +-
 tests/data/test158                                 |   3 +-
 tests/data/test159                                 |   5 +-
 tests/data/test1591                                |   3 -
 tests/data/test1593                                |   3 -
 tests/data/test1594                                |   3 -
 tests/data/test1595                                |   3 -
 tests/data/test1596                                |   3 -
 tests/data/test16                                  |   4 +-
 tests/data/test160                                 |   5 +-
 tests/data/test162                                 |   5 +-
 tests/data/test163                                 |   4 +-
 tests/data/test1630                                |   4 +-
 tests/data/test1631                                |   3 +-
 tests/data/test1632                                |   3 +-
 tests/data/test1633                                |   7 +-
 tests/data/test164                                 |   4 +-
 tests/data/test165                                 |   5 +-
 tests/data/test1653                                |   2 +-
 tests/data/test1654                                |   2 +-
 tests/data/test166                                 |   4 +-
 tests/data/test1660                                |  81 ++
 tests/data/test167                                 |   7 +-
 tests/data/test168                                 |   9 +-
 tests/data/test169                                 |   9 +-
 tests/data/test170                                 |   5 +-
 tests/data/test1700                                |   7 +-
 tests/data/test1701                                |   5 +-
 tests/data/test1702                                |   5 +-
 tests/data/test171                                 |   6 +-
 tests/data/test172                                 |   6 +-
 tests/data/test173                                 |   4 +-
 tests/data/test174                                 |   5 +-
 tests/data/test175                                 |   7 +-
 tests/data/test176                                 |   7 +-
 tests/data/test177                                 |   5 +-
 tests/data/test178                                 |   4 +-
 tests/data/test179                                 |   4 +-
 tests/data/test18                                  |   9 +-
 tests/data/test180                                 |   4 +-
 tests/data/test1800                                |   4 +-
 tests/data/test1801                                |   4 +-
 tests/data/test181                                 |   4 +-
 tests/data/test183                                 |   7 +-
 tests/data/test184                                 |   6 +-
 tests/data/test185                                 |   6 +-
 tests/data/test186                                 |   4 +-
 tests/data/test187                                 |   5 +-
 tests/data/test188                                 |   7 +-
 tests/data/test189                                 |   7 +-
 tests/data/test1900                                |  61 --
 tests/data/test1901                                |  63 --
 tests/data/test1902                                |  62 --
 tests/data/test1903                                |  62 --
 tests/data/test1904                                |   7 +-
 tests/data/test1905                                |   5 +-
 tests/data/test1906                                |   3 -
 tests/data/test1907                                |   3 -
 tests/data/test1908                                |  20 +-
 tests/data/test1909                                |   5 +-
 tests/data/test1910                                |   5 +-
 tests/data/{test1541 => test1911}                  |  19 +-
 tests/data/{test1541 => test1912}                  |  20 +-
 tests/data/{test118 => test1913}                   |  37 +-
 tests/data/{test118 => test1914}                   |  38 +-
 tests/data/test1915                                |  50 ++
 tests/data/test192                                 |   4 +-
 tests/data/test193                                 |   5 +-
 tests/data/test194                                 |   4 +-
 tests/data/test197                                 |   5 +-
 tests/data/test198                                 |   5 +-
 tests/data/test199                                 |   5 +-
 tests/data/test2                                   |   4 +-
 tests/data/test2001                                |   4 +-
 tests/data/test2002                                |   4 +-
 tests/data/test2003                                |   5 +-
 tests/data/test2005                                |   4 +-
 tests/data/test2006                                |   4 +-
 tests/data/test2007                                |   4 +-
 tests/data/test2008                                |   4 +-
 tests/data/test2009                                |   4 +-
 tests/data/test2010                                |   4 +-
 tests/data/test2011                                |   4 +-
 tests/data/test2012                                |   4 +-
 tests/data/test2023                                |   3 -
 tests/data/test2024                                |   3 -
 tests/data/test2025                                |   3 -
 tests/data/test2026                                |   3 -
 tests/data/test2027                                |   3 -
 tests/data/test2028                                |   3 -
 tests/data/test2029                                |   3 -
 tests/data/test2030                                |   3 -
 tests/data/test2031                                |   3 -
 tests/data/test2032                                |   3 -
 tests/data/test2033                                | 125 ---
 tests/data/test2034                                |   4 +-
 tests/data/test2036                                |   3 -
 tests/data/test2037                                |   3 +-
 tests/data/test2040                                |   5 +-
 tests/data/test2041                                |   4 +-
 tests/data/test2046                                |   5 +-
 tests/data/test2047                                |   5 +-
 tests/data/test2049                                |   7 +-
 tests/data/test2050                                |   5 +-
 tests/data/test2051                                |   6 +-
 tests/data/test2052                                |   5 +-
 tests/data/test2053                                |   5 +-
 tests/data/test2054                                |   7 +-
 tests/data/test2055                                |   5 +-
 tests/data/test2056                                |   4 +-
 tests/data/test2057                                |   5 +-
 tests/data/test2058                                |   6 +-
 tests/data/test2059                                |   6 +-
 tests/data/test206                                 |   7 +-
 tests/data/test2060                                |   6 +-
 tests/data/test2061                                |   6 +-
 tests/data/test2062                                |   6 +-
 tests/data/test2063                                |   6 +-
 tests/data/test2064                                |   6 +-
 tests/data/test2065                                |   6 +-
 tests/data/test2066                                |   6 +-
 tests/data/test2067                                |   5 +-
 tests/data/test2068                                |   5 +-
 tests/data/test2069                                |   5 +-
 tests/data/test207                                 |   4 +-
 tests/data/test2070                                |   4 +-
 tests/data/test2073                                |   4 +-
 tests/data/test2074                                |   4 +-
 tests/data/test2076                                |   5 +-
 tests/data/test2078                                |   4 +-
 tests/data/test208                                 |   4 +-
 tests/data/test209                                 |   7 +-
 tests/data/test2100                                | Bin 1647 -> 1642 bytes
 tests/data/test213                                 |   7 +-
 tests/data/test214                                 |   4 +-
 tests/data/test217                                 |   4 +-
 tests/data/test218                                 |   4 +-
 tests/data/test22                                  |   5 +-
 tests/data/test220                                 |   4 +-
 tests/data/test221                                 |   4 +-
 tests/data/test222                                 |   4 +-
 tests/data/test223                                 |   4 +-
 tests/data/test224                                 |   4 +-
 tests/data/test230                                 |   4 +-
 tests/data/test232                                 |   4 +-
 tests/data/test233                                 |   5 +-
 tests/data/test234                                 |   5 +-
 tests/data/test235                                 |   3 +
 tests/data/test236                                 |   1 +
 tests/data/test239                                 |   7 +-
 tests/data/test24                                  |   5 +-
 tests/data/test240                                 |   4 +-
 tests/data/test241                                 |   4 +-
 tests/data/test242                                 |   4 +-
 tests/data/test243                                 |   9 +-
 tests/data/test245                                 |   7 +-
 tests/data/test246                                 |   7 +-
 tests/data/test249                                 |   4 +-
 tests/data/test25                                  |  15 +-
 tests/data/test256                                 |   4 +-
 tests/data/test257                                 |   9 +-
 tests/data/test258                                 |   6 +-
 tests/data/test259                                 |   6 +-
 tests/data/test26                                  |   5 +-
 tests/data/test260                                 |   4 +-
 tests/data/test262                                 | Bin 1137 -> 1132 bytes
 tests/data/test263                                 |   4 +-
 tests/data/test264                                 |   4 +-
 tests/data/test265                                 |   7 +-
 tests/data/test266                                 |   4 +-
 tests/data/test267                                 |   7 +-
 tests/data/test268                                 |   4 +-
 tests/data/test269                                 |   4 +-
 tests/data/test27                                  |   6 +-
 tests/data/test273                                 |   6 +-
 tests/data/test274                                 |   5 +-
 tests/data/test275                                 |   7 +-
 tests/data/test276                                 |   5 +-
 tests/data/test277                                 |   5 +-
 tests/data/test278                                 |   4 +-
 tests/data/test279                                 |   4 +-
 tests/data/test28                                  |   5 +-
 tests/data/test281                                 |   4 +-
 tests/data/test282                                 |   4 +-
 tests/data/test29                                  |   4 +-
 tests/data/test292                                 |   4 +-
 tests/data/test293                                 |   4 +-
 tests/data/test299                                 |   4 +-
 tests/data/test3                                   |   4 +-
 tests/data/test30                                  |   4 +-
 tests/data/test300                                 |   4 +-
 tests/data/test3000                                |   4 +-
 tests/data/test3001                                |   4 +-
 tests/data/{test293 => test3008}                   |  31 +-
 tests/data/{test293 => test3009}                   |  31 +-
 tests/data/test301                                 |   4 +-
 tests/data/{test293 => test3011}                   |  31 +-
 tests/data/{test293 => test3012}                   |  34 +-
 tests/data/{test74 => test3013}                    |  51 +-
 tests/data/{test1439 => test3014}                  |  10 +-
 tests/data/{test193 => test3015}                   |  60 +-
 tests/data/test302                                 |   3 -
 tests/data/test303                                 |   4 +-
 tests/data/test304                                 |   4 +-
 tests/data/test305                                 |   3 -
 tests/data/test306                                 |   4 +-
 tests/data/test307                                 |   4 +-
 tests/data/test309                                 |   5 +-
 tests/data/test31                                  |   6 +-
 tests/data/test310                                 |   4 +-
 tests/data/test314                                 |   4 +-
 tests/data/test315                                 |   4 +-
 tests/data/test316                                 |   4 +-
 tests/data/test317                                 |   5 +-
 tests/data/test318                                 |   5 +-
 tests/data/test319                                 |   4 +-
 tests/data/test32                                  |   5 +-
 tests/data/test325                                 |   4 +-
 tests/data/test326                                 |   4 +-
 tests/data/test327                                 |   7 +-
 tests/data/test328                                 |   2 +-
 tests/data/test329                                 |   5 +-
 tests/data/test33                                  |   5 +-
 tests/data/test330                                 |   5 +-
 tests/data/test331                                 |   5 +-
 tests/data/test334                                 |   4 +-
 tests/data/test335                                 |   9 +-
 tests/data/test338                                 |   5 +-
 tests/data/test339                                 |   8 +-
 tests/data/test34                                  |   4 +-
 tests/data/test341                                 |   3 -
 tests/data/test342                                 |   6 +-
 tests/data/test343                                 |   8 +-
 tests/data/test344                                 |   6 +-
 tests/data/test345                                 |   8 +-
 tests/data/test346                                 |   4 +-
 tests/data/{test339 => test347}                    |  15 +-
 tests/data/{test1096 => test348}                   |  43 +-
 tests/data/test35                                  | Bin 810 -> 805 bytes
 tests/data/test355                                 |   4 +-
 tests/data/test356                                 |   6 +-
 tests/data/test357                                 |   5 +-
 tests/data/test358                                 |   5 +-
 tests/data/test359                                 |   5 +-
 tests/data/test36                                  |   4 +-
 tests/data/test37                                  |   4 +-
 tests/data/test38                                  |   4 +-
 tests/data/test39                                  |   4 +-
 tests/data/test393                                 |   4 +-
 tests/data/test394                                 |   4 +-
 tests/data/test395                                 |   4 +-
 tests/data/test396                                 |   4 +-
 tests/data/test397                                 |   4 +-
 tests/data/test4                                   |   5 +-
 tests/data/test40                                  |   6 +-
 tests/data/test42                                  |   6 +-
 tests/data/test43                                  |   5 +-
 tests/data/test430                                 |   6 +-
 tests/data/test431                                 |   6 +-
 tests/data/test432                                 |   6 +-
 tests/data/{test2078 => test433}                   |  45 +-
 tests/data/{test1290 => test434}                   |  26 +-
 tests/data/test44                                  |   4 +-
 tests/data/test45                                  |   5 +-
 tests/data/test46                                  |   8 +-
 tests/data/test47                                  |   4 +-
 tests/data/test48                                  |   5 +-
 tests/data/test49                                  |   6 +-
 tests/data/test490                                 |   5 +-
 tests/data/test491                                 |   4 +-
 tests/data/test492                                 |   7 +-
 tests/data/test493                                 |  61 ++
 tests/data/test5                                   |   4 +-
 tests/data/test50                                  |   6 +-
 tests/data/test506                                 |   7 +-
 tests/data/test51                                  |   6 +-
 tests/data/test511                                 |   4 +-
 tests/data/test512                                 |   3 -
 tests/data/test514                                 |   3 -
 tests/data/test515                                 |   3 -
 tests/data/test516                                 |   3 -
 tests/data/test52                                  |   6 +-
 tests/data/test522                                 |   3 -
 tests/data/test523                                 |   3 -
 tests/data/test53                                  |   4 +-
 tests/data/test530                                 |  83 --
 tests/data/test533                                 |   2 +-
 tests/data/test534                                 |   2 +-
 tests/data/test54                                  |   4 +-
 tests/data/test540                                 |   3 -
 tests/data/test544                                 |   3 -
 tests/data/test546                                 |   2 +-
 tests/data/test547                                 |   6 -
 tests/data/test548                                 |   6 -
 tests/data/test549                                 |   3 -
 tests/data/test55                                  |   6 +-
 tests/data/test550                                 |   3 -
 tests/data/test551                                 |   3 -
 tests/data/test552                                 | Bin 142947 -> 2967 bytes
 tests/data/test553                                 |  21 +-
 tests/data/test555                                 |   6 -
 tests/data/test556                                 |   3 -
 tests/data/test558                                 |   4 +-
 tests/data/test56                                  |   4 +-
 tests/data/test560                                 |   3 -
 tests/data/test561                                 |   3 -
 tests/data/test57                                  |   4 +-
 tests/data/test573                                 |   3 -
 tests/data/test58                                  |   4 +-
 tests/data/test580                                 |   3 -
 tests/data/test581                                 |   3 -
 tests/data/test584                                 | 102 ---
 tests/data/test585                                 |   3 -
 tests/data/test589                                 |   3 -
 tests/data/test59                                  |   4 +-
 tests/data/test590                                 |   7 +-
 tests/data/test6                                   |   4 +-
 tests/data/test60                                  |   4 +-
 tests/data/test61                                  |   6 +-
 tests/data/test62                                  |   7 +-
 tests/data/test63                                  |   4 +-
 tests/data/test64                                  |   6 +-
 tests/data/test65                                  |   6 +-
 tests/data/test658                                 |   3 -
 tests/data/test659                                 |   3 -
 tests/data/test66                                  |   4 +-
 tests/data/test662                                 |   5 +-
 tests/data/test663                                 |   5 +-
 tests/data/test669                                 |   6 +-
 tests/data/test67                                  |   7 +-
 tests/data/test674                                 |   3 -
 tests/data/test68                                  |   7 +-
 tests/data/test69                                  |   9 +-
 tests/data/test7                                   |   4 +-
 tests/data/test70                                  |   7 +-
 tests/data/test700                                 |   4 +-
 tests/data/test701                                 |   4 +-
 tests/data/test702                                 |   2 +-
 tests/data/test703                                 |   2 +-
 tests/data/test708                                 |   4 +-
 tests/data/test709                                 |   4 +-
 tests/data/test710                                 |   4 +-
 tests/data/test716                                 |   2 +-
 tests/data/test717                                 |   4 +-
 tests/data/test72                                  |   7 +-
 tests/data/test73                                  |   6 +-
 tests/data/test74                                  |   5 +-
 tests/data/test75                                  |   3 -
 tests/data/test76                                  |   3 -
 tests/data/test77                                  |   4 +-
 tests/data/test78                                  |   4 +-
 tests/data/test79                                  |   4 +-
 tests/data/test8                                   |   4 +-
 tests/data/test80                                  |   7 +-
 tests/data/test81                                  |   7 +-
 tests/data/test82                                  |   5 +-
 tests/data/test83                                  |   7 +-
 tests/data/test84                                  |   5 +-
 tests/data/test85                                  |   5 +-
 tests/data/test86                                  |   9 +-
 tests/data/test88                                  |   6 +-
 tests/data/test89                                  |  11 +-
 tests/data/test9                                   |   4 +-
 tests/data/test90                                  |  13 +-
 tests/data/test91                                  |   9 +-
 tests/data/test92                                  |   4 +-
 tests/data/test93                                  |   4 +-
 tests/data/test94                                  |   5 +-
 tests/data/test95                                  |   7 +-
 tests/data/test97                                  |   4 +-
 tests/data/test970                                 |   6 +-
 tests/data/test971                                 |   5 +
 tests/data/test98                                  |   4 +-
 tests/data/test99                                  |   4 +-
 tests/dictserver.py.in                             |  11 +-
 tests/directories.pm                               |   2 +-
 tests/disable-scan.pl.in                           |   4 +-
 tests/error-codes.pl.in                            |   4 +-
 tests/extern-scan.pl.in                            |   2 +-
 tests/ftp.pm                                       |   2 +-
 tests/ftpserver.pl.in                              |  19 +-
 tests/fuzz/download_fuzzer.sh                      |   2 +-
 tests/getpart.pm                                   |   9 +-
 tests/http2-server.pl.in                           |   2 +-
 tests/httpserver.pl.in                             |   2 +-
 tests/keywords.pl.in                               |   2 +-
 tests/libtest/.gitignore                           |   2 +-
 tests/libtest/CMakeLists.txt                       |   2 +-
 tests/libtest/Makefile.am                          |   2 +-
 tests/libtest/Makefile.inc                         |  43 +-
 tests/libtest/chkdecimalpoint.c                    |   4 +-
 tests/libtest/chkhostname.c                        |   4 +-
 tests/libtest/first.c                              |   4 +-
 tests/libtest/lib1156.c                            |   2 +-
 tests/libtest/lib1500.c                            |   4 +-
 tests/libtest/lib1501.c                            |   4 +-
 tests/libtest/lib1502.c                            |   4 +-
 tests/libtest/lib1506.c                            |   4 +-
 tests/libtest/lib1507.c                            |   2 +-
 tests/libtest/lib1508.c                            |   2 +-
 tests/libtest/lib1509.c                            |   2 +-
 tests/libtest/lib1510.c                            |   4 +-
 tests/libtest/lib1511.c                            |   4 +-
 tests/libtest/lib1512.c                            |   4 +-
 tests/libtest/lib1513.c                            |   4 +-
 tests/libtest/lib1514.c                            |   2 +-
 tests/libtest/lib1515.c                            |   2 +-
 tests/libtest/lib1517.c                            |   4 +-
 tests/libtest/lib1518.c                            |   4 +-
 tests/libtest/lib1520.c                            |   2 +-
 tests/libtest/lib1522.c                            |   4 +-
 tests/libtest/lib1523.c                            |   9 +-
 tests/libtest/lib1525.c                            |   2 +-
 tests/libtest/lib1526.c                            |   2 +-
 tests/libtest/lib1527.c                            |   2 +-
 tests/libtest/lib1528.c                            |   4 +-
 tests/libtest/lib1529.c                            |   4 +-
 tests/libtest/lib1530.c                            |   4 +-
 tests/libtest/lib1531.c                            |   2 +-
 tests/libtest/lib1532.c                            |   4 +-
 tests/libtest/lib1533.c                            |   2 +-
 tests/libtest/lib1534.c                            |   4 +-
 tests/libtest/lib1535.c                            |   2 +-
 tests/libtest/lib1536.c                            |   2 +-
 tests/libtest/lib1537.c                            |   4 +-
 tests/libtest/lib1538.c                            |  16 +-
 tests/libtest/lib1540.c                            |   2 +-
 tests/libtest/lib1541.c                            |  11 +-
 tests/libtest/lib1550.c                            |   6 +-
 tests/libtest/lib1551.c                            |   4 +-
 tests/libtest/lib1552.c                            |   4 +-
 tests/libtest/lib1553.c                            |   4 +-
 tests/libtest/lib1554.c                            |   2 +-
 tests/libtest/lib1555.c                            |   4 +-
 tests/libtest/lib1556.c                            |   4 +-
 tests/libtest/lib1557.c                            |   4 +-
 tests/libtest/lib1558.c                            |   6 +-
 tests/libtest/lib1559.c                            |   4 +-
 tests/libtest/lib1560.c                            |  19 +-
 tests/libtest/lib1564.c                            |   2 +-
 tests/libtest/lib1565.c                            |   4 +-
 tests/libtest/lib1567.c                            |   2 +-
 tests/libtest/lib1591.c                            |   4 +-
 tests/libtest/lib1592.c                            |  12 +-
 tests/libtest/lib1593.c                            |   4 +-
 tests/libtest/lib1594.c                            |   4 +-
 tests/libtest/lib1900.c                            |   2 +-
 tests/libtest/lib1905.c                            |   4 +-
 tests/libtest/lib1906.c                            |   4 +-
 tests/libtest/lib1907.c                            |   4 +-
 tests/libtest/lib1908.c                            |  17 +-
 tests/libtest/lib1910.c                            |   2 +-
 tests/libtest/lib1911.c                            |  89 +++
 tests/libtest/lib1912.c                            |  80 ++
 tests/libtest/{lib1908.c => lib1913.c}             |  11 +-
 tests/libtest/lib1915.c                            |  95 +++
 tests/libtest/lib3010.c                            |   2 +-
 tests/libtest/lib500.c                             |   2 +-
 tests/libtest/lib501.c                             |   2 +-
 tests/libtest/lib502.c                             |   2 +-
 tests/libtest/lib503.c                             |   2 +-
 tests/libtest/lib504.c                             |   2 +-
 tests/libtest/lib505.c                             |   6 +-
 tests/libtest/lib506.c                             |   4 +-
 tests/libtest/lib507.c                             |   4 +-
 tests/libtest/lib508.c                             |   4 +-
 tests/libtest/lib509.c                             |   2 +-
 tests/libtest/lib510.c                             |   4 +-
 tests/libtest/lib511.c                             |   4 +-
 tests/libtest/lib512.c                             |   2 +-
 tests/libtest/lib513.c                             |   4 +-
 tests/libtest/lib514.c                             |   4 +-
 tests/libtest/lib515.c                             |   4 +-
 tests/libtest/lib516.c                             |   4 +-
 tests/libtest/lib517.c                             |   4 +-
 tests/libtest/lib518.c                             |   4 +-
 tests/libtest/lib519.c                             |   2 +-
 tests/libtest/lib520.c                             |   4 +-
 tests/libtest/lib521.c                             |   2 +-
 tests/libtest/lib523.c                             |   2 +-
 tests/libtest/lib524.c                             |   2 +-
 tests/libtest/lib525.c                             |   4 +-
 tests/libtest/lib526.c                             |   4 +-
 tests/libtest/lib530.c                             |   4 +-
 tests/libtest/lib533.c                             |   4 +-
 tests/libtest/lib537.c                             |   4 +-
 tests/libtest/lib539.c                             |   4 +-
 tests/libtest/lib540.c                             |   4 +-
 tests/libtest/lib541.c                             |   6 +-
 tests/libtest/lib542.c                             |   4 +-
 tests/libtest/lib543.c                             |   2 +-
 tests/libtest/lib544.c                             |   4 +-
 tests/libtest/lib547.c                             |   2 +-
 tests/libtest/lib549.c                             |   2 +-
 tests/libtest/lib552.c                             |   4 +-
 tests/libtest/lib553.c                             |   2 +-
 tests/libtest/lib554.c                             |   4 +-
 tests/libtest/lib555.c                             |   4 +-
 tests/libtest/lib556.c                             |   6 +-
 tests/libtest/lib557.c                             |   2 +-
 tests/libtest/lib558.c                             |   2 +-
 tests/libtest/lib559.c                             |   2 +-
 tests/libtest/lib560.c                             |   2 +-
 tests/libtest/lib562.c                             |   4 +-
 tests/libtest/lib564.c                             |   4 +-
 tests/libtest/lib566.c                             |   2 +-
 tests/libtest/lib567.c                             |   2 +-
 tests/libtest/lib568.c                             |   2 +-
 tests/libtest/lib569.c                             |   4 +-
 tests/libtest/lib570.c                             |   8 +-
 tests/libtest/lib571.c                             |   4 +-
 tests/libtest/lib572.c                             |   2 +-
 tests/libtest/lib573.c                             |   2 +-
 tests/libtest/lib574.c                             |   4 +-
 tests/libtest/lib575.c                             |   4 +-
 tests/libtest/lib576.c                             |   2 +-
 tests/libtest/lib578.c                             |   4 +-
 tests/libtest/lib579.c                             |   2 +-
 tests/libtest/lib582.c                             |   2 +-
 tests/libtest/lib583.c                             |  15 +-
 tests/libtest/lib586.c                             |   2 +-
 tests/libtest/lib589.c                             |   4 +-
 tests/libtest/lib590.c                             |   4 +-
 tests/libtest/lib591.c                             |   2 +-
 tests/libtest/lib597.c                             |   4 +-
 tests/libtest/lib598.c                             |   2 +-
 tests/libtest/lib599.c                             |   4 +-
 tests/libtest/lib643.c                             |   2 +-
 tests/libtest/lib650.c                             |   4 +-
 tests/libtest/lib651.c                             |   2 +-
 tests/libtest/lib652.c                             |   2 +-
 tests/libtest/lib653.c                             |   4 +-
 tests/libtest/lib654.c                             |   2 +-
 tests/libtest/lib655.c                             |   4 +-
 tests/libtest/lib658.c                             |   4 +-
 tests/libtest/lib659.c                             |   4 +-
 tests/libtest/lib661.c                             |   4 +-
 tests/libtest/lib666.c                             |   2 +-
 tests/libtest/lib667.c                             |   2 +-
 tests/libtest/lib668.c                             |   2 +-
 tests/libtest/lib670.c                             |   2 +-
 tests/libtest/lib674.c                             |   2 +-
 tests/libtest/libauthretry.c                       |   4 +-
 tests/libtest/libntlmconnect.c                     |   4 +-
 tests/libtest/mk-lib1521.pl                        |  18 +-
 tests/libtest/notexists.pl                         |   2 +-
 tests/libtest/sethostname.c                        |   2 +-
 tests/libtest/sethostname.h                        |   4 +-
 tests/libtest/stub_gssapi.c                        |   4 +-
 tests/libtest/stub_gssapi.h                        |   2 +-
 tests/libtest/test.h                               |  48 +-
 tests/libtest/test1013.pl                          |   2 +-
 tests/libtest/test1022.pl                          |   2 +-
 tests/libtest/test307.pl                           |   2 +-
 tests/libtest/test610.pl                           |   2 +-
 tests/libtest/test613.pl                           |   2 +-
 tests/libtest/testtrace.c                          |   4 +-
 tests/libtest/testtrace.h                          |   2 +-
 tests/libtest/testutil.c                           |   2 +-
 tests/libtest/testutil.h                           |   2 +-
 tests/manpage-scan.pl.in                           |   2 +-
 tests/mem-include-scan.pl.in                       |   2 +-
 tests/memanalyze.pl.in                             |   4 +-
 tests/negtelnetserver.py.in                        |  10 +-
 tests/nroff-scan.pl.in                             |   2 +-
 tests/objnames-test08.sh                           | 217 ------
 tests/objnames-test10.sh                           | 217 ------
 tests/objnames.inc                                 | 107 ---
 tests/options-scan.pl                              |   6 +-
 tests/pathhelp.pm                                  |   2 +-
 tests/rtspserver.pl.in                             |   2 +-
 tests/runtests.1                                   |   2 +-
 tests/runtests.pl.in                               | 195 ++---
 tests/secureserver.pl.in                           |   2 +-
 tests/server/CMakeLists.txt                        |   2 +-
 tests/server/Makefile.am                           |   4 +-
 tests/server/Makefile.inc                          |   2 +-
 tests/server/base64.pl                             |   2 +-
 tests/server/disabled.c                            |   4 +-
 tests/server/fake_ntlm.c                           |   2 +-
 tests/server/getpart.c                             |   2 +-
 tests/server/getpart.h                             |   2 +-
 tests/server/mqttd.c                               |   9 +-
 tests/server/resolve.c                             |   2 +-
 tests/server/rtspd.c                               |   2 +-
 tests/server/server_setup.h                        |   2 +-
 tests/server/server_sockaddr.h                     |   2 +-
 tests/server/sockfilt.c                            |   8 +-
 tests/server/socksd.c                              |   2 +-
 tests/server/sws.c                                 |   2 +-
 tests/server/testpart.c                            |   2 +-
 tests/server/tftp.h                                |   2 +-
 tests/server/tftpd.c                               |  15 +-
 tests/server/util.c                                |  13 +-
 tests/server/util.h                                |   2 +-
 tests/serverhelp.pm                                |   2 +-
 tests/smbserver.py.in                              |  24 +-
 tests/sshhelp.pm                                   |   2 +-
 tests/sshserver.pl.in                              |   2 +-
 tests/symbol-scan.pl.in                            |   4 +-
 tests/testcurl.1                                   |   8 +-
 tests/testcurl.pl.in                               |  14 +-
 tests/tftpserver.pl.in                             |   2 +-
 tests/unit/CMakeLists.txt                          |   2 +-
 tests/unit/Makefile.am                             |   6 +-
 tests/unit/Makefile.inc                            |   7 +-
 tests/unit/{README => README.md}                   |  42 +-
 tests/unit/curlcheck.h                             |   2 +-
 tests/unit/unit1300.c                              |  32 +-
 tests/unit/unit1301.c                              |   4 +-
 tests/unit/unit1302.c                              |   2 +-
 tests/unit/unit1303.c                              |   4 +-
 tests/unit/unit1304.c                              |   4 +-
 tests/unit/unit1305.c                              |   4 +-
 tests/unit/unit1307.c                              |   4 +-
 tests/unit/unit1308.c                              |   4 +-
 tests/unit/unit1309.c                              |   4 +-
 tests/unit/unit1323.c                              |   4 +-
 tests/unit/unit1330.c                              |   2 +-
 tests/unit/unit1394.c                              |   2 +-
 tests/unit/unit1395.c                              |   2 +-
 tests/unit/unit1396.c                              |   4 +-
 tests/unit/unit1397.c                              |   4 +-
 tests/unit/unit1398.c                              |   4 +-
 tests/unit/unit1399.c                              |   4 +-
 tests/unit/unit1600.c                              |   2 +-
 tests/unit/unit1601.c                              |   2 +-
 tests/unit/unit1602.c                              |   6 +-
 tests/unit/unit1603.c                              |   6 +-
 tests/unit/unit1604.c                              |   4 +-
 tests/unit/unit1605.c                              |   2 +-
 tests/unit/unit1606.c                              |   4 +-
 tests/unit/unit1607.c                              |   4 +-
 tests/unit/unit1608.c                              |   2 +-
 tests/unit/unit1609.c                              |   4 +-
 tests/unit/unit1610.c                              |   2 +-
 tests/unit/unit1611.c                              |   2 +-
 tests/unit/unit1612.c                              |   2 +-
 tests/unit/unit1620.c                              |   2 +-
 tests/unit/unit1621.c                              |   4 +-
 tests/unit/unit1650.c                              |   2 +-
 tests/unit/unit1651.c                              |   4 +-
 tests/unit/unit1652.c                              |   4 +-
 tests/unit/unit1653.c                              |  44 +-
 tests/unit/unit1654.c                              |  17 +-
 tests/unit/unit1655.c                              |   2 +-
 tests/unit/unit1660.c                              | 171 +++++
 tests/{curl_test_data.py.in => util.py}            |  35 +-
 tests/valgrind.pm                                  |   2 +-
 tests/valgrind.supp                                |  32 +
 tests/version-scan.pl.in                           |   2 +-
 winbuild/README.md                                 | 132 ++++
 2355 files changed, 14804 insertions(+), 15536 deletions(-)

diff --cc .travis.yml
index db47499fc,b37ac7156..9ce8ee441
--- a/.travis.yml
+++ b/.travis.yml
@@@ -27,231 -33,373 +27,98 @@@ env
    - LD_LIBRARY_PATH=/usr/local/lib
  
  addons:
-     apt:
-         config:
-             retries: true
-         sources: &common_sources
-             - ubuntu-toolchain-r-test
-         packages: &common_packages
-             - cmake
-             - gcc-8
-             - valgrind
-             - libev-dev
-             - libc-ares-dev
-             - g++-8
-             - libstdc++-8-dev
-             - stunnel4
-             - libidn2-0-dev
-             - gnutls-bin
-             - libgnutls28-dev
-             - python-impacket
-             - pax
-             - ncompress
+   apt: &common_apt
+     config:
+       retries: true
+     packages: &common_packages
+     - cmake
+     - valgrind
+     - libev-dev
+     - libc-ares-dev
+     - g++-8
++    - libstdc++-8-dev
+     - stunnel4
+     - libidn2-dev
+     - gnutls-bin
++    - libgnutls28-dev
+     - python-impacket
+     - ninja-build
++    - pax
++    - ncompress
  
- matrix:
-     include:
-         - os: linux
-           compiler: gcc
-           dist: trusty
-           env:
-               - T=normal C="" CHECKSRC=1
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: gcc
-           dist: trusty
-           env:
-               - T=normal C="--enable-mqtt"
-         - os: linux
-           compiler: gcc
-           dist: bionic
-           env:
-               - T=normal C="--disable-verbose" 
CPPFLAGS="-Wno-variadic-macros" NOTESTS=1
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: gcc
-           dist: bionic
-           before_install:
-               # Install and use the current stable release of Go
-               - gimme --list
-               - eval "$(gimme stable)"
-               - gimme --list
-           env:
-               - T=novalgrind C=""
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-           addons:
-               apt:
-                   sources:
-                       - ppa:longsleep/golang-backports
-                       - *common_sources
-                   packages:
-                       - *common_packages
-         - os: linux
-           compiler: gcc
-           dist: xenial
-           env:
-               - T=novalgrind C="--enable-alt-svc" NOTESTS=
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: clang
-           dist: xenial
-           env:
-               - T=debug
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-xenial-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: clang
-           dist: xenial
-           env:
-               - T=debug C="--enable-alt-svc"
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-xenial-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: clang
-           dist: bionic
-           env:
-               - T=debug C="--with-gnutls --without-ssl"
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-bionic-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: gcc
-           dist: trusty
-           env:
-               - T=iconv
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: gcc
-           dist: bionic
-           env:
-               - T=cmake
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: clang
-           dist: bionic
-           env:
-               - T=cmake
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-bionic-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: gcc
-           dist: xenial
-           env:
-               - T=torture
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                   packages:
-                       - *common_packages
-                       - lcov
-         - os: linux
-           compiler: gcc
-           dist: bionic
-           env:
-               - T=distcheck
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-         - os: linux
-           compiler: clang
-           dist: bionic
-           env:
-               - T=fuzzer
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-bionic-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: clang
-           dist: bionic
-           env:
-               - T=tidy
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-bionic-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-                       - clang-tidy-7
-         - os: linux
-           compiler: clang
-           dist: bionic
-           env:
-               - T=scan-build
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-bionic-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           compiler: clang
-           dist: xenial
-           env:
-               - T=debug 
CFLAGS="-fsanitize=address,undefined,signed-integer-overflow 
-fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security 
-Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined 
-fno-sanitize-recover=undefined,integer" LIBS="-ldl -lubsan"
-               - OVERRIDE_CC="CC=clang-7" OVERRIDE_CXX="CXX=clang++-7"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                       - llvm-toolchain-xenial-7
-                   packages:
-                       - *common_packages
-                       - clang-7
-         - os: linux
-           arch: arm64
-           compiler: gcc
-           dist: bionic
-           env:
-               - T=debug C="--enable-alt-svc"
-               - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
-           addons:
-               apt:
-                   sources:
-                       - *common_sources
-                   packages:
-                       - *common_packages
-                       - libev-dev
-                       - libtool
-                       - pkg-config
-                       - zlib1g-dev
+ jobs:
+   include:
+   - env:
 -    - T=normal C="--with-gssapi --with-libssh2" CHECKSRC=1
++    - T=normal C="" CHECKSRC=1
+     - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - krb5-user
 -        - libssh2-1-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=normal C=--with-libssh
 -    # Avoid bionic, its pre-release libssh version triggers deprecation 
warnings.
 -    dist: focal
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - cmake
 -        - valgrind
 -        - libev-dev
 -        - libc-ares-dev
 -        - g++-8
 -        - stunnel4
 -        - libidn2-dev
 -        - gnutls-bin
 -        # The above list is common_packages minus impacket.
 -        - libssh-dev
 -        - ninja-build
 -  - env:
 -    - T=normal C="--enable-ares"
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -  - env:
 -    - T=normal C="--disable-proxy"
+   - env:
+     - T=normal C="--disable-verbose" CPPFLAGS="-Wno-variadic-macros" NOTESTS=1
+     - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=novalgrind BORINGSSL=yes C="--with-ssl=$HOME/boringssl" 
LD_LIBRARY_PATH=/home/travis/boringssl/lib:/usr/local/lib
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    before_install:
 -    - eval "$(gimme stable)"; gimme --list  # Install latest Go (for 
boringssl)
 -  - env:
 -    - T=novalgrind QUICHE="yes" C="--with-ssl=$HOME/quiche/deps/boringssl/src 
--with-quiche=$HOME/quiche/target/release" 
LD_LIBRARY_PATH=$HOME/quiche/target/release:/usr/local/lib
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=novalgrind LIBRESSL=yes C="--with-ssl=$HOME/libressl" 
LD_LIBRARY_PATH=/home/travis/libressl/lib:/usr/local/lib
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -  - env:
 -    - T=novalgrind NGTCP2=yes C="--with-ssl=$HOME/ngbuild 
--with-ngtcp2=$HOME/ngbuild --with-nghttp3=$HOME/ngbuild" NOTESTS=
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=novalgrind NGTCP2=yes GNUTLS=yes C="PKG_CONFIG_PATH=$HOME/ngbuild 
--without-ssl --with-gnutls=$HOME/ngbuild --with-ngtcp2=$HOME/ngbuild 
--with-nghttp3=$HOME/ngbuild" NOTESTS=
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - autogen
 -        - automake
 -        - autopoint
 -        - bison
 -        - gperf
 -        - libgmp-dev
 -        - libopts25-dev
 -        - libp11-kit-dev
 -        - libtasn1-6-dev
 -        - nettle-dev
 -  - env:
 -    - T=debug-wolfssl C="--with-wolfssl --without-ssl"
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=debug OPENSSL3="yes" C="--with-ssl=$HOME/openssl3" 
LD_LIBRARY_PATH=/home/travis/openssl3/lib:/usr/local/lib
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=debug-mesalink C="--with-mesalink --without-ssl" MESALINK=yes
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=debug
+     - &clang OVERRIDE_CC="CC=clang-9" OVERRIDE_CXX="CXX=clang++-9"
+     compiler: clang
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - &clang_packages [*common_packages, clang-9]
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=debug C="--enable-hsts --disable-alt-svc"
+     - *clang
+     compiler: clang
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=debug C="--with-mbedtls --without-ssl"
 -    - *clang
 -    compiler: clang
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - libmbedtls-dev
+   - env:
+     - T=debug C="--with-gnutls --without-ssl"
+     - *clang
+     compiler: clang
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *clang_packages
 -        - libgnutls28-dev
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=debug C="--with-nss --without-ssl" NOTESTS=1 CPPFLAGS="-isystem 
/usr/include/nss"
 -    - *clang
 -    compiler: clang
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *clang_packages
 -        - libnss3-dev
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=iconv
+     - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -  - env:
 -    - T=cmake BORINGSSL=yes QUICHE=yes C="-GNinja -DUSE_QUICHE=1 
-DOPENSSL_ROOT_DIR=$HOME/boringssl -DCURL_BROTLI=1 -DCURL_ZSTD=1"
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    - PKG_CONFIG_PATH="$HOME/quiche/target/release"
 -    before_install:
 -    - eval "$(gimme stable)"; gimme --list  # Install latest Go (for 
boringssl)
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=cmake NGTCP2=yes C="-GNinja -DUSE_NGTCP2=ON -DCURL_BROTLI=1 
-DCURL_ZSTD=1"
 -    - *clang
 -    - PKG_CONFIG_PATH="$HOME/ngbuild/lib/pkgconfig"
 -    compiler: clang
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=torture
+     - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *common_packages
+         - lcov
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - libssh2-1-dev
+   - env:
+     - T=distcheck
+     - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=fuzzer
 -    - *clang
 -    compiler: clang
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=tidy
 -    - *clang
 -    compiler: clang
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *clang_packages
 -        - clang-tidy-9
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=scan-build
+     - *clang
+     compiler: clang
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
+   - env:
+     - T=debug CFLAGS="-fsanitize=address,undefined,signed-integer-overflow 
-fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security 
-Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined 
-fno-sanitize-recover=undefined,integer" LIBS="-ldl -lubsan" TFLAGS=-n
+     - *clang
+     compiler: clang
+     addons:
+       apt:
+         <<: *common_apt
+         packages:
+         - *clang_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -  - env:
 -    - T=debug C="" TFLAGS=-n
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    arch: arm64
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - libev-dev
 -        - libssl-dev
 -        - libtool
 -        - pkg-config
 -        - zlib1g-dev
 -
 -  - env:
 -    - T=debug C="" TFLAGS=-n
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    arch: ppc64le
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - libev-dev
 -        - libssl-dev
 -        - libtool
 -        - pkg-config
 -        - zlib1g-dev
 -
 -  - env:
 -    - T=debug C="" TFLAGS=-n
 -    - OVERRIDE_CC="CC=gcc-8" OVERRIDE_CXX="CXX=g++-8"
 -    arch: s390x
 -    addons:
 -      apt:
 -        <<: *common_apt
 -        packages:
 -        - *common_packages
 -        - libpsl-dev
 -        - libbrotli-dev
 -        - libzstd-dev
 -        - libev-dev
 -        - libssl-dev
 -        - libtool
 -        - pkg-config
 -        - zlib1g-dev
  
  before_install:
  - export "${OVERRIDE_CC-blank=}"
diff --cc CMake/gnurl-config.cmake.in
index 240c3a96e,000000000..aa58ed3b9
mode 100644,000000..100644
--- a/CMake/gnurl-config.cmake.in
+++ b/CMake/gnurl-config.cmake.in
@@@ -1,36 -1,0 +1,36 @@@
 +#***************************************************************************
 +#                                  _   _ ____  _
 +#  Project                     ___| | | |  _ \| |
 +#                             / __| | | | |_) | |
 +#                            | (__| |_| |  _ <| |___
 +#                             \___|\___/|_| \_\_____|
 +#
 +# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +#
 +# This software is licensed as described in the file COPYING, which
 +# you should have received as part of this distribution. The terms
- # are also available at https://curl.haxx.se/docs/copyright.html.
++# are also available at https://curl.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.
 +#
 +###########################################################################
 +@PACKAGE_INIT@
 +
 +include(CMakeFindDependencyMacro)
 +if(@USE_OPENSSL@)
 +  find_dependency(OpenSSL @OPENSSL_VERSION_MAJOR@)
 +endif()
 +if(@USE_GNUTLS@)
 +  find_dependency(GnuTLS @GNUTLS_VERSION_MAJOR@)
 +endif()
 +if(@USE_ZLIB@)
 +  find_dependency(ZLIB @ZLIB_VERSION_MAJOR@)
 +endif()
 +
 +include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
 +check_required_components("@PROJECT_NAME@")
diff --cc CMakeLists.txt
index 687929a79,6a1a6fe8e..8696fee5a
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -45,11 -45,9 +45,12 @@@ include(Macros
  include(CMakeDependentOption)
  include(CheckCCompilerFlag)
  
 -project(CURL C)
 +project(GNURL C)
 +
 +message(WARNING "the curl cmake build system is poorly maintained. Be aware")
 +
- file(STRINGS $GNURL_SOURCE_DIR}/include/gnurl/curlver.h 
CURL_VERSION_H_CONTENTS REGEX "#define LIBCURL_VERSION( |_NUM )")
++file(STRINGS ${GNURL_SOURCE_DIR}/include/gnurl/curlver.h 
CURL_VERSION_H_CONTENTS REGEX "#define LIBCURL_VERSION( |_NUM )")
+ 
 -file(STRINGS ${CURL_SOURCE_DIR}/include/curl/curlver.h 
CURL_VERSION_H_CONTENTS REGEX "#define LIBCURL_VERSION( |_NUM )")
  string(REGEX MATCH "#define LIBCURL_VERSION \"[^\"]*"
    CURL_VERSION ${CURL_VERSION_H_CONTENTS})
  string(REGEX REPLACE "[^\"]+\"" "" CURL_VERSION ${CURL_VERSION})
@@@ -175,57 -173,51 +183,59 @@@ mark_as_advanced(CURL_DISABLE_TFTP
  option(CURL_DISABLE_HTTP "disables HTTP" OFF)
  mark_as_advanced(CURL_DISABLE_HTTP)
  
 -option(CURL_DISABLE_LDAPS "to disable LDAPS" OFF)
 +option(CURL_DISABLE_LDAPS "to disable LDAPS" ON)
  mark_as_advanced(CURL_DISABLE_LDAPS)
  
 -option(CURL_DISABLE_RTSP "to disable RTSP" OFF)
 +option(CURL_DISABLE_RTSP "to disable RTSP" ON)
  mark_as_advanced(CURL_DISABLE_RTSP)
 +
  option(CURL_DISABLE_PROXY "to disable proxy" OFF)
  mark_as_advanced(CURL_DISABLE_PROXY)
 -option(CURL_DISABLE_POP3 "to disable POP3" OFF)
 +
 +option(CURL_DISABLE_POP3 "to disable POP3" ON)
  mark_as_advanced(CURL_DISABLE_POP3)
 -option(CURL_DISABLE_IMAP "to disable IMAP" OFF)
 +
 +option(CURL_DISABLE_IMAP "to disable IMAP" ON)
  mark_as_advanced(CURL_DISABLE_IMAP)
 -option(CURL_DISABLE_SMTP "to disable SMTP" OFF)
 +
 +option(CURL_DISABLE_SMTP "to disable SMTP" ON)
  mark_as_advanced(CURL_DISABLE_SMTP)
 -option(CURL_DISABLE_GOPHER "to disable Gopher" OFF)
 +
 +option(CURL_DISABLE_GOPHER "to disable Gopher" ON)
  mark_as_advanced(CURL_DISABLE_GOPHER)
- option(CURL_ENABLE_MQTT "to enable MQTT" OFF)
- mark_as_advanced(CURL_ENABLE_MQTT)
+ option(CURL_DISABLE_MQTT "to disable MQTT" OFF)
+ mark_as_advanced(CURL_DISABLE_MQTT)
  
  if(HTTP_ONLY)
+   set(CURL_DISABLE_DICT ON)
+   set(CURL_DISABLE_FILE ON)
    set(CURL_DISABLE_FTP ON)
+   set(CURL_DISABLE_GOPHER ON)
+   set(CURL_DISABLE_IMAP ON)
    set(CURL_DISABLE_LDAP ON)
    set(CURL_DISABLE_LDAPS ON)
-   set(CURL_DISABLE_TELNET ON)
-   set(CURL_DISABLE_DICT ON)
-   set(CURL_DISABLE_FILE ON)
-   set(CURL_DISABLE_TFTP ON)
-   set(CURL_DISABLE_RTSP ON)
+   set(CURL_DISABLE_MQTT ON)
    set(CURL_DISABLE_POP3 ON)
-   set(CURL_DISABLE_IMAP ON)
+   set(CURL_DISABLE_RTSP ON)
    set(CURL_DISABLE_SMB ON)
    set(CURL_DISABLE_SMTP ON)
-   set(CURL_DISABLE_GOPHER ON)
+   set(CURL_DISABLE_TELNET ON)
+   set(CURL_DISABLE_TFTP ON)
  endif()
  
+ option(CURL_DISABLE_ALTSVC "to disable alt-svc support" OFF)
+ mark_as_advanced(CURL_DISABLE_ALTSVC)
  option(CURL_DISABLE_COOKIES "to disable cookies support" OFF)
  mark_as_advanced(CURL_DISABLE_COOKIES)
- 
  option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF)
  mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
 +
  option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF)
  mark_as_advanced(CURL_DISABLE_VERBOSE_STRINGS)
 +
  option(ENABLE_IPV6 "Define if you want to enable IPv6 support" ON)
  mark_as_advanced(ENABLE_IPV6)
 +
  if(ENABLE_IPV6 AND NOT WIN32)
    include(CheckStructHasMember)
    check_struct_has_member("struct sockaddr_in6" sin6_addr "netinet/in.h"
@@@ -665,30 -621,27 +671,27 @@@ option(USE_NGHTTP2 "Use Nghttp2 library
  check_library_exists_concat("idn2" idn2_lookup_ul HAVE_LIBIDN2)
  
  # Check for symbol dlopen (same as HAVE_LIBDL)
 -check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN)
 +check_library_exists("${GNURL_LIBS}" dlopen "" HAVE_DLOPEN)
  
- option(CURL_ZLIB "Set to ON to enable building curl with zlib support." ON)
  set(HAVE_LIBZ OFF)
  set(HAVE_ZLIB_H OFF)
  set(USE_ZLIB OFF)
- if(CURL_ZLIB)
-   find_package(ZLIB QUIET)
-   if(ZLIB_FOUND)
-     set(HAVE_ZLIB_H ON)
-     set(HAVE_LIBZ ON)
-     set(USE_ZLIB ON)
- 
-     # Depend on ZLIB via imported targets if supported by the running
-     # version of CMake.  This allows our dependents to get our dependencies
-     # transitively.
-     if(NOT CMAKE_VERSION VERSION_LESS 3.4)
-       list(APPEND GNURL_LIBS ZLIB::ZLIB)
-     else()
-       list(APPEND GNURL_LIBS ${ZLIB_LIBRARIES})
-       include_directories(${ZLIB_INCLUDE_DIRS})
-     endif()
-     list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS})
+ optional_dependency(ZLIB)
+ if(ZLIB_FOUND)
+   set(HAVE_ZLIB_H ON)
+   set(HAVE_LIBZ ON)
+   set(USE_ZLIB ON)
+ 
+   # Depend on ZLIB via imported targets if supported by the running
+   # version of CMake.  This allows our dependents to get our dependencies
+   # transitively.
+   if(NOT CMAKE_VERSION VERSION_LESS 3.4)
 -    list(APPEND CURL_LIBS ZLIB::ZLIB)
++    list(APPEND GNURL_LIBS ZLIB::ZLIB)
+   else()
 -    list(APPEND CURL_LIBS ${ZLIB_LIBRARIES})
++    list(APPEND GNURL_LIBS ${ZLIB_LIBRARIES})
+     include_directories(${ZLIB_INCLUDE_DIRS})
    endif()
+   list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS})
  endif()
  
  option(CURL_BROTLI "Set to ON to enable building curl with brotli support." 
OFF)
@@@ -770,8 -773,9 +773,8 @@@ if(CMAKE_USE_GSSAPI
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GSS_COMPILER_FLAGS}")
      set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} 
${GSS_LINKER_FLAGS}")
      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} 
${GSS_LINKER_FLAGS}")
+     set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} 
${GSS_LINKER_FLAGS}")
 -    list(APPEND CURL_LIBS ${GSS_LIBRARIES})
 -
 +    list(APPEND GNURL_LIBS ${GSS_LIBRARIES})
- 
    else()
      message(WARNING "GSSAPI support has been requested but no supporting 
libraries found. Skipping.")
    endif()
diff --cc Makefile.am
index 75d9ce110,16adc9833..5c4815b2b
--- a/Makefile.am
+++ b/Makefile.am
@@@ -200,9 -327,419 +200,10 @@@ checksrc
        (cd lib && $(MAKE) checksrc)
        (cd src && $(MAKE) checksrc)
        (cd tests && $(MAKE) checksrc)
 -      (cd include/curl && $(MAKE) checksrc)
 +      (cd include/gnurl && $(MAKE) checksrc)
        (cd docs/examples && $(MAKE) checksrc)
+       (cd packages && $(MAKE) checksrc)
  
 -.PHONY: vc-ide
 -
 -vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \
 - $(VC7_SRCVCPROJ_DEPS) $(VC71_LIBVCPROJ_DEPS) $(VC71_SRCVCPROJ_DEPS) \
 - $(VC8_LIBVCPROJ_DEPS) $(VC8_SRCVCPROJ_DEPS) $(VC9_LIBVCPROJ_DEPS) \
 - $(VC9_SRCVCPROJ_DEPS) $(VC10_LIBVCXPROJ_DEPS) $(VC10_SRCVCXPROJ_DEPS) \
 - $(VC11_LIBVCXPROJ_DEPS) $(VC11_SRCVCXPROJ_DEPS) $(VC12_LIBVCXPROJ_DEPS) \
 - $(VC12_SRCVCXPROJ_DEPS) $(VC14_LIBVCXPROJ_DEPS) $(VC14_SRCVCXPROJ_DEPS) \
 - $(VC15_LIBVCXPROJ_DEPS) $(VC15_SRCVCXPROJ_DEPS)
 -      @(win32_lib_srcs='$(LIB_CFILES)'; \
 -      win32_lib_hdrs='$(LIB_HFILES) config-win32.h'; \
 -      win32_lib_rc='$(LIB_RCFILES)'; \
 -      win32_lib_vauth_srcs='$(LIB_VAUTH_CFILES)'; \
 -      win32_lib_vauth_hdrs='$(LIB_VAUTH_HFILES)'; \
 -      win32_lib_vquic_srcs='$(LIB_VQUIC_CFILES)'; \
 -      win32_lib_vquic_hdrs='$(LIB_VQUIC_HFILES)'; \
 -      win32_lib_vssh_srcs='$(LIB_VSSH_CFILES)'; \
 -      win32_lib_vssh_hdrs='$(LIB_VSSH_HFILES)'; \
 -      win32_lib_vtls_srcs='$(LIB_VTLS_CFILES)'; \
 -      win32_lib_vtls_hdrs='$(LIB_VTLS_HFILES)'; \
 -      win32_src_srcs='$(CURL_CFILES)'; \
 -      win32_src_hdrs='$(CURL_HFILES)'; \
 -      win32_src_rc='$(CURL_RCFILES)'; \
 -      win32_src_x_srcs='$(CURLX_CFILES)'; \
 -      win32_src_x_hdrs='$(CURLX_HFILES) ../lib/config-win32.h'; \
 -      \
 -      sorted_lib_srcs=`for file in $$win32_lib_srcs; do echo $$file; done | 
sort`; \
 -      sorted_lib_hdrs=`for file in $$win32_lib_hdrs; do echo $$file; done | 
sort`; \
 -      sorted_lib_vauth_srcs=`for file in $$win32_lib_vauth_srcs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vauth_hdrs=`for file in $$win32_lib_vauth_hdrs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vquic_srcs=`for file in $$win32_lib_vquic_srcs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vquic_hdrs=`for file in $$win32_lib_vquic_hdrs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vssh_srcs=`for file in $$win32_lib_vssh_srcs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vssh_hdrs=`for file in $$win32_lib_vssh_hdrs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vtls_srcs=`for file in $$win32_lib_vtls_srcs; do echo 
$$file; done | sort`; \
 -      sorted_lib_vtls_hdrs=`for file in $$win32_lib_vtls_hdrs; do echo 
$$file; done | sort`; \
 -      sorted_src_srcs=`for file in $$win32_src_srcs; do echo $$file; done | 
sort`; \
 -      sorted_src_hdrs=`for file in $$win32_src_hdrs; do echo $$file; done | 
sort`; \
 -      sorted_src_x_srcs=`for file in $$win32_src_x_srcs; do echo $$file; done 
| sort`; \
 -      sorted_src_x_hdrs=`for file in $$win32_src_x_hdrs; do echo $$file; done 
| sort`; \
 -      \
 -      awk_code='\
 -function gen_element(type, dir, file)\
 -{\
 -  sub(/vauth\//, "", file);\
 -  sub(/vquic\//, "", file);\
 -  sub(/vssh\//, "", file);\
 -  sub(/vtls\//, "", file);\
 -\
 -  spaces="    ";\
 -  if(dir == "lib\\vauth" ||\
 -     dir == "lib\\vquic" ||\
 -     dir == "lib\\vssh"  ||\
 -     dir == "lib\\vtls")\
 -    tabs="                            ";\
 -  else\
 -    tabs="                    ";\
 -\
 -  if(type == "dsp") {\
 -    printf("# Begin Source File\r\n");\
 -    printf("\r\n");\
 -    printf("SOURCE=..\\..\\..\\..\\%s\\%s\r\n", dir, file);\
 -    printf("# End Source File\r\n");\
 -  }\
 -  else if(type == "vcproj1") {\
 -    printf("%s<File\r\n", tabs);\
 -    printf("%s        RelativePath=\"..\\..\\..\\..\\%s\\%s\">\r\n",\
 -           tabs, dir, file);\
 -    printf("%s</File>\r\n", tabs);\
 -  }\
 -  else if(type == "vcproj2") {\
 -    printf("%s<File\r\n", tabs);\
 -    printf("%s        RelativePath=\"..\\..\\..\\..\\%s\\%s\"\r\n",\
 -           tabs, dir, file);\
 -    printf("%s>\r\n", tabs);\
 -    printf("%s</File>\r\n", tabs);\
 -  }\
 -  else if(type == "vcxproj") {\
 -    i = index(file, ".");\
 -    ext = substr(file, i == 0 ? 0 : i + 1);\
 -\
 -    if(ext == "c")\
 -      printf("%s<ClCompile Include=\"..\\..\\..\\..\\%s\\%s\" />\r\n",\
 -             spaces, dir, file);\
 -    else if(ext == "h")\
 -      printf("%s<ClInclude Include=\"..\\..\\..\\..\\%s\\%s\" />\r\n",\
 -             spaces, dir, file);\
 -    else if(ext == "rc")\
 -      printf("%s<ResourceCompile Include=\"..\\..\\..\\..\\%s\\%s\" />\r\n",\
 -      spaces, dir, file);\
 -  }\
 -}\
 -\
 -{\
 -\
 -  if($$0 == "CURL_LIB_C_FILES") {\
 -    split(lib_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_H_FILES") {\
 -    split(lib_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_RC_FILES") {\
 -    split(lib_rc, arr);\
 -    for(val in arr) gen_element(proj_type, "lib", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VAUTH_C_FILES") {\
 -    split(lib_vauth_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vauth", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VAUTH_H_FILES") {\
 -    split(lib_vauth_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vauth", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VQUIC_C_FILES") {\
 -    split(lib_vquic_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vquic", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VQUIC_H_FILES") {\
 -    split(lib_vquic_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vquic", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VSSH_C_FILES") {\
 -    split(lib_vssh_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vssh", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VSSH_H_FILES") {\
 -    split(lib_vssh_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vssh", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VTLS_C_FILES") {\
 -    split(lib_vtls_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vtls", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_LIB_VTLS_H_FILES") {\
 -    split(lib_vtls_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "lib\\vtls", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_SRC_C_FILES") {\
 -    split(src_srcs, arr);\
 -    for(val in arr) gen_element(proj_type, "src", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_SRC_H_FILES") {\
 -    split(src_hdrs, arr);\
 -    for(val in arr) gen_element(proj_type, "src", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_SRC_RC_FILES") {\
 -    split(src_rc, arr);\
 -    for(val in arr) gen_element(proj_type, "src", arr[val]);\
 -  }\
 -  else if($$0 == "CURL_SRC_X_C_FILES") {\
 -    split(src_x_srcs, arr);\
 -    for(val in arr) {\
 -      sub(/..\/lib\//, "", arr[val]);\
 -      gen_element(proj_type, "lib", arr[val]);\
 -    }\
 -  }\
 -  else if($$0 == "CURL_SRC_X_H_FILES") {\
 -    split(src_x_hdrs, arr);\
 -    for(val in arr) {\
 -      sub(/..\/lib\//, "", arr[val]);\
 -      gen_element(proj_type, "lib", arr[val]);\
 -    }\
 -  }\
 -  else\
 -    printf("%s\r\n", $$0);\
 -}';\
 -      \
 -      echo "generating '$(VC6_LIBDSP)'"; \
 -      awk -v proj_type=dsp \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC6_LIBTMPL) > $(VC6_LIBDSP) || { exit 
1; }; \
 -      \
 -      echo "generating '$(VC6_SRCDSP)'"; \
 -      awk -v proj_type=dsp \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC6_SRCTMPL) > $(VC6_SRCDSP) || { exit 
1; }; \
 -      \
 -      echo "generating '$(VC7_LIBVCPROJ)'"; \
 -      awk -v proj_type=vcproj1 \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC7_LIBTMPL) > $(VC7_LIBVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC7_SRCVCPROJ)'"; \
 -      awk -v proj_type=vcproj1 \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC7_SRCTMPL) > $(VC7_SRCVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC71_LIBVCPROJ)'"; \
 -      awk -v proj_type=vcproj1 \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC71_LIBTMPL) > $(VC71_LIBVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC71_SRCVCPROJ)'"; \
 -      awk -v proj_type=vcproj1 \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC71_SRCTMPL) > $(VC71_SRCVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC8_LIBVCPROJ)'"; \
 -      awk -v proj_type=vcproj2 \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC8_LIBTMPL) > $(VC8_LIBVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC8_SRCVCPROJ)'"; \
 -      awk -v proj_type=vcproj2 \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC8_SRCTMPL) > $(VC8_SRCVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC9_LIBVCPROJ)'"; \
 -      awk -v proj_type=vcproj2 \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC9_LIBTMPL) > $(VC9_LIBVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC9_SRCVCPROJ)'"; \
 -      awk -v proj_type=vcproj2 \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC9_SRCTMPL) > $(VC9_SRCVCPROJ) || { 
exit 1; }; \
 -      \
 -      echo "generating '$(VC10_LIBVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC10_LIBTMPL) > $(VC10_LIBVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC10_SRCVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC10_SRCTMPL) > $(VC10_SRCVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC11_LIBVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC11_LIBTMPL) > $(VC11_LIBVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC11_SRCVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC11_SRCTMPL) > $(VC11_SRCVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC12_LIBVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC12_LIBTMPL) > $(VC12_LIBVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC12_SRCVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC12_SRCTMPL) > $(VC12_SRCVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC14_LIBVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC14_LIBTMPL) > $(VC14_LIBVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC14_SRCVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC14_SRCTMPL) > $(VC14_SRCVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC15_LIBVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v lib_srcs="$$sorted_lib_srcs" \
 -              -v lib_hdrs="$$sorted_lib_hdrs" \
 -              -v lib_rc="$$win32_lib_rc" \
 -              -v lib_vauth_srcs="$$sorted_lib_vauth_srcs" \
 -              -v lib_vauth_hdrs="$$sorted_lib_vauth_hdrs" \
 -              -v lib_vquic_srcs="$$sorted_lib_vquic_srcs" \
 -              -v lib_vquic_hdrs="$$sorted_lib_vquic_hdrs" \
 -              -v lib_vssh_srcs="$$sorted_lib_vssh_srcs" \
 -              -v lib_vssh_hdrs="$$sorted_lib_vssh_hdrs" \
 -              -v lib_vtls_srcs="$$sorted_lib_vtls_srcs" \
 -              -v lib_vtls_hdrs="$$sorted_lib_vtls_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC15_LIBTMPL) > $(VC15_LIBVCXPROJ) || 
{ exit 1; }; \
 -      \
 -      echo "generating '$(VC15_SRCVCXPROJ)'"; \
 -      awk -v proj_type=vcxproj \
 -              -v src_srcs="$$sorted_src_srcs" \
 -              -v src_hdrs="$$sorted_src_hdrs" \
 -              -v src_rc="$$win32_src_rc" \
 -              -v src_x_srcs="$$sorted_src_x_srcs" \
 -              -v src_x_hdrs="$$sorted_src_x_hdrs" \
 -              "$$awk_code" $(srcdir)/$(VC15_SRCTMPL) > $(VC15_SRCVCXPROJ) || 
{ exit 1; };)
 -
  tidy:
        (cd src && $(MAKE) tidy)
        (cd lib && $(MAKE) tidy)
diff --cc README.md
index 363fd4929,44c85121a..1479aa36d
--- a/README.md
+++ b/README.md
@@@ -1,8 -1,16 +1,9 @@@
 -![curl logo](https://curl.se/logo/curl-logo.svg)
 +gnurl
 +=====
  
 -[![CII Best 
Practices](https://bestpractices.coreinfrastructure.org/projects/63/badge)](https://bestpractices.coreinfrastructure.org/projects/63)
 -[![Coverity 
passed](https://scan.coverity.com/projects/curl/badge.svg)](https://scan.coverity.com/projects/curl)
 -[![Travis-CI Build 
Status](https://travis-ci.org/curl/curl.svg?branch=master)](https://travis-ci.org/curl/curl)
 -[![AppVeyor Build 
Status](https://ci.appveyor.com/api/projects/status/l1vv31029huhf4g4?svg=true)](https://ci.appveyor.com/project/curlorg/curl)
 -[![Azure DevOps Build 
Status](https://dev.azure.com/daniel0244/curl/_apis/build/status/curl.curl?branchName=master)](https://dev.azure.com/daniel0244/curl/_build/latest?definitionId=1&branchName=master)
 -[![Cirrus Build 
Status](https://api.cirrus-ci.com/github/curl/curl.svg?branch=master)](https://cirrus-ci.com/github/curl/curl)
 -[![Backers on Open 
Collective](https://opencollective.com/curl/backers/badge.svg)](#backers)
 -[![Sponsors on Open 
Collective](https://opencollective.com/curl/sponsors/badge.svg)](#sponsors)
 -[![Language Grade: 
C/C++](https://img.shields.io/lgtm/grade/cpp/g/curl/curl.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/curl/curl/context:cpp)
 -[![Codacy 
Badge](https://api.codacy.com/project/badge/Grade/d11483a0cc5c4ebd9da4ff9f7cd56690)](https://www.codacy.com/app/curl/curl?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=curl/curl&amp;utm_campaign=Badge_Grade)
 -[![Fuzzing 
Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/curl.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:curl)
 +[![Travis-CI Build 
Status](https://travis-ci.org/teknokatze/gnurl.svg?branch=master)](https://travis-ci.org/teknokatze/gnurl)
 +[![Cirrus Build 
Status](https://api.cirrus-ci.com/github/teknokatze/gnurl.svg?branch=master)](https://cirrus-ci.com/github/teknokatze/gnurl)
++![curl logo](https://curl.se/logo/curl-logo.svg)
  
  Curl is a command-line tool for transferring data specified with URL
  syntax. Find out how to use curl by reading [the curl.1 man
@@@ -12,26 -20,26 +13,25 @@@ by reading [the INSTALL document](https
  
  libcurl is the library curl is using to do its job. It is readily available to
  be used by your software. Read [the libcurl.3 man
- page](https://curl.haxx.se/libcurl/c/libcurl.html) to learn how!
+ page](https://curl.se/libcurl/c/libcurl.html) to learn how!
  
- You can find answers to the most frequent questions for curl in [the FAQ 
document](https://curl.haxx.se/docs/faq.html).
 -You can find answers to the most frequent questions we get in [the FAQ
++You can find answers to the most frequent questions for curl in [the FAQ
+ document](https://curl.se/docs/faq.html).
  
- Study [the COPYING file](https://curl.haxx.se/docs/copyright.html) for
- distribution terms and similar. If you distribute curl binaries or other
- binaries that involve libcurl, you might enjoy [the LICENSE-MIXING
- document](https://curl.haxx.se/legal/licmix.html).
+ Study [the COPYING file](https://curl.se/docs/copyright.html) for
+ distribution terms.
  
  ## Contact
  
- For curl, if you have problems, questions, ideas or suggestions, please 
contact us by posting to a suitable [mailing list](https://curl.haxx.se/mail/).
 -If you have problems, questions, ideas or suggestions, please contact us by
 -posting to a suitable [mailing list](https://curl.se/mail/).
++For curl, if you have problems, questions, ideas or suggestions, please 
contact us by posting to a suitable [mailing list](https://curl.se/mail/).
 +For gnurl, if you have problems, questions, ideas or suggestions, please 
contact us by posting to a suitable [mailing 
list](https://gnunet.org/en/engage.html) or bug tracker.
  
- All curl contributors to the project are listed in [the THANKS 
document](https://curl.haxx.se/docs/thanks.html).
 -All contributors to the project are listed in [the THANKS
 -document](https://curl.se/docs/thanks.html).
++All curl contributors to the project are listed in [the THANKS 
document](https://curl.se/docs/thanks.html).
  
  ## Website
  
 -Visit the [curl website](https://curl.se/) for the latest news and
 -downloads.
 +Visit the [gnurl web site](https://gnunet.org/en/gnurl.html/) for the latest 
news and downloads.
- For curl specific information, visit the [curl web 
site](https://curl.haxx.se/).
++For curl specific information, visit the [curl web site](https://curl.se/).
  
  ## Git
  
@@@ -43,21 -51,14 +43,20 @@@ To download the very latest source fro
  
  ## Security problems
  
 -Report suspected security problems via [our HackerOne
 -page](https://hackerone.com/curl) and not in public!
 +gnurl is a fork of curl. Any security problems should first be tested with 
curl.
- In the unlikely case that you suspect a gnurl specific security problem, 
report it to the author of this software (ng0, gnunet.org).
++In the unlikely case that you suspect a gnurl specific security problem, 
report it to the author of this fork software (Nikita, gnunet).
  
  ## Notice
  
 -Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga
 -Tekniska Högskolan. This notice is included here to comply with the
 -distribution terms.
 +gnurl, and therefore Curl contains pieces of source code that is
 +Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is
 +included here to comply with the distribution terms.
 +
 +## Backers
 +
- In the unlikely case anyone wants to sponsor my work, which primarily covers 
NetBSD and GNUnet now, [[click here](https://www.patreon.com/ng0)].
- The continued work on this (micro)fork of curl is financed for by [[Taler 
SA](https://taler.net)].
++In the unlikely case anyone wants to sponsor my work, which primarily covers 
NetBSD and GNUnet now, [[click here](https://www.patreon.com/teknokatze)].
 +
 +## Curl - Please support the development of curl, section below from 
[curl/curl](https://github.com/curl/curl)
  
  ## Backers
  
diff --cc configure.ac
index fb8fe15df,39bdb5ef1..66b4e6635
--- a/configure.ac
+++ b/configure.ac
@@@ -24,7 -24,7 +24,7 @@@ dnl Process this file with autoconf to 
  AC_PREREQ(2.57)
  
  dnl We don't know the version number "statically" so we use a dash here
- AC_INIT([gnurl], [-], [a suitable curl mailing list: 
https://curl.haxx.se/mail/])
 -AC_INIT([curl], [-], [a suitable curl mailing list: https://curl.se/mail/])
++AC_INIT([gnurl], [-], [a suitable curl mailing list: https://curl.se/mail/])
  
  XC_OVR_ZZ50
  XC_OVR_ZZ60
@@@ -169,29 -168,8 +169,35 @@@ curl_verbose_msg="enabled (--disable-ve
      ssl_backends=
  
  
 -enable_altsvc="yes"
 +dnl valgrind for tests -- coredumps all over the place with the
 +dnl valgrind version I here, fixes welcome.
 +AC_MSG_CHECKING(wether to enable valgrind in testsuite)
 +AC_ARG_ENABLE([valgrind],
 +            [AS_HELP_STRING([--enable-valgrind],
 +                            [Enable valgrind for tests])],
 +                            [valgrind=${enableval}],
 +                            [valgrind=no])
 +AC_MSG_RESULT($valgrind)
 +AS_IF([test "x$valgrind" = "xno"],
 +      [AM_CONDITIONAL([VALGRIND],
 +                    false)
 +       AC_DEFINE([VALGRIND],
 +              [0],
 +              [Running tests with -n])
 +       valgrind_msg="no"],
 +      [AM_CONDITIONAL([VALGRIND],
 +                      true)
 +      AC_DEFINE([VALGRIND],
 +                [1],
 +                [Running tests with valgrind])
 +      valgrind_msg="yes"])
 +
++# curl_altsvc_msg="enabled";
++#    ssl_backends=
++#
++#
++# enable_altsvc="yes"
+ 
  dnl
  dnl Save some initial values the user might have provided
  dnl
@@@ -1830,22 -1754,14 +1840,16 @@@ if test -z "$ssl_backends" -o "x$OPT_SS
  
    case "$OPT_SSL" in
    yes)
 +    AC_MSG_ERROR([You must not build gnurl with OpenSSL, use --without-ssl!])
      dnl --with-ssl (without path) used
-     if test x$cross_compiling != xyes; then
-       dnl only do pkg-config magic when not cross-compiling
-       PKGTEST="yes"
-     fi
+     PKGTEST="yes"
      PREFIX_OPENSSL=/usr/local/ssl
      LIB_OPENSSL="$PREFIX_OPENSSL/lib$libsuff"
      ;;
    off)
 +    AC_MSG_ERROR([You must not build gnurl with OpenSSL, use --without-ssl!])
      dnl no --with-ssl option given, just check default places
-     if test x$cross_compiling != xyes; then
-       dnl only do pkg-config magic when not cross-compiling
-       PKGTEST="yes"
-     fi
+     PKGTEST="yes"
      PREFIX_OPENSSL=
      ;;
    *)
@@@ -5298,10 -5264,9 +5371,10 @@@ AC_MSG_NOTICE([Configured to build gnur
    Alt-svc:          ${curl_altsvc_msg}
    HTTP2:            ${curl_h2_msg}
    HTTP3:            ${curl_h3_msg}
-   ESNI:             ${curl_esni_msg}
+   ECH:              ${curl_ech_msg}
    Protocols:        ${SUPPORT_PROTOCOLS}
    Features:         ${SUPPORT_FEATURES}
 +  valgrind tests:   ${valgrind_msg}
  ])
  if test -n "$experimental"; then
   cat >&2 << _EOF
diff --cc docs/Makefile.am
index 820764528,9cf657748..376299811
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@@ -41,9 -45,10 +41,9 @@@ EXTRA_DIST 
   ALTSVC.md                                      \
   BINDINGS.md                                    \
   BUG-BOUNTY.md                                  \
-  BUGS                                           \
+  BUGS.md                                        \
   CHECKSRC.md                                    \
   CIPHERS.md                                     \
 - CMakeLists.txt                                 \
   CODE_OF_CONDUCT.md                             \
   CODE_REVIEW.md                                 \
   CODE_STYLE.md                                  \
@@@ -80,10 -85,12 +80,10 @@@
   SSLCERTS.md                                    \
   THANKS                                         \
   TODO                                           \
-  TheArtOfHttpScripting                          \
+  TheArtOfHttpScripting.md                       \
   VERSIONS.md
  
 -MAN2HTML= roffit $< >$@
 -
 -SUFFIXES = .1 .html .pdf
 +SUFFIXES = .1
  
  # $(abs_builddir) is to disable VPATH when searching for this file, which
  # would otherwise find the copy in $(srcdir) which breaks the $(HUGE)
diff --cc docs/cmdline-opts/page-footer
index de77c4e0c,d1f32a66f..f105eb759
--- a/docs/cmdline-opts/page-footer
+++ b/docs/cmdline-opts/page-footer
@@@ -39,6 -37,9 +39,10 @@@ accesses the target URL through the pro
  The list of host names can also be include numerical IP addresses, and IPv6
  versions should then be given without enclosing brackets.
  
+ IPv6 numerical addresses are compared as strings, so they will only match if
+ the representations are the same: "::1" is the same as "::0:1" but they don't
+ match.
++
  .IP "CURL_SSL_BACKEND <TLS backend>"
  If curl was built with support for "MultiSSL", meaning that it has built-in
  support for more than one TLS backend, this environment variable can be set to
@@@ -275,10 -276,11 +279,10 @@@ is the protocol used for HTTP/3 transfe
  .IP XX
  More error codes will appear here in future releases. The existing ones
  are meant to never change.
 -.SH AUTHORS / CONTRIBUTORS
 +.Sh AUTHORS
  Daniel Stenberg is the main author, but the whole list of contributors is
  found in the separate THANKS file.
 -.SH WWW
 -https://curl.se
 -.SH "SEE ALSO"
 -.BR ftp (1),
 -.BR wget (1)
 +.Sh SEE ALSO
- .Lk https://curl.haxx.se
++.Lk https://curl.se
 +.Xr ftp 1 ,
 +.Xr wget 1
diff --cc docs/examples/.gitignore
index cf5571bbf,f1f0e39cf..45661bb7e
--- a/docs/examples/.gitignore
+++ b/docs/examples/.gitignore
@@@ -1,10 -1,5 +1,11 @@@
 +altsvc
 +http3
 +http3-present
 +imap-authzid
 +pop3-authzid
 +smtp-authzid
  10-at-a-time
+ altsvc
  anyauthput
  certinfo
  chkspeed
diff --cc docs/libcurl/gnurl_easy_cleanup.3
index fd05f44fb,000000000..0411b1809
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_cleanup.3
+++ b/docs/libcurl/gnurl_easy_cleanup.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_cleanup 3 "22 Aug 2007" "libcurl 7.17.0" "libgnurl Manual"
 +.SH NAME
 +curl_easy_cleanup - End a libcurl easy handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "void curl_easy_cleanup(CURL *" handle ");"
 +.SH DESCRIPTION
 +This function must be the last function to call for an easy session. It is the
 +opposite of the \fIcurl_easy_init(3)\fP function and must be called with the
 +same \fIhandle\fP as input that a \fIcurl_easy_init(3)\fP call returned.
 +
 +This might close all connections this handle has used and possibly has kept
 +open until now - unless it was attached to a multi handle while doing the
 +transfers. Don't call this function if you intend to transfer more files,
 +re-using handles is a key to good performance with libcurl.
 +
 +Occasionally you may get your progress callback or header callback called from
 +within \fIcurl_easy_cleanup(3)\fP (if previously set for the handle using
 +\fIcurl_easy_setopt(3)\fP). Like if libcurl decides to shut down the
 +connection and the protocol is of a kind that requires a command/response
 +sequence before disconnect. Examples of such protocols are FTP, POP3 and IMAP.
 +
 +Any use of the \fBhandle\fP after this function has been called and have
 +returned, is illegal. \fIcurl_easy_cleanup(3)\fP kills the handle and all
 +memory associated with it!
 +
 +Passing in a NULL pointer in \fIhandle\fP will make this function return
 +immediately with no action.
 +.SH "OLD TIMES"
 +For libcurl versions before 7.17,: after you've called this function, you can
 +safely remove all the strings you've previously told libcurl to use, as it
 +won't use them anymore now.
 +.SH RETURN VALUE
 +None
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_easy_init "(3), " curl_easy_duphandle "(3), "
 +.BR curl_easy_reset "(3), "
 +.BR curl_multi_cleanup "(3), " curl_multi_remove_handle "(3) "
diff --cc docs/libcurl/gnurl_easy_duphandle.3
index bf413235c,000000000..df5277d2e
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_duphandle.3
+++ b/docs/libcurl/gnurl_easy_duphandle.3
@@@ -1,53 -1,0 +1,53 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_duphandle 3 "19 Sep 2014" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_easy_duphandle - Clone a libcurl session handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "CURL *curl_easy_duphandle(CURL *"handle ");"
 +
 +.SH DESCRIPTION
 +This function will return a new curl handle, a duplicate, using all the
 +options previously set in the input curl \fIhandle\fP. Both handles can
 +subsequently be used independently and they must both be freed with
 +\fIcurl_easy_cleanup(3)\fP.
 +
 +All strings that the input handle has been told to point to (as opposed to
 +copy) with previous calls to \fIcurl_easy_setopt(3)\fP using char * inputs,
 +will be pointed to by the new handle as well. You must therefore make sure to
 +keep the data around until both handles have been cleaned up.
 +
 +The new handle will \fBnot\fP inherit any state information, no connections,
 +no SSL sessions and no cookies. It also will not inherit any share object
 +states or options (it will be made as if \fICURLOPT_SHARE(3)\fP was set to
 +NULL).
 +
 +In multi-threaded programs, this function must be called in a synchronous way,
 +the input handle may not be in use when cloned.
 +.SH RETURN VALUE
 +If this function returns NULL, something went wrong and no valid handle was
 +returned.
 +.SH "SEE ALSO"
 +.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_reset "(3),"
 +.BR curl_global_init "(3)"
diff --cc docs/libcurl/gnurl_easy_escape.3
index 8430ea1c2,000000000..fed95a650
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_escape.3
+++ b/docs/libcurl/gnurl_easy_escape.3
@@@ -1,67 -1,0 +1,68 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_escape 3 "7 April 2006" "libcurl 7.15.4" "libgnurl Manual"
 +.SH NAME
 +curl_easy_escape - URL encodes the given string
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_easy_escape( CURL *" curl ", const char *" string
 +.BI ", int "length " );"
 +.ad
 +.SH DESCRIPTION
 +This function converts the given input \fIstring\fP to a URL encoded string
 +and returns that as a new allocated string. All input characters that are not
 +a-z, A-Z, 0-9, '-', '.', '_' or '~' are converted to their "URL escaped"
 +version (%NN where NN is a two-digit hexadecimal number).
 +
 +If \fIlength\fP is set to 0 (zero), \fIcurl_easy_escape(3)\fP uses strlen() on
- the input \fIstring\fP to find out the size.
++the input \fIstring\fP to find out the size. This function does not accept
++input strings longer than \fBCURL_MAX_INPUT_LENGTH\fP (8 MB).
 +
 +You must \fIcurl_free(3)\fP the returned string when you're done with it.
 +.SH ENCODING
 +libcurl is typically not aware of, nor does it care about, character
 +encodings. \fIcurl_easy_escape(3)\fP encodes the data byte-by-byte into the
 +URL encoded version without knowledge or care for what particular character
 +encoding the application or the receiving server may assume that the data
 +uses.
 +
 +The caller of \fIcurl_easy_escape(3)\fP must make sure that the data passed in
 +to the function is encoded correctly.
 +.SH AVAILABILITY
 +Added in 7.15.4 and replaces the old \fIcurl_escape(3)\fP function.
 +.SH RETURN VALUE
 +A pointer to a null-terminated string or NULL if it failed.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  char *output = curl_easy_escape(curl, "data to convert", 15);
 +  if(output) {
 +    printf("Encoded: %s\\n", output);
 +    curl_free(output);
 +  }
 +}
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_easy_unescape "(3), " curl_free "(3), " RFC 3986
diff --cc docs/libcurl/gnurl_easy_getinfo.3
index c6a338e1c,000000000..105699377
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_getinfo.3
+++ b/docs/libcurl/gnurl_easy_getinfo.3
@@@ -1,283 -1,0 +1,286 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_METHOD
 +Last used HTTP method.
 +See \fICURLINFO_EFFECTIVE_METHOD(3)\fP
 +.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_ERROR
++Detailed proxy error.
++See \fICURLINFO_PROXY_ERROR(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 or 304 HTTP response.
 +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_init.3
index a17400dc5,000000000..af8950038
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_init.3
+++ b/docs/libcurl/gnurl_easy_init.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_init 3 "4 March 2002" "libcurl 7.8.1" "libgnurl Manual"
 +.SH NAME
 +curl_easy_init - Start a libcurl easy session
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "CURL *curl_easy_init( );"
 +.SH DESCRIPTION
 +This function must be the first function to call, and it returns a CURL easy
 +handle that you must use as input to other functions in the easy
 +interface. This call \fBMUST\fP have a corresponding call to
 +\fIcurl_easy_cleanup(3)\fP when the operation is complete.
 +
 +If you did not already call \fIcurl_global_init(3)\fP, \fIcurl_easy_init(3)\fP
 +does it automatically.  This may be lethal in multi-threaded cases, since
 +\fIcurl_global_init(3)\fP is not thread-safe, and it may result in resource
 +problems because there is no corresponding cleanup.
 +
 +You are strongly advised to not allow this automatic behaviour, by calling
 +\fIcurl_global_init(3)\fP yourself properly.  See the description in
 +\fBlibcurl\fP(3) of global environment requirements for details of how to use
 +this function.
 +.SH RETURN VALUE
 +If this function returns NULL, something went wrong and you cannot use the
 +other curl functions.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_easy_cleanup "(3), " curl_global_init "(3), " curl_easy_reset "(3), "
 +.BR curl_easy_perform "(3) "
diff --cc docs/libcurl/gnurl_easy_pause.3
index 6d223f2dd,000000000..3f27639d2
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_pause.3
+++ b/docs/libcurl/gnurl_easy_pause.3
@@@ -1,103 -1,0 +1,103 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_pause 3 "17 Dec 2007" "libcurl 7.18.0" "libgnurl Manual"
 +.SH NAME
 +curl_easy_pause - pause and unpause a connection
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "CURLcode curl_easy_pause(CURL *"handle ", int "bitmask " );"
 +
 +.SH DESCRIPTION
 +Using this function, you can explicitly mark a running connection to get
 +paused, and you can unpause a connection that was previously paused.
 +
 +A connection can be paused by using this function or by letting the read or
 +the write callbacks return the proper magic return code
 +(\fICURL_READFUNC_PAUSE\fP and \fICURL_WRITEFUNC_PAUSE\fP). A write callback
 +that returns pause signals to the library that it couldn't take care of any
 +data at all, and that data will then be delivered again to the callback when
 +the writing is later unpaused.
 +
 +While it may feel tempting, take care and notice that you cannot call this
 +function from another thread. To unpause, you may for example call it from the
 +progress callback (\fICURLOPT_PROGRESSFUNCTION(3)\fP), which gets called at
 +least once per second, even if the connection is paused.
 +
 +When this function is called to unpause reading, the chance is high that you
 +will get your write callback called before this function returns.
 +
 +The \fBhandle\fP argument is of course identifying the handle that operates on
 +the connection you want to pause or unpause.
 +
 +The \fBbitmask\fP argument is a set of bits that sets the new state of the
 +connection. The following bits can be used:
 +.IP CURLPAUSE_RECV
 +Pause receiving data. There will be no data received on this connection until
 +this function is called again without this bit set. Thus, the write callback
 +(\fICURLOPT_WRITEFUNCTION(3)\fP) won't be called.
 +.IP CURLPAUSE_SEND
 +Pause sending data. There will be no data sent on this connection until this
 +function is called again without this bit set. Thus, the read callback
 +(\fICURLOPT_READFUNCTION(3)\fP) won't be called.
 +.IP CURLPAUSE_ALL
 +Convenience define that pauses both directions.
 +.IP CURLPAUSE_CONT
 +Convenience define that unpauses both directions.
 +.SH RETURN VALUE
 +CURLE_OK (zero) means that the option was set properly, and a non-zero return
 +code means something wrong occurred after the new state was set.  See the
 +\fIlibcurl-errors(3)\fP man page for the full list with descriptions.
 +.SH LIMITATIONS
 +The pausing of transfers does not work with protocols that work without
 +network connectivity, like FILE://. Trying to pause such a transfer, in any
 +direction, will cause problems in the worst case or an error in the best case.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.18.0. Before this version, there was no
 +explicit support for pausing transfers.
 +.SH "USAGE WITH THE MULTI-SOCKET INTERFACE"
 +Before libcurl 7.32.0, when a specific handle was unpaused with this function,
 +there was no particular forced rechecking or similar of the socket's state,
 +which made the continuation of the transfer get delayed until next
 +multi-socket call invoke or even longer. Alternatively, the user could
 +forcibly call for example \fIcurl_multi_socket_all(3)\fP - with a rather hefty
 +performance penalty.
 +
 +Starting in libcurl 7.32.0, unpausing a transfer will schedule a timeout
 +trigger for that handle 1 millisecond into the future, so that a
 +curl_multi_socket_action( ... CURL_SOCKET_TIMEOUT) can be used immediately
 +afterwards to get the transfer going again as desired.
 +.SH "MEMORY USE"
 +When pausing a read by returning the magic return code from a write callback,
 +the read data is already in libcurl's internal buffers so it'll have to keep
 +it in an allocated buffer until the reading is again unpaused using this
 +function.
 +
 +If the downloaded data is compressed and is asked to get uncompressed
 +automatically on download, libcurl will continue to uncompress the entire
 +downloaded chunk and it will cache the data uncompressed. This has the side-
 +effect that if you download something that is compressed a lot, it can result
 +in a very large data amount needing to be allocated to save the data during
 +the pause. This said, you should probably consider not using paused reading if
 +you allow libcurl to uncompress data automatically.
 +.SH "SEE ALSO"
 +.BR curl_easy_cleanup "(3), " curl_easy_reset "(3)"
diff --cc docs/libcurl/gnurl_easy_perform.3
index 36c6675f0,000000000..6e1ea6f37
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_perform.3
+++ b/docs/libcurl/gnurl_easy_perform.3
@@@ -1,74 -1,0 +1,74 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_perform 3 "5 Mar 2001" "libcurl 7.7" "libgnurl Manual"
 +.SH NAME
 +curl_easy_perform - perform a blocking file transfer
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_easy_perform(CURL *" easy_handle ");"
 +.ad
 +.SH DESCRIPTION
 +Invoke this function after \fIcurl_easy_init(3)\fP and all the
 +\fIcurl_easy_setopt(3)\fP calls are made, and will perform the transfer as
 +described in the options. It must be called with the same \fBeasy_handle\fP as
 +input as the \fIcurl_easy_init(3)\fP call returned.
 +
 +\fIcurl_easy_perform(3)\fP performs the entire request in a blocking manner
 +and returns when done, or if it failed. For non-blocking behavior, see
 +\fIcurl_multi_perform(3)\fP.
 +
 +You can do any amount of calls to \fIcurl_easy_perform(3)\fP while using the
 +same \fBeasy_handle\fP. If you intend to transfer more than one file, you are
 +even encouraged to do so. libcurl will then attempt to re-use the same
 +connection for the following transfers, thus making the operations faster,
 +less CPU intense and using less network resources. Just note that you will
 +have to use \fIcurl_easy_setopt(3)\fP between the invokes to set options for
 +the following curl_easy_perform.
 +
 +You must never call this function simultaneously from two places using the
 +same \fBeasy_handle\fP. Let the function return first before invoking it
 +another time. If you want parallel transfers, you must use several curl
 +easy_handles.
 +
 +While the \fBeasy_handle\fP is added to a multi handle, it cannot be used by
 +\fIcurl_easy_perform(3)\fP.
 +.SH RETURN VALUE
 +CURLE_OK (0) means everything was ok, non-zero means an error occurred as
 +.I <gnurl/curl.h>
 +defines - see \fIlibcurl-errors(3)\fP. If the \fICURLOPT_ERRORBUFFER(3)\fP was
 +set with \fIcurl_easy_setopt(3)\fP there will be a readable error message in
 +the error buffer when non-zero is returned.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
 +.BR curl_multi_add_handle "(3), " curl_multi_perform "(3), "
 +.BR libcurl-errors "(3), "
diff --cc docs/libcurl/gnurl_easy_recv.3
index d5127757f,000000000..abcc97457
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_recv.3
+++ b/docs/libcurl/gnurl_easy_recv.3
@@@ -1,84 -1,0 +1,84 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_recv 3 "29 April 2008" "libcurl 7.18.2" "libgnurl Manual"
 +.SH NAME
 +curl_easy_recv - receives raw data on an "easy" connection
 +.SH SYNOPSIS
 +.B #include <gnurl/easy.h>
 +.sp
 +.BI "CURLcode curl_easy_recv( CURL *" curl ", void *" buffer ","
 +.BI "size_t " buflen ", size_t *" n ");"
 +.ad
 +.SH DESCRIPTION
 +This function receives raw data from the established connection. You may use
 +it together with \fIcurl_easy_send(3)\fP to implement custom protocols using
 +libcurl. This functionality can be particularly useful if you use proxies
 +and/or SSL encryption: libcurl will take care of proxy negotiation and
 +connection set-up.
 +
 +\fBbuffer\fP is a pointer to your buffer that will get the received
 +data. \fBbuflen\fP is the maximum amount of data you can get in that
 +buffer. The variable \fBn\fP points to will receive the number of received
 +bytes.
 +
 +To establish the connection, set \fICURLOPT_CONNECT_ONLY(3)\fP option before
 +calling \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP. Note that
 +\fIcurl_easy_recv(3)\fP does not work on connections that were created without
 +this option.
 +
 +The call will return \fBCURLE_AGAIN\fP if there is no data to read - the
 +socket is used in non-blocking mode internally. When \fBCURLE_AGAIN\fP is
 +returned, use your operating system facilities like \fIselect(2)\fP to wait
 +for data. The socket may be obtained using \fIcurl_easy_getinfo(3)\fP with
 +\fICURLINFO_ACTIVESOCKET(3)\fP.
 +
 +Wait on the socket only if \fIcurl_easy_recv(3)\fP returns \fBCURLE_AGAIN\fP.
 +The reason for this is libcurl or the SSL library may internally cache some
 +data, therefore you should call \fIcurl_easy_recv(3)\fP until all data is
 +read which would include any cached data.
 +
 +Furthermore if you wait on the socket and it tells you there is data to read,
 +\fIcurl_easy_recv(3)\fP may return \fBCURLE_AGAIN\fP if the only data that was
 +read was for internal SSL processing, and no other data is available.
 +
 +.SH AVAILABILITY
 +Added in 7.18.2.
 +.SH RETURN VALUE
 +On success, returns \fBCURLE_OK\fP, stores the received data into
 +\fBbuffer\fP, and the number of bytes it actually read into \fB*n\fP.
 +
 +On failure, returns the appropriate error code.
 +
 +The function may return \fBCURLE_AGAIN\fP. In this case, use your operating
 +system facilities to wait until data can be read, and retry.
 +
 +Reading exactly 0 bytes indicates a closed connection.
 +
 +If there's no socket available to use from the previous transfer, this 
function
 +returns \fBCURLE_UNSUPPORTED_PROTOCOL\fP.
 +.SH EXAMPLE
 +See \fBsendrecv.c\fP in \fBdocs/examples\fP directory for usage example.
 +.SH "SEE ALSO"
 +.BR curl_easy_setopt "(3), " curl_easy_perform "(3), "
 +.BR curl_easy_getinfo "(3), "
 +.BR curl_easy_send "(3) "
diff --cc docs/libcurl/gnurl_easy_reset.3
index 5bf6ddf9a,000000000..05b7b069f
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_reset.3
+++ b/docs/libcurl/gnurl_easy_reset.3
@@@ -1,44 -1,0 +1,44 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_reset 3 "31 July 2004" "libcurl 7.12.1" "libgnurl Manual"
 +.SH NAME
 +curl_easy_reset - reset all options of a libcurl session handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "void curl_easy_reset(CURL *"handle ");"
 +
 +.SH DESCRIPTION
 +Re-initializes all options previously set on a specified CURL handle to the
 +default values. This puts back the handle to the same state as it was in when
 +it was just created with \fIcurl_easy_init(3)\fP.
 +
 +It does not change the following information kept in the handle: live
 +connections, the Session ID cache, the DNS cache, the cookies, the shares or
 +the alt-svc cache.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.12.1
 +.SH RETURN VALUE
 +Nothing
 +.SH "SEE ALSO"
 +.BR curl_easy_init "(3)," curl_easy_cleanup "(3)," curl_easy_setopt "(3),"
 +.BR curl_easy_duphandle "(3)"
diff --cc docs/libcurl/gnurl_easy_send.3
index 08c0671b0,000000000..91c1324d4
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_send.3
+++ b/docs/libcurl/gnurl_easy_send.3
@@@ -1,75 -1,0 +1,75 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_send 3 "29 April 2008" "libcurl 7.18.2" "libgnurl Manual"
 +.SH NAME
 +curl_easy_send - sends raw data over an "easy" connection
 +.SH SYNOPSIS
 +.B #include <gnurl/easy.h>
 +.sp
 +.BI "CURLcode curl_easy_send( CURL *" curl ", const void *" buffer ","
 +.BI " size_t " buflen ", size_t *" n ");"
 +.ad
 +.SH DESCRIPTION
 +This function sends arbitrary data over the established connection. You may
 +use it together with \fIcurl_easy_recv(3)\fP to implement custom protocols
 +using libcurl. This functionality can be particularly useful if you use
 +proxies and/or SSL encryption: libcurl will take care of proxy negotiation and
 +connection set-up.
 +
 +\fBbuffer\fP is a pointer to the data of length \fBbuflen\fP that you want 
sent.
 +The variable \fBn\fP points to will receive the number of sent bytes.
 +
 +To establish the connection, set \fICURLOPT_CONNECT_ONLY(3)\fP option before
 +calling \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP. Note that
 +\fIcurl_easy_send(3)\fP will not work on connections that were created without
 +this option.
 +
 +The call will return \fBCURLE_AGAIN\fP if it's not possible to send data right
 +now - the socket is used in non-blocking mode internally. When
 +\fBCURLE_AGAIN\fP is returned, use your operating system facilities like
 +\fIselect(2)\fP to wait until the socket is writable. The socket may be
 +obtained using \fIcurl_easy_getinfo(3)\fP with \fICURLINFO_ACTIVESOCKET(3)\fP.
 +
 +Furthermore if you wait on the socket and it tells you it's writable,
 +\fIcurl_easy_send(3)\fP may return \fBCURLE_AGAIN\fP if the only data that was
 +sent was for internal SSL processing, and no other data could be sent.
 +
 +.SH AVAILABILITY
 +Added in 7.18.2.
 +.SH RETURN VALUE
 +On success, returns \fBCURLE_OK\fP and stores the number of bytes actually
 +sent into \fB*n\fP. Note that this may very well be less than the amount you
 +wanted to send.
 +
 +On failure, returns the appropriate error code.
 +
 +This function may return \fBCURLE_AGAIN\fP. In this case, use your operating
 +system facilities to wait until the socket is writable, and retry.
 +
 +If there's no socket available to use from the previous transfer, this 
function
 +returns \fBCURLE_UNSUPPORTED_PROTOCOL\fP.
 +.SH EXAMPLE
 +See \fBsendrecv.c\fP in \fBdocs/examples\fP directory for usage example.
 +.SH "SEE ALSO"
 +.BR curl_easy_setopt "(3), " curl_easy_perform "(3), " curl_easy_getinfo 
"(3), "
 +.BR curl_easy_recv "(3) "
diff --cc docs/libcurl/gnurl_easy_setopt.3
index 6d6e3f842,000000000..848981927
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_setopt.3
+++ b/docs/libcurl/gnurl_easy_setopt.3
@@@ -1,663 -1,0 +1,681 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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.
++read up on. This function does not accept input strings longer than
++\fBCURL_MAX_INPUT_LENGTH\fP (8 MB).
 +
 +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_HSTS
++Set HSTS cache file. See \fICURLOPT_HSTS(3)\fP
++.IP CURLOPT_HSTS_CTRL
++Enable HSTS. See \fICURLOPT_HSTS_CTRL(3)\fP
++.IP CURLOPT_HSTSREADFUNCTION
++Set HSTS read callback. See \fICURLOPT_HSTSREADFUNCTION(3)\fP
++.IP CURLOPT_HSTSREADDATA
++Pass pointer to the HSTS read callback. See \fICURLOPT_HSTSREADDATA(3)\fP
++.IP CURLOPT_HSTSWRITEFUNCTION
++Set HSTS write callback. See \fICURLOPT_HSTSWRITEFUNCTION(3)\fP
++.IP CURLOPT_HSTSWRITEDATA
++Pass pointer to the HSTS write callback. See \fICURLOPT_HSTSWRITEDATA(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
 +.IP CURLOPT_MAIL_RCPT_ALLLOWFAILS
 +Allow RCPT TO command to fail for some recipients. See 
\fICURLOPT_MAIL_RCPT_ALLLOWFAILS(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_SSLCERT_BLOB
 +Client cert memory buffer. See \fICURLOPT_SSLCERT_BLOB(3)\fP
 +.IP CURLOPT_PROXY_SSLCERT
 +Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP
 +.IP CURLOPT_PROXY_SSLCERT_BLOB
 +Proxy client cert memory buffer. See \fICURLOPT_PROXY_SSLCERT_BLOB(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_SSLKEY_BLOB
 +Client key memory buffer. See \fICURLOPT_SSLKEY_BLOB(3)\fP
 +.IP CURLOPT_PROXY_SSLKEY
 +Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP
 +.IP CURLOPT_PROXY_SSLKEY_BLOB
 +Proxy client key. See \fICURLOPT_PROXY_SSLKEY_BLOB(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_EC_CURVES
++Set key exchange curves. See \fICURLOPT_SSL_EC_CURVES(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_ISSUERCERT_BLOB
 +Issuer certificate memory buffer. See \fICURLOPT_ISSUERCERT_BLOB(3)\fP
 +.IP CURLOPT_PROXY_ISSUERCERT
 +Proxy issuer certificate. See \fICURLOPT_PROXY_ISSUERCERT(3)\fP
 +.IP CURLOPT_PROXY_ISSUERCERT_BLOB
 +Proxy issuer certificate memory buffer. See 
\fICURLOPT_PROXY_ISSUERCERT_BLOB(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.
 +
 +Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise
 +\fIcurl_easy_setopt(3)\fP returns \fBCURLE_BAD_FUNCTION_ARGUMENT\fP (added in
 +7.65.0).
 +
++\fBCURLE_BAD_FUNCTION_ARGUMENT\fP is returned when the argument to an option
++is invalid, like perhaps out of range.a
++
 +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";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://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_easy_strerror.3
index ec49d2cc0,000000000..5463f3830
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_strerror.3
+++ b/docs/libcurl/gnurl_easy_strerror.3
@@@ -1,40 -1,0 +1,40 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_strerror 3 "26 Apr 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_easy_strerror - return string describing error code
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +const char *curl_easy_strerror(CURLcode errornum);
 +.SH DESCRIPTION
 +The \fIcurl_easy_strerror(3)\fP function returns a string describing the
 +CURLcode error code passed in the argument \fIerrornum\fP.
 +
 +Typically applications also appreciate \fICURLOPT_ERRORBUFFER(3)\fP for more
 +specific error descriptions generated at run-time.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.12.0
 +.SH RETURN VALUE
 +A pointer to a null-terminated string.
 +.SH "SEE ALSO"
 +.BR libcurl-errors "(3), " curl_multi_strerror "(3), " curl_share_strerror 
"(3)"
diff --cc docs/libcurl/gnurl_easy_unescape.3
index 9841b4435,000000000..a997f2ef8
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_unescape.3
+++ b/docs/libcurl/gnurl_easy_unescape.3
@@@ -1,54 -1,0 +1,54 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_unescape 3 "7 April 2006" "libcurl 7.15.4" "libgnurl Manual"
 +.SH NAME
 +curl_easy_unescape - URL decodes the given string
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_easy_unescape( CURL *" curl ", const char *" url
 +.BI ", int "inlength ", int *" outlength " );"
 +.ad
 +.SH DESCRIPTION
 +This function converts the given URL encoded input string to a "plain string"
 +and returns that in an allocated memory area. All input characters that are
 +URL encoded (%XX where XX is a two-digit hexadecimal number) are converted to
 +their binary versions.
 +
 +If the \fBlength\fP argument is set to 0 (zero), \fIcurl_easy_unescape(3)\fP
 +will use strlen() on the input \fIurl\fP string to find out the size.
 +
 +If \fBoutlength\fP is non-NULL, the function will write the length of the
 +returned string in the integer it points to. This allows an escaped string
 +containing %00 to still get used properly after unescaping. Since this is a
 +pointer to an \fIint\fP type, it can only return a value up to INT_MAX so no
 +longer string can be unescaped if the string length is returned in this
 +parameter.
 +
 +You must \fIcurl_free(3)\fP the returned string when you're done with it.
 +.SH AVAILABILITY
 +Added in 7.15.4 and replaces the old \fIcurl_unescape(3)\fP function.
 +.SH RETURN VALUE
 +A pointer to a null-terminated string or NULL if it failed.
 +.SH "SEE ALSO"
 +.BR curl_easy_escape "(3), " curl_free "(3)," RFC 3986
diff --cc docs/libcurl/gnurl_easy_upkeep.3
index 761902381,000000000..9437959d8
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_easy_upkeep.3
+++ b/docs/libcurl/gnurl_easy_upkeep.3
@@@ -1,77 -1,0 +1,77 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_upkeep 3 "31 Oct 2018" "libcurl 7.62.0" "libgnurl Manual"
 +.SH NAME
 +curl_easy_upkeep - Perform any connection upkeep checks.
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.BI "CURLcode curl_easy_upkeep(CURL *" handle ");"
 +.SH DESCRIPTION
 +
 +Some protocols have "connection upkeep" mechanisms. These mechanisms usually
 +send some traffic on existing connections in order to keep them alive; this
 +can prevent connections from being closed due to overzealous firewalls, for
 +example.
 +
 +Currently the only protocol with a connection upkeep mechanism is HTTP/2: when
 +the connection upkeep interval is exceeded and \fIcurl_easy_upkeep(3)\fP
 +is called, an HTTP/2 PING frame is sent on the connection.
 +
 +This function must be explicitly called in order to perform the upkeep work.
 +The connection upkeep interval is set with
 +\fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP.
 +
 +.SH AVAILABILITY
 +Added in 7.62.0.
 +.SH RETURN VALUE
 +On success, returns \fBCURLE_OK\fP.
 +
 +On failure, returns the appropriate error code.
 +
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  /* Make a connection to an HTTP/2 server. */
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Set the interval to 30000ms / 30s */
 +  curl_easy_setopt(curl, CURLOPT_UPKEEP_INTERVAL_MS, 30000L);
 +
 +  curl_easy_perform(curl);
 +
 +  /* Perform more work here. */
 +
 +  /* While the connection is being held open, curl_easy_upkeep() can be
 +     called. If curl_easy_upkeep() is called and the time since the last
 +     upkeep exceeds the interval, then an HTTP/2 PING is sent. */
 +  curl_easy_upkeep(curl);
 +
 +  /* Perform more work here. */
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +
 +.fi
diff --cc docs/libcurl/gnurl_escape.3
index c65392801,000000000..3a28d4fa4
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_escape.3
+++ b/docs/libcurl/gnurl_escape.3
@@@ -1,48 -1,0 +1,48 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_escape 3 "6 March 2002" "libcurl 7.9" "libgnurl Manual"
 +.SH NAME
 +curl_escape - URL encodes the given string
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_escape( const char *" url ", int "length " );"
 +.ad
 +.SH DESCRIPTION
 +Obsolete function. Use \fIcurl_easy_escape(3)\fP instead!
 +
 +This function will convert the given input string to an URL encoded string and
 +return that as a new allocated string. All input characters that are not a-z,
 +A-Z or 0-9 will be converted to their "URL escaped" version (%NN where NN is a
 +two-digit hexadecimal number).
 +
 +If the 'length' argument is set to 0, curl_escape() will use strlen() on the
 +input 'url' string to find out the size.
 +
 +You must \fIcurl_free(3)\fP the returned string when you're done with it.
 +.SH AVAILABILITY
 +Since 7.15.4, \fIcurl_easy_escape(3)\fP should be used. This function will
 +be removed in a future release.
 +.SH RETURN VALUE
 +A pointer to a null-terminated string or NULL if it failed.
 +.SH "SEE ALSO"
 +.BR curl_unescape "(3), " curl_free "(3), " RFC 2396
diff --cc docs/libcurl/gnurl_formadd.3
index e3a48e49d,000000000..581d551d0
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_formadd.3
+++ b/docs/libcurl/gnurl_formadd.3
@@@ -1,267 -1,0 +1,267 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_formadd 3 "24 June 2002" "libcurl 7.9.8" "libgnurl Manual"
 +.SH NAME
 +curl_formadd - add a section to a multipart/formdata HTTP POST
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLFORMcode curl_formadd(struct curl_httppost ** " firstitem,
 +.BI "struct curl_httppost ** " lastitem, " ...);"
 +.ad
 +.SH DESCRIPTION
 +This function is deprecated. Do not use! See \fIcurl_mime_init(3)\fP instead!
 +
 +curl_formadd() is used to append sections when building a multipart/formdata
 +HTTP POST (sometimes referred to as RFC2388-style posts). Append one section
 +at a time until you've added all the sections you want included and then you
 +pass the \fIfirstitem\fP pointer as parameter to \fICURLOPT_HTTPPOST(3)\fP.
 +\fIlastitem\fP is set after each \fIcurl_formadd(3)\fP call and on repeated
 +invokes it should be left as set to allow repeated invokes to find the end of
 +the list faster.
 +
 +After the \fIlastitem\fP pointer follow the real arguments.
 +
 +The pointers \fIfirstitem\fP and \fIlastitem\fP should both be pointing to
 +NULL in the first call to this function. All list-data will be allocated by
 +the function itself. You must call \fIcurl_formfree(3)\fP on the
 +\fIfirstitem\fP after the form post has been done to free the resources.
 +
 +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.
 +
 +First, there are some basics you need to understand about multipart/formdata
 +posts. Each part consists of at least a NAME and a CONTENTS part. If the part
 +is made for file upload, there are also a stored CONTENT-TYPE and a FILENAME.
 +Below, we'll discuss what options you use to set these properties in the
 +parts you want to add to your post.
 +
 +The options listed first are for making normal parts. The options from
 +\fICURLFORM_FILE\fP through \fICURLFORM_BUFFERLENGTH\fP are for file upload
 +parts.
 +.SH OPTIONS
 +.IP CURLFORM_COPYNAME
 +followed by a string which provides the \fIname\fP of this part. libcurl
 +copies the string so your application doesn't need to keep it around after
 +this function call. If the name isn't NUL-terminated, you must set its length
 +with \fBCURLFORM_NAMELENGTH\fP. The \fIname\fP is not allowed to contain
 +zero-valued bytes. The copied data will be freed by \fIcurl_formfree(3)\fP.
 +.IP CURLFORM_PTRNAME
 +followed by a string which provides the \fIname\fP of this part. libcurl
 +will use the pointer and refer to the data in your application, so you
 +must make sure it remains until curl no longer needs it. If the name
 +isn't NUL-terminated, you must set its length with \fBCURLFORM_NAMELENGTH\fP.
 +The \fIname\fP is not allowed to contain zero-valued bytes.
 +.IP CURLFORM_COPYCONTENTS
 +followed by a pointer to the contents of this part, the actual data
 +to send away. libcurl copies the provided data, so your application doesn't
 +need to keep it around after this function call. If the data isn't null
 +terminated, or if you'd like it to contain zero bytes, you must
 +set the length of the name with \fBCURLFORM_CONTENTSLENGTH\fP. The copied
 +data will be freed by \fIcurl_formfree(3)\fP.
 +.IP CURLFORM_PTRCONTENTS
 +followed by a pointer to the contents of this part, the actual data
 +to send away. libcurl will use the pointer and refer to the data in your
 +application, so you must make sure it remains until curl no longer needs it.
 +If the data isn't NUL-terminated, or if you'd like it to contain zero bytes,
 +you must set its length  with \fBCURLFORM_CONTENTSLENGTH\fP.
 +.IP CURLFORM_CONTENTLEN
 +followed by a curl_off_t value giving the length of the contents. Note that
 +for \fICURLFORM_STREAM\fP contents, this option is mandatory.
 +
 +If you pass a 0 (zero) for this option, libcurl will instead do a strlen() on
 +the contents to figure out the size. If you really want to send a zero byte
 +content then you must make sure strlen() on the data pointer returns zero.
 +
 +(Option added in 7.46.0)
 +.IP CURLFORM_CONTENTSLENGTH
 +(This option is deprecated. Use \fICURLFORM_CONTENTLEN\fP instead!)
 +
 +followed by a long giving the length of the contents. Note that for
 +\fICURLFORM_STREAM\fP contents, this option is mandatory.
 +
 +If you pass a 0 (zero) for this option, libcurl will instead do a strlen() on
 +the contents to figure out the size. If you really want to send a zero byte
 +content then you must make sure strlen() on the data pointer returns zero.
 +.IP CURLFORM_FILECONTENT
 +followed by a filename, causes that file to be read and its contents used
 +as data in this part. This part does \fInot\fP automatically become a file
 +upload part simply because its data was read from a file.
 +
 +The specified file needs to kept around until the associated transfer is done.
 +.IP CURLFORM_FILE
 +followed by a filename, makes this part a file upload part. It sets the
 +\fIfilename\fP field to the basename of the provided filename, it reads the
 +contents of the file and passes them as data and sets the content-type if the
 +given file match one of the internally known file extensions.  For
 +\fBCURLFORM_FILE\fP the user may send one or more files in one part by
 +providing multiple \fBCURLFORM_FILE\fP arguments each followed by the filename
 +(and each \fICURLFORM_FILE\fP is allowed to have a
 +\fICURLFORM_CONTENTTYPE\fP).
 +
 +The given upload file has to exist in its full in the file system already when
 +the upload starts, as libcurl needs to read the correct file size beforehand.
 +
 +The specified file needs to kept around until the associated transfer is done.
 +.IP CURLFORM_CONTENTTYPE
 +is used in combination with \fICURLFORM_FILE\fP. Followed by a pointer to a
 +string which provides the content-type for this part, possibly instead of an
 +internally chosen one.
 +.IP CURLFORM_FILENAME
 +is used in combination with \fICURLFORM_FILE\fP. Followed by a pointer to a
 +string, it tells libcurl to use the given string as the \fIfilename\fP in the
 +file upload part instead of the actual file name.
 +.IP CURLFORM_BUFFER
 +is used for custom file upload parts without use of \fICURLFORM_FILE\fP.  It
 +tells libcurl that the file contents are already present in a buffer.  The
 +parameter is a string which provides the \fIfilename\fP field in the content
 +header.
 +.IP CURLFORM_BUFFERPTR
 +is used in combination with \fICURLFORM_BUFFER\fP. The parameter is a pointer
 +to the buffer to be uploaded. This buffer must not be freed until after
 +\fIcurl_easy_cleanup(3)\fP is called. You must also use
 +\fICURLFORM_BUFFERLENGTH\fP to set the number of bytes in the buffer.
 +.IP CURLFORM_BUFFERLENGTH
 +is used in combination with \fICURLFORM_BUFFER\fP. The parameter is a
 +long which gives the length of the buffer.
 +.IP CURLFORM_STREAM
 +Tells libcurl to use the \fICURLOPT_READFUNCTION(3)\fP callback to get
 +data. The parameter you pass to \fICURLFORM_STREAM\fP is the pointer passed on
 +to the read callback's fourth argument. If you want the part to look like a
 +file upload one, set the \fICURLFORM_FILENAME\fP parameter as well. Note that
 +when using \fICURLFORM_STREAM\fP, \fICURLFORM_CONTENTSLENGTH\fP must also be
 +set with the total expected length of the part unless the formpost is sent
 +chunked encoded. (Option added in libcurl 7.18.2)
 +.IP CURLFORM_ARRAY
 +Another possibility to send options to curl_formadd() is the
 +\fBCURLFORM_ARRAY\fP option, that passes a struct curl_forms array pointer as
 +its value. Each curl_forms structure element has a CURLformoption and a char
 +pointer. The final element in the array must be a CURLFORM_END. All available
 +options can be used in an array, except the CURLFORM_ARRAY option itself!  The
 +last argument in such an array must always be \fBCURLFORM_END\fP.
 +.IP CURLFORM_CONTENTHEADER
 +specifies extra headers for the form POST section.  This takes a curl_slist
 +prepared in the usual way using \fBcurl_slist_append\fP and appends the list
 +of headers to those libcurl automatically generates. The list must exist while
 +the POST occurs, if you free it before the post completes you may experience
 +problems.
 +
 +When you've passed the HttpPost pointer to \fIcurl_easy_setopt(3)\fP (using
 +the \fICURLOPT_HTTPPOST(3)\fP option), you must not free the list until after
 +you've called \fIcurl_easy_cleanup(3)\fP for the curl handle.
 +
 +See example below.
 +.SH AVAILABILITY
 +Deprecated in 7.56.0. Before this release, field names were allowed to
 +contain zero-valued bytes. The pseudo-filename "-" to read stdin is
 +discouraged although still supported, but data is not read before being
 +actually sent: the effective data size can then not be automatically
 +determined, resulting in a chunked encoding transfer. Backslashes and
 +double quotes in field and file names are now escaped before transmission.
 +.SH RETURN VALUE
 +0 means everything was ok, non-zero means an error occurred corresponding
 +to a CURL_FORMADD_* constant defined in
 +.I <gnurl/curl.h>
 +.SH EXAMPLE
 +.nf
 +
 + struct curl_httppost* post = NULL;
 + struct curl_httppost* last = NULL;
 + char namebuffer[] = "name buffer";
 + long namelength = strlen(namebuffer);
 + char buffer[] = "test buffer";
 + char htmlbuffer[] = "<HTML>test buffer</HTML>";
 + long htmlbufferlength = strlen(htmlbuffer);
 + struct curl_forms forms[3];
 + char file1[] = "my-face.jpg";
 + char file2[] = "your-face.jpg";
 + /* add null character into htmlbuffer, to demonstrate that
 +    transfers of buffers containing null characters actually work
 + */
 + htmlbuffer[8] = '\\0';
 +
 + /* Add simple name/content section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "name",
 +              CURLFORM_COPYCONTENTS, "content", CURLFORM_END);
 +
 + /* Add simple name/content/contenttype section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "htmlcode",
 +              CURLFORM_COPYCONTENTS, "<HTML></HTML>",
 +              CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
 +
 + /* Add name/ptrcontent section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "name_for_ptrcontent",
 +              CURLFORM_PTRCONTENTS, buffer, CURLFORM_END);
 +
 + /* Add ptrname/ptrcontent section */
 + curl_formadd(&post, &last, CURLFORM_PTRNAME, namebuffer,
 +              CURLFORM_PTRCONTENTS, buffer, CURLFORM_NAMELENGTH,
 +              namelength, CURLFORM_END);
 +
 + /* Add name/ptrcontent/contenttype section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "html_code_with_hole",
 +              CURLFORM_PTRCONTENTS, htmlbuffer,
 +              CURLFORM_CONTENTSLENGTH, htmlbufferlength,
 +              CURLFORM_CONTENTTYPE, "text/html", CURLFORM_END);
 +
 + /* Add simple file section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
 +              CURLFORM_FILE, "my-face.jpg", CURLFORM_END);
 +
 + /* Add file/contenttype section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture",
 +              CURLFORM_FILE, "my-face.jpg",
 +              CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
 +
 + /* Add two file section */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
 +              CURLFORM_FILE, "my-face.jpg",
 +              CURLFORM_FILE, "your-face.jpg", CURLFORM_END);
 +
 + /* Add two file section using CURLFORM_ARRAY */
 + forms[0].option = CURLFORM_FILE;
 + forms[0].value  = file1;
 + forms[1].option = CURLFORM_FILE;
 + forms[1].value  = file2;
 + forms[2].option  = CURLFORM_END;
 +
 + /* Add a buffer to upload */
 + curl_formadd(&post, &last,
 +              CURLFORM_COPYNAME, "name",
 +              CURLFORM_BUFFER, "data",
 +              CURLFORM_BUFFERPTR, record,
 +              CURLFORM_BUFFERLENGTH, record_length,
 +              CURLFORM_END);
 +
 + /* no option needed for the end marker */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "pictures",
 +              CURLFORM_ARRAY, forms, CURLFORM_END);
 + /* Add the content of a file as a normal post text value */
 + curl_formadd(&post, &last, CURLFORM_COPYNAME, "filecontent",
 +              CURLFORM_FILECONTENT, ".bashrc", CURLFORM_END);
 + /* Set the form info */
 + curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
 +
 +.SH "SEE ALSO"
 +.BR curl_easy_setopt "(3),"
 +.BR curl_formfree "(3),"
 +.BR curl_mime_init "(3)"
diff --cc docs/libcurl/gnurl_formfree.3
index 24764dc59,000000000..71df7e19a
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_formfree.3
+++ b/docs/libcurl/gnurl_formfree.3
@@@ -1,51 -1,0 +1,51 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_formfree 3 "6 April 2001" "libcurl 7.7.1" "libgnurl Manual"
 +.SH NAME
 +curl_formfree - free a previously build multipart/formdata HTTP POST chain
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "void curl_formfree(struct curl_httppost *" form);
 +.ad
 +.SH DESCRIPTION
 +This function is deprecated. Do not use! See \fIcurl_mime_init(3)\fP instead!
 +
 +curl_formfree() is used to clean up data previously built/appended with
 +\fIcurl_formadd(3)\fP. This must be called when the data has been used, which
 +typically means after \fIcurl_easy_perform(3)\fP has been called.
 +
 +The pointer to free is the same pointer you passed to the
 +\fICURLOPT_HTTPPOST(3)\fP option, which is the \fIfirstitem\fP pointer from
 +the \fIcurl_formadd(3)\fP invoke(s).
 +
 +\fBform\fP is the pointer as returned from a previous call to
 +\fIcurl_formadd(3)\fP and may be NULL.
 +
 +Passing in a NULL pointer in \fIform\fP will make this function return
 +immediately with no action.
 +.SH AVAILABILITY
 +Deprecated in 7.56.0.
 +.SH RETURN VALUE
 +None
 +.SH "SEE ALSO"
 +.BR curl_formadd "(3), " curl_mime_init "(3), " curl_mime_free "(3)"
diff --cc docs/libcurl/gnurl_formget.3
index 261e51df6,000000000..c9e43bd75
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_formget.3
+++ b/docs/libcurl/gnurl_formget.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_formget 3 "20 June 2006" "libcurl 7.15.5" "libgnurl Manual"
 +.SH NAME
 +curl_formget - serialize a previously built multipart/formdata HTTP POST chain
 +.SH SYNOPSIS
 +.nf
 +.B #include <gnurl/curl.h>
 +
 +int curl_formget(struct curl_httppost * form, void *userp,
 +                  curl_formget_callback append );
 +.SH DESCRIPTION
 +curl_formget() is used to serialize data previously built/appended with
 +\fIcurl_formadd(3)\fP. Accepts a void pointer as second argument named
 +\fIuserp\fP which will be passed as the first argument to the
 +curl_formget_callback function.
 +
 +.BI "typedef size_t (*curl_formget_callback)(void *" userp, " const char *" 
buf,
 +.BI " size_t " len ");"
 +
 +The curl_formget_callback will be executed for each part of the HTTP POST
 +chain. The character buffer passed to the callback must not be freed. The
 +callback should return the buffer length passed to it on success.
 +
 +If the \fBCURLFORM_STREAM\fP option is used in the formpost, it will prevent
 +\fIcurl_formget(3)\fP from working until you've performed the actual HTTP
 +request as only then will libcurl get the actual read callback to use!
 +.SH RETURN VALUE
 +0 means everything was ok, non-zero means an error occurred
 +.SH EXAMPLE
 +.nf
 +
 + size_t print_httppost_callback(void *arg, const char *buf, size_t len)
 + {
 +   fwrite(buf, len, 1, stdout);
 +   (*(size_t *) arg) += len;
 +   return len;
 + }
 +
 + size_t print_httppost(struct curl_httppost *post)
 + {
 +   size_t total_size = 0;
 +   if(curl_formget(post, &total_size, print_httppost_callback)) {
 +     return (size_t) -1;
 +   }
 +   return total_size;
 + }
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.5. The form API is deprecated in
 +libcurl 7.56.0.
 +.SH "SEE ALSO"
 +.BR curl_formadd "(3), " curl_mime_init "(3)"
diff --cc docs/libcurl/gnurl_free.3
index e9901fa74,000000000..e13e1b985
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_free.3
+++ b/docs/libcurl/gnurl_free.3
@@@ -1,38 -1,0 +1,38 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_free 3 "12 Aug 2003" "libcurl 7.10" "libgnurl Manual"
 +.SH NAME
 +curl_free - reclaim memory that has been obtained through a libcurl call
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "void curl_free( char *" ptr " );"
 +.ad
 +.SH DESCRIPTION
 +curl_free reclaims memory that has been obtained through a libcurl call.  Use
 +\fIcurl_free(3)\fP instead of free() to avoid anomalies that can result from
 +differences in memory management between your application and libcurl.
 +
 +Passing in a NULL pointer in \fIptr\fP will make this function return
 +immediately with no action.
 +.SH "SEE ALSO"
 +.BR curl_easy_unescape "(3), " curl_easy_escape "(3) "
diff --cc docs/libcurl/gnurl_getdate.3
index eb122eaf3,000000000..a29e485af
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_getdate.3
+++ b/docs/libcurl/gnurl_getdate.3
@@@ -1,110 -1,0 +1,110 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_getdate 3 "12 Aug 2005" "libcurl 7.0" "libgnurl Manual"
 +.SH NAME
 +curl_getdate - Convert a date string to number of seconds
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "time_t curl_getdate(char *" datestring ", time_t *"now " );"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_getdate(3)\fP returns the number of seconds since the Epoch, January
 +1st 1970 00:00:00 in the UTC time zone, for the date and time that the
 +\fIdatestring\fP parameter specifies. The \fInow\fP parameter is not used,
 +pass a NULL there.
 +.SH PARSING DATES AND TIMES
 +A "date" is a string containing several items separated by whitespace. The
 +order of the items is immaterial.  A date string may contain many flavors of
 +items:
 +.TP 0.8i
 +.B calendar date items
 +Can be specified several ways. Month names can only be three-letter english
 +abbreviations, numbers can be zero-prefixed and the year may use 2 or 4 
digits.
 +Examples: 06 Nov 1994, 06-Nov-94 and Nov-94 6.
 +.TP
 +.B time of the day items
 +This string specifies the time on a given day. You must specify it with 6
 +digits with two colons: HH:MM:SS. To not include the time in a date string,
 +will make the function assume 00:00:00. Example: 18:19:21.
 +.TP
 +.B time zone items
 +Specifies international time zone. There are a few acronyms supported, but in
 +general you should instead use the specific relative time compared to
 +UTC. Supported formats include: -1200, MST, +0100.
 +.TP
 +.B day of the week items
 +Specifies a day of the week. Days of the week may be spelled out in full
 +(using english): `Sunday', `Monday', etc or they may be abbreviated to their
 +first three letters. This is usually not info that adds anything.
 +.TP
 +.B pure numbers
 +If a decimal number of the form YYYYMMDD appears, then YYYY is read as the
 +year, MM as the month number and DD as the day of the month, for the specified
 +calendar date.
 +.PP
 +.SH EXAMPLES
 +.nf
 +Sun, 06 Nov 1994 08:49:37 GMT
 +Sunday, 06-Nov-94 08:49:37 GMT
 +Sun Nov  6 08:49:37 1994
 +06 Nov 1994 08:49:37 GMT
 +06-Nov-94 08:49:37 GMT
 +Nov  6 08:49:37 1994
 +06 Nov 1994 08:49:37
 +06-Nov-94 08:49:37
 +1994 Nov 6 08:49:37
 +GMT 08:49:37 06-Nov-94 Sunday
 +94 6 Nov 08:49:37
 +1994 Nov 6
 +06-Nov-94
 +Sun Nov 6 94
 +1994.Nov.6
 +Sun/Nov/6/94/GMT
 +Sun, 06 Nov 1994 08:49:37 CET
 +06 Nov 1994 08:49:37 EST
 +Sun, 12 Sep 2004 15:05:58 -0700
 +Sat, 11 Sep 2004 21:32:11 +0200
 +20040912 15:05:58 -0700
 +20040911 +0200
 +.fi
 +.SH STANDARDS
 +This parser was written to handle date formats specified in RFC 822 (including
 +the update in RFC 1123) using time zone name or time zone delta and RFC 850
 +(obsoleted by RFC 1036) and ANSI C's asctime() format. These formats are the
 +only ones RFC 7231 says HTTP applications may use.
 +.SH RETURN VALUE
 +This function returns -1 when it fails to parse the date string. Otherwise it
 +returns the number of seconds as described.
 +
 +On systems with a signed 32 bit time_t: if the year is larger than 2037 or
 +less than 1903, this function will return -1.
 +
 +On systems with an unsigned 32 bit time_t: if the year is larger than 2106 or
 +less than 1970, this function will return -1.
 +
 +On systems with 64 bit time_t: if the year is less than 1583, this function
 +will return -1. (The Gregorian calendar was first introduced 1582 so no "real"
 +dates in this way of doing dates existed before then.)
 +.SH "SEE ALSO"
 +.BR curl_easy_escape "(3), " curl_easy_unescape "(3), "
 +.BR CURLOPT_TIMECONDITION "(3), " CURLOPT_TIMEVALUE "(3) "
diff --cc docs/libcurl/gnurl_getenv.3
index a953eba35,000000000..3d1f8929e
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_getenv.3
+++ b/docs/libcurl/gnurl_getenv.3
@@@ -1,49 -1,0 +1,49 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_getenv 3 "30 April 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_getenv - return value for environment name
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_getenv(const char *" name ");"
 +.ad
 +.SH DESCRIPTION
 +curl_getenv() is a portable wrapper for the getenv() function, meant to
 +emulate its behaviour and provide an identical interface for all operating
 +systems libcurl builds on (including win32).
 +
 +You must \fIcurl_free(3)\fP the returned string when you're done with it.
 +.SH AVAILABILITY
 +This function will be removed from the public libcurl API in a near future. It
 +will instead be made "available" by source code access only, and then as
 +curlx_getenv().
 +.SH RETURN VALUE
 +A pointer to a null-terminated string or NULL if it failed to find the
 +specified name.
 +.SH NOTE
 +Under unix operating systems, there isn't any point in returning an allocated
 +memory, although other systems won't work properly if this isn't done. The
 +unix implementation thus has to suffer slightly from the drawbacks of other
 +systems.
 +.SH "SEE ALSO"
 +.BR getenv "(3C), "
diff --cc docs/libcurl/gnurl_global_cleanup.3
index a5b6675c2,000000000..8fdfc1162
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_cleanup.3
+++ b/docs/libcurl/gnurl_global_cleanup.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_cleanup 3 "17 Feb 2006" "libcurl 7.8" "libgnurl Manual"
 +.SH NAME
 +curl_global_cleanup - global libcurl cleanup
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "void curl_global_cleanup(void);"
 +.ad
 +.SH DESCRIPTION
 +This function releases resources acquired by \fIcurl_global_init(3)\fP.
 +
 +You should call \fIcurl_global_cleanup(3)\fP once for each call you make to
 +\fIcurl_global_init(3)\fP, after you are done using libcurl.
 +
 +\fBThis function is not thread safe.\fP You must not call it when any other
 +thread in the program (i.e. a thread sharing the same memory) is running.
 +This doesn't just mean no other thread that is using libcurl.  Because
 +\fIcurl_global_cleanup(3)\fP calls functions of other libraries that are
 +similarly thread unsafe, it could conflict with any other thread that uses
 +these other libraries.
 +
 +See the description in \fIlibcurl(3)\fP of global environment requirements for
 +details of how to use this function.
 +.SH CAUTION
 +\fIcurl_global_cleanup(3)\fP does not block waiting for any libcurl-created
 +threads to terminate (such as threads used for name resolving). If a module
 +containing libcurl is dynamically unloaded while libcurl-created threads are
 +still running then your program may crash or other corruption may occur. We
 +recommend you do not run libcurl from any module that may be unloaded
 +dynamically. This behavior may be addressed in the future.
 +.SH "SEE ALSO"
 +.BR curl_global_init "(3), "
 +.BR libcurl "(3), "
 +.BR libcurl-thread "(3), "
diff --cc docs/libcurl/gnurl_global_init.3
index db84fad00,000000000..abc6d9b60
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_init.3
+++ b/docs/libcurl/gnurl_global_init.3
@@@ -1,103 -1,0 +1,103 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 3 "11 May 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_global_init - Global libcurl initialisation
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_global_init(long " flags ");"
 +.ad
 +.SH DESCRIPTION
 +This function sets up the program environment that libcurl needs.  Think of it
 +as an extension of the library loader.
 +
 +This function must be called at least once within a program (a program is all
 +the code that shares a memory space) before the program calls any other
 +function in libcurl.  The environment it sets up is constant for the life of
 +the program and is the same for every program, so multiple calls have the same
 +effect as one call.
 +
 +The flags option is a bit pattern that tells libcurl exactly what features to
 +init, as described below. Set the desired bits by ORing the values together.
 +In normal operation, you must specify CURL_GLOBAL_ALL.  Don't use any other
 +value unless you are familiar with it and mean to control internal operations 
of
 +libcurl.
 +
 +\fBThis function is not thread safe.\fP You must not call it when any other
 +thread in the program (i.e. a thread sharing the same memory) is running.
 +This doesn't just mean no other thread that is using libcurl.  Because
 +\fIcurl_global_init(3)\fP calls functions of other libraries that are
 +similarly thread unsafe, it could conflict with any other thread that uses
 +these other libraries.
 +
 +If you are initializing libcurl from a Windows DLL you should not initialize 
it
 +from DllMain or a static initializer because Windows holds the loader lock
 +during that time and it could cause a deadlock.
 +
 +See the description in \fIlibcurl(3)\fP of global environment requirements for
 +details of how to use this function.
 +.SH FLAGS
 +.IP CURL_GLOBAL_ALL
 +Initialize everything possible. This sets all known bits except
 +\fBCURL_GLOBAL_ACK_EINTR\fP.
 +
 +.IP CURL_GLOBAL_SSL
 +(This flag's presence or absence serves no meaning since 7.57.0. The
 +description below is for older libcurl versions.)
 +
 +Initialize SSL.
 +
 +The implication here is that if this bit is not set, the initialization of the
 +SSL layer needs to be done by the application or at least outside of
 +libcurl. The exact procedure how to do SSL initialization depends on the TLS
 +backend libcurl uses.
 +
 +Doing TLS based transfers without having the TLS layer initialized may lead to
 +unexpected behaviors.
 +.IP CURL_GLOBAL_WIN32
 +Initialize the Win32 socket libraries.
 +
 +The implication here is that if this bit is not set, the initialization of
 +winsock has to be done by the application or you risk getting undefined
 +behaviors. This option exists for when the initialization is handled outside
 +of libcurl so there's no need for libcurl to do it again.
 +.IP CURL_GLOBAL_NOTHING
 +Initialise nothing extra. This sets no bit.
 +.IP CURL_GLOBAL_DEFAULT
 +A sensible default. It will init both SSL and Win32. Right now, this equals
 +the functionality of the \fBCURL_GLOBAL_ALL\fP mask.
 +.IP CURL_GLOBAL_ACK_EINTR
 +This bit has no point since 7.69.0 but its behavior is instead the default.
 +
 +Before 7.69.0: when this flag is set, curl will acknowledge EINTR condition
 +when connecting or when waiting for data.  Otherwise, curl waits until full
 +timeout elapses. (Added in 7.30.0)
 +.SH RETURN VALUE
 +If this function returns non-zero, something went wrong and you cannot use the
 +other curl functions.
 +.SH "SEE ALSO"
 +.BR curl_global_init_mem "(3), "
 +.BR curl_global_cleanup "(3), "
 +.BR curl_global_sslset "(3), "
 +.BR curl_easy_init "(3) "
 +.BR libcurl "(3) "
diff --cc docs/libcurl/gnurl_global_init_mem.3
index ddd64db7f,000000000..d3d1d9279
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_init_mem.3
+++ b/docs/libcurl/gnurl_global_init_mem.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_global_sslset.3
index ed9c236d7,000000000..8cc67a234
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_sslset.3
+++ b/docs/libcurl/gnurl_global_sslset.3
@@@ -1,102 -1,0 +1,102 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_sslset 3 "15 July 2017" "libcurl 7.56" "libgnurl Manual"
 +.SH NAME
 +curl_global_sslset - Select SSL backend to use with libcurl
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.nf
 +
 +typedef struct {
 +  curl_sslbackend id;
 +  const char *name;
 +} curl_ssl_backend;
 +
 +typedef enum {
 +  CURLSSLBACKEND_NONE = 0,
 +  CURLSSLBACKEND_OPENSSL = 1,
 +  CURLSSLBACKEND_GNUTLS = 2,
 +  CURLSSLBACKEND_NSS = 3,
 +  CURLSSLBACKEND_GSKIT = 5,
 +  CURLSSLBACKEND_POLARSSL = 6, /* deprecated */
 +  CURLSSLBACKEND_WOLFSSL = 7,
 +  CURLSSLBACKEND_SCHANNEL = 8,
 +  CURLSSLBACKEND_SECURETRANSPORT = 9,
 +  CURLSSLBACKEND_AXTLS = 10, /* deprecated */
 +  CURLSSLBACKEND_MBEDTLS = 11,
 +  CURLSSLBACKEND_MESALINK = 12,
 +  CURLSSLBACKEND_BEARSSL = 13
 +} curl_sslbackend;
 +
 +.B "CURLsslset curl_global_sslset(curl_sslbackend " id,
 +.B "                              const char *" name,
 +.B "                              curl_ssl_backend ***" avail ");"
 +.fi
 +.SH DESCRIPTION
 +This function configures at runtime which SSL backend to use with
 +libcurl. This function can only be used to select an SSL backend once, and it
 +must be called \fBbefore\fP \fIcurl_global_init(3)\fP.
 +
 +The backend can be identified by the \fIid\fP
 +(e.g. \fBCURLSSLBACKEND_OPENSSL\fP). The backend can also be specified via the
 +\fIname\fP parameter for a case insensitive match (passing -1 as \fIid\fP). If
 +both \fIid\fP and \fIname\fP are specified, the \fIname\fP will be ignored.
 +
 +If neither \fIid\fP nor \fPname\fP are specified, the function will fail with
 +CURLSSLSET_UNKNOWN_BACKEND and set the \fIavail\fP pointer to the
 +NULL-terminated list of available backends. The available backends are those
 +that this particular build of libcurl supports.
 +
 +Since libcurl 7.60.0, the \fIavail\fP pointer will always be set to the list
 +of alternatives if non-NULL.
 +
 +Upon success, the function returns CURLSSLSET_OK.
 +
 +If the specified SSL backend is not available, the function returns
 +CURLSSLSET_UNKNOWN_BACKEND and sets the \fIavail\fP pointer to a
 +NULL-terminated list of available SSL backends. In this case, you may call the
 +function again to try to select a different backend.
 +
 +The SSL backend can be set only once. If it has already been set, a subsequent
 +attempt to change it will result in a \fBCURLSSLSET_TOO_LATE\fP.
 +
 +\fBThis function is not thread safe.\fP You must not call it when any other
 +thread in the program (i.e. a thread sharing the same memory) is running.
 +This doesn't just mean no other thread that is using libcurl.
 +
 +.SH AVAILABILITY
 +This function was added in libcurl 7.56.0. Before this version, there was no
 +support for choosing SSL backends at runtime.
 +.SH RETURN VALUE
 +If this function returns CURLSSLSET_OK, the backend was successfully selected.
 +
 +If the chosen backend is unknown (or support for the chosen backend has not
 +been compiled into libcurl), the function returns 
\fICURLSSLSET_UNKNOWN_BACKEND\fP.
 +
 +If the backend had been configured previously, or if \fIcurl_global_init(3)\fP
 +has already been called, the function returns \fICURLSSLSET_TOO_LATE\fP.
 +
 +If this libcurl was built completely without SSL support, with no backends at
 +all, this function returns \fICURLSSLSET_NO_BACKENDS\fP.
 +.SH "SEE ALSO"
 +.BR curl_global_init "(3), "
 +.BR libcurl "(3) "
diff --cc docs/libcurl/gnurl_mime_addpart.3
index 9aab787eb,000000000..330b28f71
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_addpart.3
+++ b/docs/libcurl/gnurl_mime_addpart.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_addpart 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_addpart - append a new empty part to a mime structure
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "curl_mimepart * curl_mime_addpart(curl_mime * " mime ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_addpart(3)\fP creates and appends a new empty part to the given
 +mime structure and returns a handle to it.  The returned part handle can
 +subsequently be populated using functions from the mime API.
 +
 +\fImime\fP is the handle of the mime structure in which the new part must be
 +appended.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +A mime part structure handle, or NULL upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* continue and set name + data to the part */
 + curl_mime_data(part, "This is the field data", CURL_ZERO_TERMINATED);
 + curl_mime_name(part, "data");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_init "(3),"
 +.BR curl_mime_name "(3),"
 +.BR curl_mime_data "(3),"
 +.BR curl_mime_data_cb "(3),"
 +.BR curl_mime_filedata "(3),"
 +.BR curl_mime_filename "(3),"
 +.BR curl_mime_subparts "(3),"
 +.BR curl_mime_type "(3),"
 +.BR curl_mime_headers "(3),"
 +.BR curl_mime_encoder "(3)"
diff --cc docs/libcurl/gnurl_mime_data.3
index 728826ab0,000000000..1cc4d2a10
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_data.3
+++ b/docs/libcurl/gnurl_mime_data.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_data 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_data - set a mime part's body data from memory
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_data(curl_mimepart * " part ", const char * " data
 +.BI ", size_t " datasize ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_data(3)\fP sets a mime part's body content from memory data.
 +
 +\fIdata\fP points to the data bytes: those are copied to the part and their
 +storage may safely be reused after call.
 +\fIdatasize\fP is the number of data bytes: it can be set to
 +\fICURL_ZERO_TERMINATED\fP to indicate \fIdata\fP is a null-terminated
 +character string.
 +\fIpart\fP is the part's to assign contents to.
 +
 +Setting a part's contents twice is valid: only the value set by the last call
 +is retained. It is possible to unassign part's contents by setting
 +\fIdata\fP to NULL.
 +
 +Setting very large data is memory consuming: one might consider using
 +\fIcurl_mime_data_cb(3)\fP in such a case.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* add data to the part  */
 + curl_mime_data(part, "raw contents to send", CURL_ZERO_TERMINATED);
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_data_cb "(3),"
 +.BR curl_mime_name "(3),"
 +.BR curl_mime_type "(3)"
diff --cc docs/libcurl/gnurl_mime_data_cb.3
index 2fd7413c4,000000000..1eadf1e04
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_data_cb.3
+++ b/docs/libcurl/gnurl_mime_data_cb.3
@@@ -1,167 -1,0 +1,167 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_data_cb 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_data_cb - set a callback-based data source for a mime part's body
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +size_t readfunc(char *buffer, size_t size, size_t nitems, void *arg);
 +.br
 +int seekfunc(void *arg, curl_off_t offset, int origin);
 +.br
 +void freefunc(void *arg);
 +.sp
 +.BI "CURLcode curl_mime_data_cb(curl_mimepart * " part ", curl_off_t " 
datasize ,
 +.br
 +.BI "        curl_read_callback " readfunc ", curl_seek_callback " seekfunc ,
 +.br
 +.BI "        curl_free_callback " freefunc ", void * " arg ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_data_cb(3)\fP sets the data source of a mime part's body content
 +from a data read callback function.
 +
 +\fIpart\fP is the part's to assign contents to.
 +
 +\fIreadfunc\fP is a pointer to a data read callback function, with a signature
 +as shown by the above prototype. It may not be set to NULL.
 +
 +\fIseekfunc\fP is a pointer to a seek callback function, with a signature as
 +shown by the above prototype. This function will be used upon resending data
 +(i.e.: after a redirect); this pointer may be set to NULL, in which case a
 +resend is not possible.
 +
 +\fIfreefunc\fP is a pointer to a user resource freeing callback function, with
 +a signature as shown by the above prototype. If no resource is to be freed, it
 +may safely be set to NULL. This function will be called upon mime structure
 +freeing.
 +
 +\fIarg\fP is a user defined argument to callback functions.
 +
 +The read 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 \fInmemb\fP number
 +of bytes by your function.
 +
 +Your read function must then return the actual number of bytes that it stored
 +in that memory area. 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.
 +
 +The seek function gets called by libcurl to rewind input stream data or to
 +seek to a certain position. The function shall work like fseek(3) or lseek(3)
 +and it gets SEEK_SET, SEEK_CUR or SEEK_END as argument for \fIorigin\fP,
 +although libcurl currently only passes SEEK_SET.
 +
 +The callback function must return \fICURL_SEEKFUNC_OK\fP on success,
 +\fICURL_SEEKFUNC_FAIL\fP to cause the upload operation to fail or
 +\fICURL_SEEKFUNC_CANTSEEK\fP to indicate that while the seek failed, libcurl
 +is free to work around the problem if possible. The latter can sometimes be
 +done by instead reading from the input or similar.
 +
 +Care must be taken if the part is bound to a curl easy handle that is later
 +duplicated: the \fIarg\fP pointer argument is also duplicated, resulting in
 +the pointed item to be shared between the original and the copied handle.
 +In particular, special attention should be given to the \fIfreefunc\fP
 +procedure code since it will be called twice with the same argument.
 +
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +Sending a huge data string will cause the same amount of memory to be
 +allocated: to avoid overhead resources consumption, one might want to use a
 +callback source to avoid data duplication. In this case, original data
 +must be retained until after the transfer terminates.
 +.nf
 +
 +char hugedata[512000];
 +
 +struct ctl {
 +  char *buffer;
 +  curl_off_t size;
 +  curl_off_t position;
 +};
 +
 +size_t read_callback(char *buffer, size_t size, size_t nitems, void *arg)
 +{
 +  struct ctl *p = (struct ctl *) arg;
 +  curl_off_t sz = p->size - p->position;
 +
 +  nitems *= size;
 +  if(sz > nitems)
 +    sz = nitems;
 +  if(sz)
 +    memcpy(buffer, p->buffer + p->position, sz);
 +  p->position += sz;
 +  return sz;
 +}
 +
 +int seek_callback(void *arg, curl_off_t offset, int origin)
 +{
 +  struct ctl *p = (struct ctl *) arg;
 +
 +  switch(origin) {
 +  case SEEK_END:
 +    offset += p->size;
 +    break;
 +  case SEEK_CUR:
 +    offset += p->position;
 +    break;
 +  }
 +
 +  if(offset < 0)
 +    return CURL_SEEKFUNC_FAIL;
 +  p->position = offset;
 +  return CURL_SEEKFUNC_OK;
 +}
 +
 + CURL *easy = curl_easy_init();
 + curl_mime *mime = curl_mime_init(easy);
 + curl_mimepart *part = curl_mime_addpart(mime);
 + struct ctl hugectl;
 +
 + hugectl.buffer = hugedata;
 + hugectl.size = sizeof hugedata;
 + hugectl.position = 0;
 + curl_mime_data_cb(part, hugectl.size, read_callback, seek_callback, NULL,
 +                   &hugectl);
 +
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_data "(3),"
 +.BR curl_mime_name "(3),"
 +.BR curl_easy_duphandle "(3)"
diff --cc docs/libcurl/gnurl_mime_encoder.3
index d0546b6b0,000000000..1026a679b
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_encoder.3
+++ b/docs/libcurl/gnurl_mime_encoder.3
@@@ -1,97 -1,0 +1,97 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_encoder 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_encoder - set a mime part's encoder and content transfer encoding
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_encoder(curl_mimepart * " part ,
 +.BI "const char * " encoding ");"
 +.ad
 +.SH DESCRIPTION
 +curl_mime_encoder() requests a mime part's content to be encoded before being
 +transmitted.
 +
 +\fIpart\fP is the part's handle to assign an encoder.
 +\fIencoding\fP is a pointer to a null-terminated encoding scheme. It may be
 +set to NULL to disable an encoder previously attached to the part. The 
encoding
 +scheme storage may safely be reused after this function returns.
 +
 +Setting a part's encoder twice is valid: only the value set by the last call 
is
 +retained.
 +
 +Upon multipart rendering, the part's content is encoded according to the
 +pertaining scheme and a corresponding \fIContent-Transfer-Encoding"\fP header
 +is added to the part.
 +
 +Supported encoding schemes are:
 +.br
 +"\fIbinary\fP": the data is left unchanged, the header is added.
 +.br
 +"\fI8bit\fP": header added, no data change.
 +.br
 +"\fI7bit\fP": the data is unchanged, but is each byte is checked
 +to be a 7-bit value; if not, a read error occurs.
 +.br
 +"\fIbase64\fP": Data is converted to base64 encoding, then split in
 +CRLF-terminated lines of at most 76 characters.
 +.br
 +"\fIquoted-printable\fP": data is encoded in quoted printable lines of
 +at most 76 characters. Since the resulting size of the final data cannot be
 +determined prior to reading the original data, it is left as unknown, causing
 +chunked transfer in HTTP. For the same reason, this encoder may not be used
 +with IMAP. This encoder targets text data that is mostly ASCII and should
 +not be used with other types of data.
 +
 +If the original data is already encoded in such a scheme, a custom
 +\fIContent-Transfer-Encoding\fP header should be added with
 +\FIcurl_mime_headers\fP() instead of setting a part encoder.
 +
 +Encoding should not be applied to multiparts, thus the use of this
 +function on a part with content set with \fIcurl_mime_subparts\fP() is
 +strongly discouraged.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* send a file */
 + curl_mime_filedata(part, "image.png");
 +
 + /* encode file data in base64 for transfer */
 + curl_mime_encoder(part, "base64");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_headers "(3),"
 +.BR curl_mime_subparts "(3)"
diff --cc docs/libcurl/gnurl_mime_filedata.3
index e89d22fea,000000000..deb0d4510
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_filedata.3
+++ b/docs/libcurl/gnurl_mime_filedata.3
@@@ -1,84 -1,0 +1,84 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_filedata 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_filedata - set a mime part's body data from a file contents
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_filedata(curl_mimepart * " part ,
 +.BI " const char * " filename ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_filedata(3)\fP sets a mime part's body content from the named
 +file's contents. This is an alternative to \fIcurl_mime_data(3)\fP for setting
 +data to a mime part.
 +
 +\fIpart\fP is the part's to assign contents to.
 +
 +\fIfilename\fP points to the null-terminated file's path name. The pointer can
 +be NULL to detach the previous part contents settings.  Filename storage can
 +be safely be reused after this call.
 +
 +As a side effect, the part's remote file name is set to the base name of the
 +given \fIfilename\fP if it is a valid named file. This can be undone or
 +overridden by a subsequent call to \fIcurl_mime_filename(3)\fP.
 +
 +The contents of the file is read during the file transfer in a streaming
 +manner to allow huge files to get transferred without using much memory. It
 +therefore requires that the file is kept intact during the entire request.
 +
 +If the file size cannot be determined before actually reading it (such as for
 +a device or named pipe), the whole mime structure containing the part
 +will be transferred as chunks by HTTP and rejected by IMAP.
 +
 +Setting a part's contents twice is valid: only the value set by the last call
 +is retained.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure. CURLE_READ_ERROR is only an
 +indication that the file is not yet readable: it can be safely ignored at
 +this time, but the file must be made readable before the pertaining
 +easy handle is performed.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* send data from this file */
 + curl_mime_filedata(part, "image.png");
 +
 + /* set name */
 + curl_mime_name(part, "data");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_data "(3),"
 +.BR curl_mime_filename "(3),"
 +.BR curl_mime_name "(3)"
diff --cc docs/libcurl/gnurl_mime_filename.3
index 6534a9ce5,000000000..a231545d5
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_filename.3
+++ b/docs/libcurl/gnurl_mime_filename.3
@@@ -1,72 -1,0 +1,72 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_filename 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_filename - set a mime part's remote file name
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_filename(curl_mimepart * " part ,
 +.BI "const char * " filename ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_filename(3)\fP sets a mime part's remote file name. When remote
 +file name is set, content data is processed as a file, whatever is the part's
 +content source. A part's remote file name is transmitted to the server in the
 +associated Content-Disposition generated header.
 +
 +\fIpart\fP is the part's handle to assign the remote file name to.
 +
 +\fIfilename\fP points to the null-terminated file name string; it may be set
 +to NULL to remove a previously attached remote file name.
 +
 +The remote file name string is copied into the part, thus the associated
 +storage may safely be released or reused after call. Setting a part's file
 +name twice is valid: only the value set by the last call is retained.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* send image data from memory */
 + curl_mime_data(part, imagebuf, imagebuf_len);
 +
 + /* set a file name to make it look like a file upload */
 + curl_mime_filename(part, "image.png");
 +
 + /* set name */
 + curl_mime_name(part, "data");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_filedata "(3),"
 +.BR curl_mime_data "(3)"
diff --cc docs/libcurl/gnurl_mime_free.3
index 8476d1a32,000000000..4677c3f73
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_free.3
+++ b/docs/libcurl/gnurl_mime_free.3
@@@ -1,50 -1,0 +1,50 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_free 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_free - free a previously built mime structure
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "void curl_mime_free(curl_mime *" mime);
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_free(3)\fP is used to clean up data previously built/appended
 +with \fIcurl_mime_addpart(3)\fP and other mime-handling functions.  This must
 +be called when the data has been used, which typically means after
 +\fIcurl_easy_perform(3)\fP has been called.
 +
 +The handle to free is the one you passed to
 +the \fICURLOPT_MIMEPOST(3)\fP option: attached subparts mime structures must
 +not be explicitly freed as they are by the top structure freeing.
 +
 +\fBmime\fP is the handle as returned from a previous call to
 +\fIcurl_mime_init(3)\fP and may be NULL.
 +
 +Passing in a NULL pointer in \fImime\fP will make this function return
 +immediately with no action.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +None
 +.SH "SEE ALSO"
 +.BR curl_mime_init "(3)"
diff --cc docs/libcurl/gnurl_mime_headers.3
index ae54efd81,000000000..0e9b365b7
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_headers.3
+++ b/docs/libcurl/gnurl_mime_headers.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_headers 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_headers - set a mime part's custom headers
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_headers(curl_mimepart * " part ,
 +.BI "struct curl_slist * " headers ", int " take_ownership ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_headers(3)\fP sets a mime part's custom headers.
 +
 +\fIpart\fP is the part's handle to assign the custom headers list to.
 +
 +\fIheaders\fP is the head of a list of custom headers; it may be set to NULL
 +to remove a previously attached custom header list.
 +
 +\fItake_ownership\fP: when non-zero, causes the list to be freed upon
 +replacement or mime structure deletion; in this case the list must not be
 +freed explicitly.
 +
 +Setting a part's custom headers list twice is valid: only the value set by
 +the last call is retained.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + struct curl_slist *headers = NULL;
 +
-  headers = curl_slist_append("Custom-Header: mooo", headers);
++ headers = curl_slist_append(headers, "Custom-Header: mooo");
 +
 + /* use these headers, please take ownership */
 + curl_mime_headers(part, headers, TRUE);
 +
 + /* pass on this data */
 + curl_mime_data(part, "12345679", CURL_ZERO_TERMINATED);
 +
 + /* set name */
 + curl_mime_name(part, "numbers");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3)"
diff --cc docs/libcurl/gnurl_mime_init.3
index d6a49d1e7,000000000..e83df3874
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_init.3
+++ b/docs/libcurl/gnurl_mime_init.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_init 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_init - create a mime handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "curl_mime * curl_mime_init(CURL * " easy_handle ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_init(3)\fP creates a handle to a new empty mime structure
 +intended to be used with \fIeasy_handle\fP. This mime structure can be
 +subsequently filled using the mime API, then attached to \fIeasy_handle\fP
 +using option \fICURLOPT_MIMEPOST(3)\fP within a \fIcurl_easy_setopt(3)\fP
 +call.
 +
 +Using a mime handle is the recommended way to post an HTTP form, format and
 +send a multi-part e-mail with SMTP or upload such an e-mail to an IMAP server.
 +
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +A mime struct handle, or NULL upon failure.
 +.SH EXAMPLE
 +.nf
 +
 + CURL *easy = curl_easy_init();
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* Build an HTTP form with a single field named "data", */
 + mime = curl_mime_init(easy);
 + part = curl_mime_addpart(mime);
 + curl_mime_data(part, "This is the field data", CURL_ZERO_TERMINATED);
 + curl_mime_name(part, "data");
 +
 + /* Post and send it. */
 + curl_easy_setopt(easy, CURLOPT_MIMEPOST, mime);
-  curl_easy_setopt(easy, CURLOPT_URL, "http://example.com";);
++ curl_easy_setopt(easy, CURLOPT_URL, "https://example.com";);
 + curl_easy_perform(easy);
 +
 + /* Clean-up. */
 + curl_easy_cleanup(easy);
 + curl_mime_free(mime);
 +
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_free "(3),"
 +.BR CURLOPT_MIMEPOST "(3)"
diff --cc docs/libcurl/gnurl_mime_name.3
index 79afe7515,000000000..a8504b112
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_name.3
+++ b/docs/libcurl/gnurl_mime_name.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_name 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_name - set a mime part's name
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_name(curl_mimepart * " part ", const char * " name 
");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_name(3)\fP sets a mime part's name. This is the way HTTP form
 +fields are named.
 +
 +\fIpart\fP is the part's handle to assign a name to.
 +
 +\fIname\fP points to the null-terminated name string.
 +
 +The name string is copied into the part, thus the associated storage may
 +safely be released or reused after call. Setting a part's name twice is valid:
 +only the value set by the last call is retained. It is possible to "unname" a
 +part by setting \fIname\fP to NULL.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* give the part a name */
 + curl_mime_name(part, "shoe_size");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_data "(3),"
 +.BR curl_mime_type "(3)"
diff --cc docs/libcurl/gnurl_mime_subparts.3
index ab57e6159,000000000..4f9883655
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_subparts.3
+++ b/docs/libcurl/gnurl_mime_subparts.3
@@@ -1,53 -1,0 +1,53 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_subparts 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_subparts - set subparts of a multipart mime part
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_subparts(curl_mimepart * " part ,
 +.BI "curl_mime * " subparts ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_subparts(3)\fP sets a multipart mime part's content from a mime
 +structure.
 +
 +\fIpart\fP is a handle to the multipart part.
 +
 +\fIsubparts\fP is a mime structure handle holding the subparts. After
 +\fIcurl_mime_subparts\fP succeeds, the mime structure handle belongs to the
 +multipart part and must not be freed explicitly. It may however be updated by
 +subsequent calls to mime API functions.
 +
 +Setting a part's contents twice is valid: only the value set by the last call
 +is retained. It is possible to unassign previous part's contents by setting
 +\fIsubparts\fP to NULL.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +TODO
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_init "(3)"
diff --cc docs/libcurl/gnurl_mime_type.3
index 1c1daae9b,000000000..29bbbf008
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mime_type.3
+++ b/docs/libcurl/gnurl_mime_type.3
@@@ -1,83 -1,0 +1,83 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_mime_type 3 "22 August 2017" "libcurl 7.56.0" "libgnurl Manual"
 +.SH NAME
 +curl_mime_type - set a mime part's content type
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_mime_type(curl_mimepart * " part ,
 +.BI "const char * " mimetype ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_mime_type(3)\fP sets a mime part's content type.
 +
 +\fIpart\fP is the part's handle to assign the content type to.
 +
 +\fImimetype\fP points to the null-terminated file mime type string; it may be
 +set to NULL to remove a previously attached mime type.
 +
 +The mime type string is copied into the part, thus the associated storage may
 +safely be released or reused after call. Setting a part's type twice is valid:
 +only the value set by the last call is retained.
 +
 +In the absence of a mime type and if needed by the protocol specifications,
 +a default mime type is determined by the context:
 +.br
 +- If set as a custom header, use this value.
 +.br
 +- application/form-data for an HTTP form post.
 +.br
 +- If a remote file name is set, the mime type is taken from the file name
 +extension, or application/octet-stream by default.
 +.br
 +- For a multipart part, multipart/mixed.
 +.br
 +- text/plain in other cases.
 +.SH AVAILABILITY
 +As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.
 +.SH RETURN VALUE
 +CURLE_OK or a CURL error code upon failure.
 +.SH EXAMPLE
 +.nf
 + curl_mime *mime;
 + curl_mimepart *part;
 +
 + /* create a mime handle */
 + mime = curl_mime_init(easy);
 +
 + /* add a part */
 + part = curl_mime_addpart(mime);
 +
 + /* get data from this file */
 + curl_mime_filedata(part, "image.png");
 +
 + /* content-type for this part */
 + curl_mime_type(part, "image/png");
 +
 + /* set name */
 + curl_mime_name(part, "image");
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_mime_addpart "(3),"
 +.BR curl_mime_name "(3),"
 +.BR curl_mime_data "(3)"
diff --cc docs/libcurl/gnurl_mprintf.3
index c34898afc,000000000..4a19e8cbf
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_mprintf.3
+++ b/docs/libcurl/gnurl_mprintf.3
@@@ -1,103 -1,0 +1,103 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_printf 3 "30 April 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
 +curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf,
 +curl_mvsprintf - formatted output conversion
 +.SH SYNOPSIS
 +.B #include <gnurl/mprintf.h>
 +.sp
 +.BI "int curl_mprintf(const char *" format ", ...);"
 +.br
 +.BI "int curl_mfprintf(FILE *" fd ", const char *" format ", ...);"
 +.br
 +.BI "int curl_msprintf(char *" buffer ", const char *" format ", ...);"
 +.br
 +.BI "int curl_msnprintf(char *" buffer ", size_t " maxlength ", const char *" 
format ", ...);"
 +.br
 +.BI "int curl_mvprintf(const char *" format ", va_list " args ");"
 +.br
 +.BI "int curl_mvfprintf(FILE *" fd ", const char *" format ", va_list " args 
");"
 +.br
 +.BI "int curl_mvsprintf(char *" buffer ", const char *" format ", va_list " 
args ");"
 +.br
 +.BI "int curl_mvsnprintf(char *" buffer ", size_t " maxlength ", const char 
*" format ", va_list " args ");"
 +.br
 +.BI "char *curl_maprintf(const char *" format ", ...);"
 +.br
 +.BI "char *curl_mvaprintf(const char *" format ", va_list " args ");"
 +.SH DESCRIPTION
 +These are all functions that produce output according to a format string and
 +given arguments. These are mostly clones of the well-known C-style functions
 +and there will be no detailed explanation of all available formatting rules
 +and usage here.
 +
 +See this table for notable exceptions.
 +.RS
 +.TP
 +.B curl_mprintf()
 +Normal printf() clone.
 +.TP
 +.B curl_mfprintf()
 +Normal fprintf() clone.
 +.TP
 +.B curl_msprintf()
 +Normal sprintf() clone.
 +.TP
 +.B curl_msnprintf()
 +snprintf() clone. Many systems don't have this. It is just like \fBsprintf\fP
 +but with an extra argument after the buffer that specifies the length of the
 +target buffer.
 +.TP
 +.B curl_mvprintf()
 +Normal vprintf() clone.
 +.TP
 +.B curl_mvfprintf()
 +Normal vfprintf() clone.
 +.TP
 +.B curl_mvsprintf()
 +Normal vsprintf() clone.
 +.TP
 +.B curl_mvsnprintf()
 +vsnprintf() clone.  Many systems don't have this. It is just like
 +\fBvsprintf\fP but with an extra argument after the buffer that specifies the
 +length of the target buffer.
 +.TP
 +.B curl_maprintf()
 +Like printf() but returns the output string as a malloc()ed string. The
 +returned string must be free()ed by the receiver.
 +.TP
 +.B curl_mvaprintf()
 +Like curl_maprintf() but takes a va_list pointer argument instead of a
 +variable amount of arguments.
 +.RE
 +.SH AVAILABILITY
 +These functions will be removed from the public libcurl API in the future. Do
 +not use them in any new programs or projects.
 +.SH RETURN VALUE
 +The \fBcurl_maprintf\fP and \fBcurl_mvaprintf\fP functions return a pointer to
 +a newly allocated string, or NULL if it failed.
 +
 +All other functions return the number of characters they actually outputted.
 +.SH "SEE ALSO"
 +.BR printf "(3), " sprintf "(3), " fprintf "(3), " vprintf "(3) "
diff --cc docs/libcurl/gnurl_multi_add_handle.3
index c1d103f17,000000000..c8c230f34
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_add_handle.3
+++ b/docs/libcurl/gnurl_multi_add_handle.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_add_handle 3 "4 March 2002" "libcurl 7.9.5" "libgnurl Manual"
 +.SH NAME
 +curl_multi_add_handle - add an easy handle to a multi session
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle);
 +.ad
 +.SH DESCRIPTION
 +Adds a standard easy handle to the multi stack. This function call will make
 +this \fImulti_handle\fP control the specified \fIeasy_handle\fP.
 +
 +While an easy handle is added to a multi stack, you cannot and you must not
 +use \fIcurl_easy_perform(3)\fP on that handle. After having removed the easy
 +handle from the multi stack again, it is perfectly fine to use it with the
 +easy interface again.
 +
 +If the easy handle is not set to use a shared (\fICURLOPT_SHARE(3)\fP) or
 +global DNS cache (\fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP), it will be made to
 +use the DNS cache that is shared between all easy handles within the multi
 +handle when \fIcurl_multi_add_handle(3)\fP is called.
 +
 +When an easy interface is added to a multi handle, it will use a shared
 +connection cache owned by the multi handle. Removing and adding new easy
 +handles will not affect the pool of connections or the ability to do
 +connection re-use.
 +
 +If you have \fICURLMOPT_TIMERFUNCTION(3)\fP set in the multi handle (and you
 +really should if you're working event-based with
 +\fIcurl_multi_socket_action(3)\fP and friends), that callback will be called
 +from within this function to ask for an updated timer so that your main event
 +loop will get the activity on this handle to get started.
 +
 +The easy handle will remain added to the multi handle until you remove it
 +again with \fIcurl_multi_remove_handle(3)\fP - even when a transfer with that
 +specific easy handle is completed.
 +
 +You should remove the easy handle from the multi stack before you terminate
 +first the easy handle and then the multi handle:
 +
 +1 - \fIcurl_multi_remove_handle(3)\fP
 +
 +2 - \fIcurl_easy_cleanup(3)\fP
 +
 +3 - \fIcurl_multi_cleanup(3)\fP
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3)," curl_multi_init "(3), "
 +.BR curl_multi_setopt "(3), " curl_multi_socket_action "(3) "
diff --cc docs/libcurl/gnurl_multi_assign.3
index 7cb2bf29b,000000000..395986966
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_assign.3
+++ b/docs/libcurl/gnurl_multi_assign.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_assign 3 "9 Jul 2006" "libcurl 7.16.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_assign \- set data to associate with an internal socket
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd,
 +                            void *sockptr);
 +.SH DESCRIPTION
 +This function creates an association in the multi handle between the given
 +socket and a private pointer of the application. This is designed for
 +\fIcurl_multi_socket_action(3)\fP uses.
 +
 +When set, the \fIsockptr\fP pointer will be passed to all future socket
 +callbacks for the specific \fIsockfd\fP socket.
 +
 +If the given \fIsockfd\fP isn't already in use by libcurl, this function will
 +return an error.
 +
 +libcurl only keeps one single pointer associated with a socket, so calling
 +this function several times for the same socket will make the last set pointer
 +get used.
 +
 +The idea here being that this association (socket to private pointer) is
 +something that just about every application that uses this API will need and
 +then libcurl can just as well do it since it already has an internal hash
 +table lookup for this.
 +.SH "RETURN VALUE"
 +The standard CURLMcode for multi interface error codes.
 +.SH "TYPICAL USAGE"
 +In a typical application you allocate a struct or at least use some kind of
 +semi-dynamic data for each socket that we must wait for action on when using
 +the \fIcurl_multi_socket_action(3)\fP approach.
 +
 +When our socket-callback gets called by libcurl and we get to know about yet
 +another socket to wait for, we can use \fIcurl_multi_assign(3)\fP to point out
 +the particular data so that when we get updates about this same socket again,
 +we don't have to find the struct associated with this socket by ourselves.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.5.
 +.SH "SEE ALSO"
 +.BR curl_multi_setopt "(3), " curl_multi_socket_action "(3) "
diff --cc docs/libcurl/gnurl_multi_cleanup.3
index cc3691137,000000000..6cb0537c2
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_cleanup.3
+++ b/docs/libcurl/gnurl_multi_cleanup.3
@@@ -1,50 -1,0 +1,50 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_cleanup 3 "1 March 2002" "libcurl 7.9.5" "libgnurl Manual"
 +.SH NAME
 +curl_multi_cleanup - close down a multi session
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLMcode curl_multi_cleanup( CURLM *multi_handle );"
 +.ad
 +.SH DESCRIPTION
 +Cleans up and removes a whole multi stack. It does not free or touch any
 +individual easy handles in any way - they still need to be closed
 +individually, using the usual \fIcurl_easy_cleanup(3)\fP way. The order of
 +cleaning up should be:
 +
 +1 - \fIcurl_multi_remove_handle(3)\fP before any easy handles are cleaned up
 +
 +2 - \fIcurl_easy_cleanup(3)\fP can now be called independently since the easy
 +handle is no longer connected to the multi handle
 +
 +3 - \fIcurl_multi_cleanup(3)\fP should be called when all easy handles are
 +removed
 +
 +Passing in a NULL pointer in \fImulti_handle\fP will make this function return
 +CURLM_BAD_HANDLE immediately with no other action.
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code. On success,
 +CURLM_OK is returned.
 +.SH "SEE ALSO"
 +.BR curl_multi_init "(3)," curl_easy_cleanup "(3)," curl_easy_init "(3)"
diff --cc docs/libcurl/gnurl_multi_fdset.3
index 81fb4b1dc,000000000..74cb22511
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_fdset.3
+++ b/docs/libcurl/gnurl_multi_fdset.3
@@@ -1,84 -1,0 +1,84 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_fdset 3 "2 Jan 2006" "libcurl 7.16.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_fdset - extracts file descriptor information from a multi handle
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +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);
 +.ad
 +.SH DESCRIPTION
 +This function extracts file descriptor information from a given multi_handle.
 +libcurl returns its fd_set sets. The application can use these to select() on,
 +but be sure to FD_ZERO them before calling this function as
 +\fIcurl_multi_fdset(3)\fP only adds its own descriptors, it doesn't zero or
 +otherwise remove any others. The \fIcurl_multi_perform(3)\fP function should
 +be called as soon as one of them is ready to be read from or written to.
 +
 +If the \fIread_fd_set\fP argument is not a null pointer, it points to an
 +object of type fd_set that on returns specifies the file descriptors to be
 +checked for being ready to read.
 +
 +If the \fIwrite_fd_set\fP argument is not a null pointer, it points to an
 +object of type fd_set that on return specifies the file descriptors to be
 +checked for being ready to write.
 +
 +If the \fIexc_fd_set\fP argument is not a null pointer, it points to an object
 +of type fd_set that on return specifies the file descriptors to be checked for
 +error conditions pending.
 +
 +If no file descriptors are set by libcurl, \fImax_fd\fP will contain -1 when
 +this function returns. Otherwise it will contain the highest descriptor number
 +libcurl set. When libcurl returns -1 in \fImax_fd\fP, it is because libcurl
 +currently does something that isn't possible for your application to monitor
 +with a socket and unfortunately you can then not know exactly when the current
 +action is completed using select(). You then need to wait a while before you
 +proceed and call \fIcurl_multi_perform(3)\fP anyway. How long to wait? Unless
 +\fIcurl_multi_timeout(3)\fP gives you a lower number, we suggest 100
 +milliseconds or so, but you may want to test it out in your own particular
 +conditions to find a suitable value.
 +
 +When doing select(), you should use \fIcurl_multi_timeout(3)\fP to figure out
 +how long to wait for action. Call \fIcurl_multi_perform(3)\fP even if no
 +activity has been seen on the fd_sets after the timeout expires as otherwise
 +internal retries and timeouts may not work as you'd think and want.
 +
 +If one of the sockets used by libcurl happens to be larger than what can be
 +set in an fd_set, which on POSIX systems means that the file descriptor is
 +larger than FD_SETSIZE, then libcurl will try to not set it. Setting a too
 +large file descriptor in an fd_set implies an out of bounds write which can
 +cause crashes, or worse. The effect of NOT storing it will possibly save you
 +from the crash, but will make your program NOT wait for sockets it should wait
 +for...
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code. See
 +\fIlibcurl-errors(3)\fP
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_wait "(3), "
 +.BR curl_multi_timeout "(3), " curl_multi_perform "(3), " select "(2) "
diff --cc docs/libcurl/gnurl_multi_info_read.3
index daa754a9a,000000000..e89b30f8d
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_info_read.3
+++ b/docs/libcurl/gnurl_multi_info_read.3
@@@ -1,94 -1,0 +1,94 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_info_read 3 "18 Dec 2004" "libcurl 7.10.3" "libgnurl Manual"
 +.SH NAME
 +curl_multi_info_read - read multi stack informationals
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMsg *curl_multi_info_read( CURLM *multi_handle,
 +                               int *msgs_in_queue);
 +.ad
 +.SH DESCRIPTION
 +Ask the multi handle if there are any messages/informationals from the
 +individual transfers. Messages may include informationals such as an 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
 +NULL is returned as a signal that there is no more to get at this point. The
 +integer pointed to with \fImsgs_in_queue\fP will contain the number of
 +remaining messages after this function was called.
 +
 +When you fetch a message using this function, it is removed from the internal
 +queue so calling this function again will not return the same message
 +again. It will instead return new messages at each new invoke until the queue
 +is emptied.
 +
 +\fBWARNING:\fP The data the returned pointer points to will not survive
 +calling \fIcurl_multi_cleanup(3)\fP, \fIcurl_multi_remove_handle(3)\fP or
 +\fIcurl_easy_cleanup(3)\fP.
 +
 +The 'CURLMsg' struct is very simple and only contains very basic information.
 +If more involved information is wanted, the particular "easy handle" is
 +present in that struct and can be used in subsequent regular
 +\fIcurl_easy_getinfo(3)\fP calls (or similar):
 +
 +.nf
 + 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;
 + };
 +.fi
 +When \fBmsg\fP is \fICURLMSG_DONE\fP, the message identifies a transfer that
 +is done, and then \fBresult\fP contains the return code for the easy handle
 +that just completed.
 +
 +At this point, there are no other \fBmsg\fP types defined.
 +.SH EXAMPLE
 +.nf
 +struct CURLMsg *m;
 +
 +/* call curl_multi_perform or curl_multi_socket_action first, then loop
 +   through and check if there are any transfers that have completed */
 +
 +do {
 +  int msgq = 0;
 +  m = curl_multi_info_read(multi_handle, &msgq);
 +  if(m && (m->msg == CURLMSG_DONE)) {
 +    CURL *e = m->easy_handle;
 +    transfers--;
 +    curl_multi_remove_handle(multi_handle, e);
 +    curl_easy_cleanup(e);
 +  }
 +} while(m);
 +.fi
 +.SH "RETURN VALUE"
 +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.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), " curl_multi_perform 
"(3)"
diff --cc docs/libcurl/gnurl_multi_init.3
index d06c12f4e,000000000..0b4f9e0ca
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_init.3
+++ b/docs/libcurl/gnurl_multi_init.3
@@@ -1,39 -1,0 +1,39 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_init 3 "1 March 2002" "libcurl 7.9.5" "libgnurl Manual"
 +.SH NAME
 +curl_multi_init - create a multi handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLM *curl_multi_init( );"
 +.ad
 +.SH DESCRIPTION
 +This function returns a CURLM handle to be used as input to all the other
 +multi-functions, sometimes referred to as a multi handle in some places in the
 +documentation. This init call MUST have a corresponding call to
 +\fIcurl_multi_cleanup(3)\fP when the operation is complete.
 +.SH RETURN VALUE
 +If this function returns NULL, something went wrong and you cannot use the
 +other curl functions.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3)," curl_global_init "(3)," curl_easy_init "(3)"
diff --cc docs/libcurl/gnurl_multi_perform.3
index f59cc5e53,000000000..76fa3ff12
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_perform.3
+++ b/docs/libcurl/gnurl_multi_perform.3
@@@ -1,130 -1,0 +1,130 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_perform 3 "1 March 2002" "libcurl 7.9.5" "libgnurl Manual"
 +.SH NAME
 +curl_multi_perform - reads/writes available data from each easy handle
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);
 +.ad
 +.SH DESCRIPTION
 +This function handles transfers on all the added handles that need attention
 +in an non-blocking fashion.
 +
 +When an application has found out there's data available for the multi_handle
 +or a timeout has elapsed, the application should call this function to
 +read/write whatever there is to read or write right now etc.
 +\fIcurl_multi_perform(3)\fP returns as soon as the reads/writes are done. This
 +function does not require that there actually is any data available for
 +reading or that data can be written, it can be called just in case. It will
 +write the number of handles that still transfer data in the second argument's
 +integer-pointer.
 +
 +If the amount of \fIrunning_handles\fP is changed from the previous call (or
 +is less than the amount of easy handles you've added to the multi handle), you
 +know that there is one or more transfers less "running". You can then call
 +\fIcurl_multi_info_read(3)\fP to get information about each individual
 +completed transfer, and that returned info includes CURLcode and more. If an
 +added handle fails very quickly, it may never be counted as a running_handle.
 +You could use \fIcurl_multi_info_read(3)\fP to track actual status of the
 +added handles in that case.
 +
 +When \fIrunning_handles\fP is set to zero (0) on the return of this function,
 +there is no longer any transfers in progress.
 +.SH EXAMPLE
 +.nf
 +#ifdef _WIN32
 +#define SHORT_SLEEP Sleep(100)
 +#else
 +#define SHORT_SLEEP usleep(100000)
 +#endif
 +
 +fd_set fdread;
 +fd_set fdwrite;
 +fd_set fdexcep;
 +int maxfd = -1;
 +
 +long curl_timeo;
 +
 +curl_multi_timeout(multi_handle, &curl_timeo);
 +if(curl_timeo < 0)
 +  curl_timeo = 1000;
 +
 +timeout.tv_sec = curl_timeo / 1000;
 +timeout.tv_usec = (curl_timeo % 1000) * 1000;
 +
 +FD_ZERO(&fdread);
 +FD_ZERO(&fdwrite);
 +FD_ZERO(&fdexcep);
 +
 +/* get file descriptors from the transfers */
 +mc = curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);
 +
 +if(maxfd == -1) {
 +  SHORT_SLEEP;
 +  rc = 0;
 +}
 +else
 +  rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
 +
 +switch(rc) {
 +case -1:
 +  /* select error */
 +  break;
 +case 0:
 +default:
 +  /* timeout or readable/writable sockets */
 +  curl_multi_perform(multi_handle, &still_running);
 +  break;
 +}
 +
 +/* if there are still transfers, loop! */
 +.fi
 +.SH "RETURN VALUE"
 +CURLMcode type, general libcurl multi interface error code.
 +
 +Before version 7.20.0 (released on February 9 2010): If you receive 
\fICURLM_CALL_MULTI_PERFORM\fP, this
 +basically means that you should call \fIcurl_multi_perform(3)\fP again, before
 +you select() on more actions. You don't have to do it immediately, but the
 +return code means that libcurl may have more data available to return or that
 +there may be more data to send off before it is "satisfied". Do note that
 +\fIcurl_multi_perform(3)\fP will return \fICURLM_CALL_MULTI_PERFORM\fP only
 +when it wants to be called again \fBimmediately\fP. When things are fine and
 +there is nothing immediate it wants done, it'll return \fICURLM_OK\fP and you
 +need to wait for \&"action" and then call this function again.
 +
 +This function only returns errors etc regarding the whole multi stack.
 +Problems still might have occurred on individual transfers even when this
 +function returns \fICURLM_OK\fP. Use \fIcurl_multi_info_read(3)\fP to figure
 +out how individual transfers did.
 +.SH "TYPICAL USAGE"
 +Most applications will use \fIcurl_multi_fdset(3)\fP to get the multi_handle's
 +file descriptors, and \fIcurl_multi_timeout(3)\fP to get a suitable timeout
 +period, then it'll wait for action on the file descriptors using
 +\fBselect(3)\fP. As soon as one or more file descriptor is ready,
 +\fIcurl_multi_perform(3)\fP gets called.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_wait "(3), "
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR libcurl-errors "(3)"
diff --cc docs/libcurl/gnurl_multi_poll.3
index adab68d5e,000000000..37fcd7581
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_poll.3
+++ b/docs/libcurl/gnurl_multi_poll.3
@@@ -1,117 -1,0 +1,117 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_poll 3 "29 Jul 2019" "libcurl 7.66.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_poll - polls on all easy handles in a multi handle
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_poll(CURLM *multi_handle,
 +                          struct curl_waitfd extra_fds[],
 +                          unsigned int extra_nfds,
 +                          int timeout_ms,
 +                          int *numfds);
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_multi_poll(3)\fP polls all file descriptors used by the curl easy
 +handles contained in the given multi handle set.  It will block until activity
 +is detected on at least one of the handles or \fItimeout_ms\fP has passed.
 +Alternatively, if the multi handle has a pending internal timeout that has a
 +shorter expiry time than \fItimeout_ms\fP, that shorter time will be used
 +instead to make sure timeout accuracy is reasonably kept.
 +
 +The calling application may pass additional curl_waitfd structures which are
 +similar to \fIpoll(2)\fP's pollfd structure to be waited on in the same call.
 +
 +On completion, if \fInumfds\fP is non-NULL, it will be populated with the
 +total number of file descriptors on which interesting events occurred. This
 +number can include both libcurl internal descriptors as well as descriptors
 +provided in \fIextra_fds\fP.
 +
 +The \fIcurl_multi_wakeup(3)\fP function can be used from another thread to
 +wake up this function and return faster. This is one of the details
 +that makes this function different than \fIcurl_multi_wait(3)\fP which cannot
 +be woken up this way.
 +
 +If no extra file descriptors are provided and libcurl has no file descriptor
 +to offer to wait for, this function will instead wait during \fItimeout_ms\fP
 +milliseconds (or shorter if an internal timer indicates so). This is the
 +other detail that makes this function different than
 +\fIcurl_multi_wait(3)\fP.
 +
 +This function is encouraged to be used instead of select(3) when using the
 +multi interface to allow applications to easier circumvent the common problem
 +with 1024 maximum file descriptors.
 +.SH curl_waitfd
 +.nf
 +struct curl_waitfd {
 +  curl_socket_t fd;
 +  short events;
 +  short revents;
 +};
 +.fi
 +.IP CURL_WAIT_POLLIN
 +Bit flag to curl_waitfd.events indicating the socket should poll on read
 +events such as new data received.
 +.IP CURL_WAIT_POLLPRI
 +Bit flag to curl_waitfd.events indicating the socket should poll on high
 +priority read events such as out of band data.
 +.IP CURL_WAIT_POLLOUT
 +Bit flag to curl_waitfd.events indicating the socket should poll on write
 +events such as the socket being clear to write without blocking.
 +.SH EXAMPLE
 +.nf
 +CURL *easy_handle;
 +CURLM *multi_handle;
 +
 +/* add the individual easy handle */
 +curl_multi_add_handle(multi_handle, easy_handle);
 +
 +do {
 +  CURLMcode mc;
 +  int numfds;
 +
 +  mc = curl_multi_perform(multi_handle, &still_running);
 +
 +  if(mc == CURLM_OK) {
 +    /* wait for activity or timeout */
 +    mc = curl_multi_poll(multi_handle, NULL, 0, 1000, &numfds);
 +  }
 +
 +  if(mc != CURLM_OK) {
 +    fprintf(stderr, "curl_multi failed, code %d.\\n", mc);
 +    break;
 +  }
 +
 +} while(still_running);
 +
 +curl_multi_remove_handle(multi_handle, easy_handle);
 +.fi
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code. See
 +\fIlibcurl-errors(3)\fP
 +.SH AVAILABILITY
 +This function was added in libcurl 7.66.0.
 +.SH "SEE ALSO"
 +.BR curl_multi_fdset "(3), " curl_multi_perform "(3), "
 +.BR curl_multi_wait "(3), " curl_multi_wakeup "(3)"
diff --cc docs/libcurl/gnurl_multi_remove_handle.3
index 0987ea287,000000000..9f7cc9e3b
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_remove_handle.3
+++ b/docs/libcurl/gnurl_multi_remove_handle.3
@@@ -1,47 -1,0 +1,47 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_remove_handle 3 "6 March 2002" "libcurl 7.9.5" "libgnurl 
Manual"
 +.SH NAME
 +curl_multi_remove_handle - remove an easy handle from a multi session
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle);
 +.ad
 +.SH DESCRIPTION
 +Removes a given \fIeasy_handle\fP from the \fImulti_handle\fP. This will make
 +the specified easy handle be removed from this multi handle's control.
 +
 +When the easy handle has been removed from a multi stack, it is again
 +perfectly legal to invoke \fIcurl_easy_perform(3)\fP on this easy handle.
 +
 +Removing an easy handle while being used is perfectly legal and will
 +effectively halt the transfer in progress involving that easy handle. All
 +other easy handles and transfers will remain unaffected.
 +
 +It is fine to remove a handle at any time during a transfer, just not from
 +within any libcurl callback function.
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3)," curl_multi_init "(3), "
 +.BR curl_multi_add_handle "(3) "
diff --cc docs/libcurl/gnurl_multi_setopt.3
index dd141be0c,000000000..583274eab
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_setopt.3
+++ b/docs/libcurl/gnurl_multi_setopt.3
@@@ -1,80 -1,0 +1,80 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_setopt 3 "4 Nov 2014" "libcurl 7.39.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_setopt \- set options for a curl multi handle
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM * multi_handle, CURLMoption option, param);
 +.SH DESCRIPTION
 +\fIcurl_multi_setopt(3)\fP is used to tell a libcurl multi handle how to
 +behave. By using the appropriate options to \fIcurl_multi_setopt(3)\fP, you
 +can change libcurl's behaviour when using that multi handle.  All options are
 +set with the \fIoption\fP followed by the parameter \fIparam\fP. That
 +parameter can be a \fBlong\fP, a \fBfunction pointer\fP, an \fBobject
 +pointer\fP or a \fBcurl_off_t\fP type, 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.
 +
 +.SH OPTIONS
 +.IP CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE
 +See \fICURLMOPT_CHUNK_LENGTH_PENALTY_SIZE(3)\fP
 +.IP CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE
 +See \fICURLMOPT_CONTENT_LENGTH_PENALTY_SIZE(3)\fP
 +.IP CURLMOPT_MAX_HOST_CONNECTIONS
 +See \fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP
 +.IP CURLMOPT_MAX_PIPELINE_LENGTH
 +See \fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP
 +.IP CURLMOPT_MAX_TOTAL_CONNECTIONS
 +See \fICURLMOPT_MAX_TOTAL_CONNECTIONS(3)\fP
 +.IP CURLMOPT_MAXCONNECTS
 +See \fICURLMOPT_MAXCONNECTS(3)\fP
 +.IP CURLMOPT_PIPELINING
 +See \fICURLMOPT_PIPELINING(3)\fP
 +.IP CURLMOPT_PIPELINING_SITE_BL
 +See \fICURLMOPT_PIPELINING_SITE_BL(3)\fP
 +.IP CURLMOPT_PIPELINING_SERVER_BL
 +See \fICURLMOPT_PIPELINING_SERVER_BL(3)\fP
 +.IP CURLMOPT_PUSHFUNCTION
 +See \fICURLMOPT_PUSHFUNCTION(3)\fP
 +.IP CURLMOPT_PUSHDATA
 +See \fICURLMOPT_PUSHDATA(3)\fP
 +.IP CURLMOPT_SOCKETFUNCTION
 +See \fICURLMOPT_SOCKETFUNCTION(3)\fP
 +.IP CURLMOPT_SOCKETDATA
 +See \fICURLMOPT_SOCKETDATA(3)\fP
 +.IP CURLMOPT_TIMERFUNCTION
 +See \fICURLMOPT_TIMERFUNCTION(3)\fP
 +.IP CURLMOPT_TIMERDATA
 +See \fICURLMOPT_TIMERDATA(3)\fP
 +.IP CURLMOPT_MAX_CONCURRENT_STREAMS
 +See \fICURLMOPT_MAX_CONCURRENT_STREAMS(3)\fP
 +.SH RETURNS
 +The standard CURLMcode for multi interface error codes. Note that it returns a
 +CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
 +doesn't know of.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_socket "(3), " curl_multi_info_read "(3)"
diff --cc docs/libcurl/gnurl_multi_socket.3
index 3ca76e668,000000000..01b801e89
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_socket.3
+++ b/docs/libcurl/gnurl_multi_socket.3
@@@ -1,159 -1,0 +1,159 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_socket 3 "9 Jul 2006" "libcurl 7.16.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_socket \- reads/writes available data
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd,
 +                            int *running_handles);
 +
 +CURLMcode curl_multi_socket_all(CURLM *multi_handle,
 +                                int *running_handles);
 +.fi
 +.SH DESCRIPTION
 +These functions are deprecated. Do not use! See
 +\fIcurl_multi_socket_action(3)\fP instead!
 +
 +At return, the integer \fBrunning_handles\fP points to will contain the number
 +of still running easy handles within the multi handle. When this number
 +reaches zero, all transfers are complete/done. Note that when you call
 +\fIcurl_multi_socket_action(3)\fP on a specific socket and the counter
 +decreases by one, it DOES NOT necessarily mean that this exact socket/transfer
 +is the one that completed. Use \fIcurl_multi_info_read(3)\fP to figure out
 +which easy handle that completed.
 +
 +The \fIcurl_multi_socket_action(3)\fP functions inform the application about
 +updates in the socket (file descriptor) status by doing none, one, or multiple
 +calls to the socket callback function set with the
 +\fICURLMOPT_SOCKETFUNCTION(3)\fP option to \fIcurl_multi_setopt(3)\fP. They
 +update the status with changes since the previous time the callback was
 +called.
 +
 +Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION(3)\fP option
 +with \fIcurl_multi_setopt(3)\fP. Your application will then get called with
 +information on how long to wait for socket actions at most before doing the
 +timeout action: call the \fIcurl_multi_socket_action(3)\fP function with the
 +\fBsockfd\fP argument set to CURL_SOCKET_TIMEOUT. You can also use the
 +\fIcurl_multi_timeout(3)\fP function to poll the value at any given time, but
 +for an event-based system using the callback is far better than relying on
 +polling the timeout value.
 +
 +Usage of \fIcurl_multi_socket(3)\fP is deprecated, whereas the function is
 +equivalent to \fIcurl_multi_socket_action(3)\fP with \fBev_bitmask\fP set to
 +0.
 +
 +Force libcurl to (re-)check all its internal sockets and transfers instead of
 +just a single one by calling \fIcurl_multi_socket_all(3)\fP. Note that there
 +should not be any reason to use this function!
 +.SH "CALLBACK DETAILS"
 +
 +The socket \fBcallback\fP function uses a prototype like this
 +.nf
 +
 +  int curl_socket_callback(CURL *easy,      /* easy handle */
 +                           curl_socket_t s, /* socket */
 +                           int action,      /* see values below */
 +                           void *userp,    /* private callback pointer */
 +                           void *socketp); /* private socket pointer */
 +
 +.fi
 +The callback MUST return 0.
 +
 +The \fIeasy\fP argument is a pointer to the easy handle that deals with this
 +particular socket. Note that a single handle may work with several sockets
 +simultaneously.
 +
 +The \fIs\fP argument is the actual socket value as you use it within your
 +system.
 +
 +The \fIaction\fP argument to the callback has one of five values:
 +.RS
 +.IP "CURL_POLL_NONE (0)"
 +register, not interested in readiness (yet)
 +.IP "CURL_POLL_IN (1)"
 +register, interested in read readiness
 +.IP "CURL_POLL_OUT (2)"
 +register, interested in write readiness
 +.IP "CURL_POLL_INOUT (3)"
 +register, interested in both read and write readiness
 +.IP "CURL_POLL_REMOVE (4)"
 +unregister
 +.RE
 +
 +The \fIsocketp\fP argument is a private pointer you have previously set with
 +\fIcurl_multi_assign(3)\fP to be associated with the \fIs\fP socket. If no
 +pointer has been set, socketp will be NULL. This argument is of course a
 +service to applications that want to keep certain data or structs that are
 +strictly associated to the given socket.
 +
 +The \fIuserp\fP argument is a private pointer you have previously set with
 +\fIcurl_multi_setopt(3)\fP and the \fICURLMOPT_SOCKETDATA(3)\fP option.
 +.SH "RETURN VALUE"
 +CURLMcode type, general libcurl multi interface error code.
 +
 +Legacy: If you receive \fICURLM_CALL_MULTI_PERFORM\fP, this basically means
 +that you should call \fIcurl_multi_socket(3)\fP again, before you wait for
 +more actions on libcurl's sockets. You don't have to do it immediately, but
 +the return code means that libcurl may have more data available to return or
 +that there may be more data to send off before it is "satisfied".
 +
 +In modern libcurls, \fICURLM_CALL_MULTI_PERFORM\fP or
 +\fICURLM_CALL_MULTI_SOCKET\fP should not be returned and no application needs
 +to care about them.
 +
 +NOTE that the return code is for the whole multi stack. Problems still might 
have
 +occurred on individual transfers even when one of these functions
 +return OK.
 +.SH "TYPICAL USAGE"
 +1. Create a multi handle
 +
 +2. Set the socket callback with \fICURLMOPT_SOCKETFUNCTION(3)\fP
 +
 +3. Set the timeout callback with \fICURLMOPT_TIMERFUNCTION(3)\fP, to get to
 +know what timeout value to use when waiting for socket activities.
 +
 +4. Add easy handles with curl_multi_add_handle()
 +
 +5. Provide some means to manage the sockets libcurl is using, so you can check
 +them for activity. This can be done through your application code, or by way
 +of an external library such as libevent or glib.
 +
 +6. Wait for activity on any of libcurl's sockets, use the timeout value your
 +callback has been told
 +
 +7, When activity is detected, call curl_multi_socket_action() for the
 +socket(s) that got action. If no activity is detected and the timeout expires,
 +call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP
 +
 +8. Go back to step 6.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4, and is deemed stable since
 +7.16.0.
 +
 +\fIcurl_multi_socket(3)\fP is deprecated, use
 +\fIcurl_multi_socket_action(3)\fP instead!
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR "the hiperfifo.c example"
diff --cc docs/libcurl/gnurl_multi_socket_action.3
index 35b709231,000000000..419cc12fb
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_socket_action.3
+++ b/docs/libcurl/gnurl_multi_socket_action.3
@@@ -1,96 -1,0 +1,96 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_socket_action 3 "9 Jul 2006" "libcurl 7.16.0" "libgnurl 
Manual"
 +.SH NAME
 +curl_multi_socket_action \- reads/writes available data given an action
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_socket_action(CURLM * multi_handle,
 +                                   curl_socket_t sockfd,
 +                                   int ev_bitmask,
 +                                   int *running_handles);
 +.fi
 +.SH DESCRIPTION
 +When the application has detected action on a socket handled by libcurl, it
 +should call \fIcurl_multi_socket_action(3)\fP with the \fBsockfd\fP argument
 +set to the socket with the action. When the events on a socket are known, they
 +can be passed as an events bitmask \fBev_bitmask\fP by first setting
 +\fBev_bitmask\fP to 0, and then adding using bitwise OR (|) any combination of
 +events to be chosen from CURL_CSELECT_IN, CURL_CSELECT_OUT or
 +CURL_CSELECT_ERR. When the events on a socket are unknown, pass 0 instead, and
 +libcurl will test the descriptor internally. It is also permissible to pass
 +CURL_SOCKET_TIMEOUT to the \fBsockfd\fP parameter in order to initiate the
 +whole process or when a timeout occurs.
 +
 +At return, \fBrunning_handles\fP points to the number of running easy handles
 +within the multi handle. When this number reaches zero, all transfers are
 +complete/done. When you call \fIcurl_multi_socket_action(3)\fP on a specific
 +socket and the counter decreases by one, it DOES NOT necessarily mean that
 +this exact socket/transfer is the one that completed. Use
 +\fIcurl_multi_info_read(3)\fP to figure out which easy handle that completed.
 +
 +The \fIcurl_multi_socket_action(3)\fP function informs the application about
 +updates in the socket (file descriptor) status by doing none, one, or multiple
 +calls to the socket callback function set with the
 +\fICURLMOPT_SOCKETFUNCTION(3)\fP option to \fIcurl_multi_setopt(3)\fP. They
 +update the status with changes since the previous time the callback was
 +called.
 +
 +Get the timeout time by setting the \fICURLMOPT_TIMERFUNCTION(3)\fP option
 +with \fIcurl_multi_setopt(3)\fP. Your application will then get called with
 +information on how long to wait for socket actions at most before doing the
 +timeout action: call the \fIcurl_multi_socket_action(3)\fP function with the
 +\fBsockfd\fP argument set to CURL_SOCKET_TIMEOUT. You can also use the
 +\fIcurl_multi_timeout(3)\fP function to poll the value at any given time, but
 +for an event-based system using the callback is far better than relying on
 +polling the timeout value.
 +.SH "TYPICAL USAGE"
 +1. Create a multi handle
 +
 +2. Set the socket callback with \fICURLMOPT_SOCKETFUNCTION(3)\fP
 +
 +3. Set the timeout callback with \fICURLMOPT_TIMERFUNCTION(3)\fP, to get to
 +know what timeout value to use when waiting for socket activities.
 +
 +4. Add easy handles with curl_multi_add_handle()
 +
 +5. Provide some means to manage the sockets libcurl is using, so you can check
 +them for activity. This can be done through your application code, or by way
 +of an external library such as libevent or glib.
 +
 +6. Call curl_multi_socket_action(..., CURL_SOCKET_TIMEOUT, 0, ...)
 +to kickstart everything. To get one or more callbacks called.
 +
 +7. Wait for activity on any of libcurl's sockets, use the timeout value your
 +callback has been told.
 +
 +8, When activity is detected, call curl_multi_socket_action() for the
 +socket(s) that got action. If no activity is detected and the timeout expires,
 +call \fIcurl_multi_socket_action(3)\fP with \fICURL_SOCKET_TIMEOUT\fP.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4, and is deemed stable since 7.16.0.
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR "the hiperfifo.c example"
diff --cc docs/libcurl/gnurl_multi_strerror.3
index feb6cd684,000000000..24dbdb946
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_strerror.3
+++ b/docs/libcurl/gnurl_multi_strerror.3
@@@ -1,37 -1,0 +1,37 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_strerror 3 "26 Apr 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_multi_strerror - return string describing error code
 +.SH SYNOPSIS
 +.nf
 +.B #include <gnurl/curl.h>
 +.BI "const char *curl_multi_strerror(CURLMcode " errornum ");"
 +.SH DESCRIPTION
 +The curl_multi_strerror() function returns a string describing the CURLMcode
 +error code passed in the argument \fIerrornum\fP.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.12.0
 +.SH RETURN VALUE
 +A pointer to a null-terminated string.
 +.SH "SEE ALSO"
 +.BR libcurl-errors "(3), " curl_easy_strerror "(3), " curl_share_strerror 
"(3)"
diff --cc docs/libcurl/gnurl_multi_timeout.3
index e2620dd8f,000000000..76e45ac25
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_timeout.3
+++ b/docs/libcurl/gnurl_multi_timeout.3
@@@ -1,78 -1,0 +1,78 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_timeout 3 "2 Jan 2006" "libcurl 7.16.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_timeout \- how long to wait for action before proceeding
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_timeout(CURLM *multi_handle, long *timeout);
 +.SH DESCRIPTION
 +
 +An application using the libcurl multi interface should call
 +\fIcurl_multi_timeout(3)\fP to figure out how long it should wait for socket
 +actions \- at most \- before proceeding.
 +
 +Proceeding means either doing the socket-style timeout action: call the
 +\fIcurl_multi_socket_action(3)\fP function with the \fBsockfd\fP argument set
 +to CURL_SOCKET_TIMEOUT, or call \fIcurl_multi_perform(3)\fP if you're using
 +the simpler and older multi interface approach.
 +
 +The timeout value returned in the long \fBtimeout\fP points to, is in number
 +of milliseconds at this very moment. If 0, it means you should proceed
 +immediately without waiting for anything. If it returns -1, there's no timeout
 +at all set.
 +
 +An application that uses the multi_socket API SHOULD NOT use this function, 
but
 +SHOULD instead use \fIcurl_multi_setopt(3)\fP and its
 +\fPCURLMOPT_TIMERFUNCTION\fP option for proper and desired behavior.
 +
 +Note: if libcurl returns a -1 timeout here, it just means that libcurl
 +currently has no stored timeout value. You must not wait too long (more than a
 +few seconds perhaps) before you call curl_multi_perform() again.
 +.SH EXAMPLE
 +.nf
 +struct timeval timeout;
 +long timeo;
 +
 +curl_multi_timeout(multi_handle, &timeo);
 +if(timeo < 0)
 +  /* no set timeout, use a default */
 +  timeo = 980;
 +
 +timeout.tv_sec = timeo / 1000;
 +timeout.tv_usec = (timeo % 1000) * 1000;
 +
 +/* wait for activities no longer than the set timeout */
 +select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
 +.fi
 +.SH "RETURN VALUE"
 +The standard CURLMcode for multi interface error codes.
 +.SH "TYPICAL USAGE"
 +Call \fIcurl_multi_timeout(3)\fP, then wait for action on the sockets. You
 +figure out which sockets to wait for by calling \fIcurl_multi_fdset(3)\fP or
 +by a previous call to \fIcurl_multi_socket(3)\fP.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.15.4.
 +.SH "SEE ALSO"
 +.BR curl_multi_fdset "(3), " curl_multi_info_read "(3), "
 +.BR curl_multi_socket "(3), " curl_multi_setopt "(3) "
diff --cc docs/libcurl/gnurl_multi_wait.3
index 21c0842b4,000000000..64a7426a9
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_wait.3
+++ b/docs/libcurl/gnurl_multi_wait.3
@@@ -1,123 -1,0 +1,123 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_wait 3 "12 Jul 2012" "libcurl 7.28.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_wait - polls on all easy handles in a multi handle
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_wait(CURLM *multi_handle,
 +                          struct curl_waitfd extra_fds[],
 +                          unsigned int extra_nfds,
 +                          int timeout_ms,
 +                          int *numfds);
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_multi_wait(3)\fP polls all file descriptors used by the curl easy
 +handles contained in the given multi handle set.  It will block until activity
 +is detected on at least one of the handles or \fItimeout_ms\fP has passed.
 +Alternatively, if the multi handle has a pending internal timeout that has a
 +shorter expiry time than \fItimeout_ms\fP, that shorter time will be used
 +instead to make sure timeout accuracy is reasonably kept.
 +
 +The calling application may pass additional curl_waitfd structures which are
 +similar to \fIpoll(2)\fP's pollfd structure to be waited on in the same call.
 +
 +On completion, if \fInumfds\fP is non-NULL, it will be populated with the
 +total number of file descriptors on which interesting events occurred. This
 +number can include both libcurl internal descriptors as well as descriptors
 +provided in \fIextra_fds\fP.
 +
 +If no extra file descriptors are provided and libcurl has no file descriptor
 +to offer to wait for, this function will return immediately. (Try
 +\fIcurl_multi_poll(3)\fP instead if you rather avoid this behavior.)
 +
 +This function is encouraged to be used instead of select(3) when using the
 +multi interface to allow applications to easier circumvent the common problem
 +with 1024 maximum file descriptors.
 +.SH curl_waitfd
 +.nf
 +struct curl_waitfd {
 +  curl_socket_t fd;
 +  short events;
 +  short revents;
 +};
 +.fi
 +.IP CURL_WAIT_POLLIN
 +Bit flag to curl_waitfd.events indicating the socket should poll on read
 +events such as new data received.
 +.IP CURL_WAIT_POLLPRI
 +Bit flag to curl_waitfd.events indicating the socket should poll on high
 +priority read events such as out of band data.
 +.IP CURL_WAIT_POLLOUT
 +Bit flag to curl_waitfd.events indicating the socket should poll on write
 +events such as the socket being clear to write without blocking.
 +.SH EXAMPLE
 +.nf
 +CURL *easy_handle;
 +CURLM *multi_handle;
 +
 +/* add the individual easy handle */
 +curl_multi_add_handle(multi_handle, easy_handle);
 +
 +do {
 +  CURLMcode mc;
 +  int numfds;
 +
 +  mc = curl_multi_perform(multi_handle, &still_running);
 +
 +  if(mc == CURLM_OK ) {
 +    /* wait for activity, timeout or "nothing" */
 +    mc = curl_multi_wait(multi_handle, NULL, 0, 1000, &numfds);
 +  }
 +
 +  if(mc != CURLM_OK) {
 +    fprintf(stderr, "curl_multi failed, code %d.\\n", mc);
 +    break;
 +  }
 +
 +  /* 'numfds' being zero means either a timeout or no file descriptors to
 +     wait for. Try timeout on first occurrence, then assume no file
 +     descriptors and no file descriptors to wait for means wait for 100
 +     milliseconds. */
 +
 +  if(!numfds) {
 +    repeats++; /* count number of repeated zero numfds */
 +    if(repeats > 1) {
 +      WAITMS(100); /* sleep 100 milliseconds */
 +    }
 +  }
 +  else
 +    repeats = 0;
 +
 +} while(still_running);
 +
 +curl_multi_remove_handle(multi_handle, easy_handle);
 +.fi
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code. See
 +\fIlibcurl-errors(3)\fP
 +.SH AVAILABILITY
 +This function was added in libcurl 7.28.0.
 +.SH "SEE ALSO"
 +.BR curl_multi_fdset "(3), " curl_multi_perform "(3)", curl_multi_poll "(3) ",
diff --cc docs/libcurl/gnurl_multi_wakeup.3
index c47f85549,000000000..f029fb721
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_wakeup.3
+++ b/docs/libcurl/gnurl_multi_wakeup.3
@@@ -1,86 -1,0 +1,86 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_multi_wakeup 3 "17 Nov 2019" "libcurl 7.68.0" "libgnurl Manual"
 +.SH NAME
 +curl_multi_wakeup - wakes up a sleeping curl_multi_poll call
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_wakeup(CURLM *multi_handle);
 +.ad
 +.SH DESCRIPTION
 +This function can be called from any thread and it wakes up a
 +sleeping \fIcurl_multi_poll(3)\fP call that is currently (or will be)
 +waiting for activity or a timeout.
 +
 +If the function is called when there is no \fIcurl_multi_poll(3)\fP call,
 +it will cause the next call to return immediately.
 +
 +Calling this function only guarantees to wake up the current (or the next
 +if there is no current) \fIcurl_multi_poll(3)\fP call, which means it is
 +possible that multiple calls to this function will wake up the same waiting
 +operation.
 +
 +This function has no effect on \fIcurl_multi_wait(3)\fP calls.
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code.
 +.SH AVAILABILITY
 +Added in 7.68.0
 +.SH EXAMPLE
 +.nf
 +CURL *easy_handle;
 +CURLM *multi_handle;
 +
 +/* add the individual easy handle */
 +curl_multi_add_handle(multi_handle, easy_handle);
 +
 +/* this is thread 1 */
 +do {
 +  CURLMcode mc;
 +  int numfds;
 +
 +  mc = curl_multi_perform(multi_handle, &still_running);
 +
 +  if(mc == CURLM_OK) {
 +    /* wait for activity, timeout or wakeup */
 +    mc = curl_multi_poll(multi_handle, NULL, 0, 10000, &numfds);
 +  }
 +
 +  if(time_to_die())
 +    exit(1);
 +
 +} while(still_running);
 +
 +curl_multi_remove_handle(multi_handle, easy_handle);
 +
 +/* this is thread 2 */
 +
 +if(something makes us decide to stop thread 1) {
 +
 +  set_something_to_signal_thread_1_to_exit();
 +
 +  curl_multi_wakeup(multi_handle);
 +}
 +
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_multi_poll "(3), " curl_multi_wait "(3)"
diff --cc docs/libcurl/gnurl_share_cleanup.3
index 9c07e0cbb,000000000..e3352573d
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_cleanup.3
+++ b/docs/libcurl/gnurl_share_cleanup.3
@@@ -1,42 -1,0 +1,42 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_share_cleanup 3 "8 Aug 2003" "libcurl 7.10.7" "libgnurl Manual"
 +.SH NAME
 +curl_share_cleanup - Clean up a shared object
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLSHcode curl_share_cleanup(CURLSH *" share_handle ");"
 +.ad
 +.SH DESCRIPTION
 +This function deletes a shared object. The share handle cannot be used anymore
 +when this function has been called.
 +
 +Passing in a NULL pointer in \fIshare_handle\fP will make this function return
 +immediately with no action.
 +.SH RETURN VALUE
 +CURLSHE_OK (zero) means that the option was set properly, non-zero means an
 +error occurred as \fI<gnurl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
 +man page for the full list with descriptions. If an error occurs, then the
 +share object will not be deleted.
 +.SH "SEE ALSO"
 +.BR curl_share_init "(3), " curl_share_setopt "(3)"
diff --cc docs/libcurl/gnurl_share_init.3
index 4b479a614,000000000..954b10324
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_init.3
+++ b/docs/libcurl/gnurl_share_init.3
@@@ -1,43 -1,0 +1,43 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_share_init 3 "8 Aug 2003" "libcurl 7.10.7" "libgnurl Manual"
 +.SH NAME
 +curl_share_init - Create a shared object
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLSH *curl_share_init( );"
 +.ad
 +.SH DESCRIPTION
 +This function returns a CURLSH handle to be used as input to all the other
 +share-functions, sometimes referred to as a share handle in some places in the
 +documentation. This init call MUST have a corresponding call to
 +\fIcurl_share_cleanup\fP when all operations using the share are complete.
 +
 +This \fIshare handle\fP is what you pass to curl using the
 +\fICURLOPT_SHARE(3)\fP option with \fIcurl_easy_setopt(3)\fP, to make that
 +specific curl handle use the data in this share.
 +.SH RETURN VALUE
 +If this function returns NULL, something went wrong (out of memory, etc.)
 +and therefore the share object was not created.
 +.SH "SEE ALSO"
 +.BR curl_share_cleanup "(3), " curl_share_setopt "(3)"
diff --cc docs/libcurl/gnurl_share_setopt.3
index a446b6451,000000000..022211149
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_setopt.3
+++ b/docs/libcurl/gnurl_share_setopt.3
@@@ -1,114 -1,0 +1,114 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_share_setopt 3 "8 Aug 2003" "libcurl 7.10.7" "libgnurl Manual"
 +.SH NAME
 +curl_share_setopt - Set options for a shared object
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter);
 +.ad
 +.SH DESCRIPTION
 +Set the \fIoption\fP to \fIparameter\fP for the given \fIshare\fP.
 +.SH OPTIONS
 +.IP CURLSHOPT_LOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void lock_function(CURL *handle, curl_lock_data data, curl_lock_access access,
 +void *userptr);
 +
 +The \fIdata\fP argument tells what kind of data libcurl wants to lock. Make
 +sure that the callback uses a different lock for each kind of data.
 +
 +\fIaccess\fP defines what access type libcurl wants, shared or single.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_UNLOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void unlock_function(CURL *handle, curl_lock_data data, void *userptr);
 +
 +\fIdata\fP defines what data libcurl wants to unlock, and you must make sure
 +that only one lock is given at any time for each kind of data.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_SHARE
 +The \fIparameter\fP specifies a type of data that should be shared. This may
 +be set to one of the values described below.
 +.RS
 +.IP CURL_LOCK_DATA_COOKIE
 +Cookie data will be shared across the easy handles using this shared object.
 +Note that this does not activate an easy handle's cookie handling. You can do
 +that separately by using \fICURLOPT_COOKIEFILE(3)\fP for example.
 +.IP CURL_LOCK_DATA_DNS
 +Cached DNS hosts will be shared across the easy handles using this shared
 +object. Note that when you use the multi interface, all easy handles added to
 +the same multi handle will share DNS cache by default without using this
 +option.
 +.IP CURL_LOCK_DATA_SSL_SESSION
 +SSL session IDs will be shared across the easy handles using this shared
 +object. This will reduce the time spent in the SSL handshake when reconnecting
 +to the same server. Note SSL session IDs are reused within the same easy 
handle
 +by default. Note this symbol was added in 7.10.3 but was not implemented until
 +7.23.0.
 +.IP CURL_LOCK_DATA_CONNECT
 +Put the connection cache in the share object and make all easy handles using
 +this share object share the connection cache.
 +
 +Note that due to a known bug, it is not safe to share connections this way
 +between multiple concurrent threads.
 +
 +Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing only
 +get additional transfers added to them if the existing connection is held by
 +the same multi or easy handle. libcurl does not support doing HTTP/2 streams
 +in different threads using a shared connection.
 +
 +Support for \fBCURL_LOCK_DATA_CONNECT\fP was added in 7.57.0, but the symbol
 +existed before this.
 +
 +Note that when you use the multi interface, all easy handles added to the same
 +multi handle will share connection cache by default without using this option.
 +.IP CURL_LOCK_DATA_PSL
 +The Public Suffix List stored in the share object is made available to all
 +easy handle bound to the later. Since the Public Suffix List is periodically
 +refreshed, this avoids updates in too many different contexts.
 +
 +\fBCURL_LOCK_DATA_PSL\fP exists since 7.61.0.
 +
 +Note that when you use the multi interface, all easy handles added to the same
 +multi handle will share PSL cache by default without using this option.
 +.RE
 +.IP CURLSHOPT_UNSHARE
 +This option does the opposite of \fICURLSHOPT_SHARE\fP. It specifies that
 +the specified \fIparameter\fP will no longer be shared. Valid values are
 +the same as those for \fICURLSHOPT_SHARE\fP.
 +.IP CURLSHOPT_USERDATA
 +The \fIparameter\fP allows you to specify a pointer to data that will be 
passed
 +to the lock_function and unlock_function each time it is called.
 +.SH RETURN VALUE
 +CURLSHE_OK (zero) means that the option was set properly, non-zero means an
 +error occurred as \fI<gnurl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
 +man page for the full list with descriptions.
 +.SH "SEE ALSO"
 +.BR curl_share_cleanup "(3), " curl_share_init "(3)"
diff --cc docs/libcurl/gnurl_share_strerror.3
index 5cb755742,000000000..b579298d5
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_strerror.3
+++ b/docs/libcurl/gnurl_share_strerror.3
@@@ -1,37 -1,0 +1,37 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_share_strerror 3 "26 Apr 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_share_strerror - return string describing error code
 +.SH SYNOPSIS
 +.nf
 +.B #include <gnurl/curl.h>
 +.BI "const char *curl_share_strerror(CURLSHcode " errornum ");"
 +.SH DESCRIPTION
 +The curl_share_strerror() function returns a string describing the CURLSHcode
 +error code passed in the argument \fIerrornum\fP.
 +.SH AVAILABILITY
 +This function was added in libcurl 7.12.0
 +.SH RETURN VALUE
 +A pointer to a null-terminated string.
 +.SH "SEE ALSO"
 +.BR libcurl-errors "(3), " curl_multi_strerror "(3), " curl_easy_strerror 
"(3)"
diff --cc docs/libcurl/gnurl_slist_append.3
index 963ad760d,000000000..c76cb7881
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_slist_append.3
+++ b/docs/libcurl/gnurl_slist_append.3
@@@ -1,72 -1,0 +1,72 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_slist_append 3 "19 Jun 2003" "libcurl 7.10.4" "libgnurl Manual"
 +.SH NAME
 +curl_slist_append - add a string to an slist
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "struct curl_slist *curl_slist_append(struct curl_slist *" list,
 +.BI "const char * "string ");"
 +.ad
 +.SH DESCRIPTION
 +\fIcurl_slist_append(3)\fP appends a string to a linked list of strings. The
 +existing \fBlist\fP should be passed as the first argument and the new list is
 +returned from this function. Pass in NULL in the \fBlist\fP argument to create
 +a new list. The specified \fBstring\fP has been appended when this function
 +returns. \fIcurl_slist_append(3)\fP copies the string.
 +
 +The list should be freed again (after usage) with
 +\fIcurl_slist_free_all(3)\fP.
 +.SH RETURN VALUE
 +A null pointer is returned if anything went wrong, otherwise the new list
 +pointer is returned. To avoid overwriting an existing non-empty list on
 +failure, the new list should be returned to a temporary variable which can
 +be tested for NULL before updating the original list pointer.
 +.SH EXAMPLE
 +.nf
 +CURL *handle;
 +struct curl_slist *slist=NULL;
 +struct curl_slist *temp=NULL;
 +
 +slist = curl_slist_append(slist, "pragma:");
 +
 +if (slist == NULL)
 +  return -1;
 +
 +temp = curl_slist_append(slist, "Accept:")
 +
 +if (temp == NULL) {
 +  curl_slist_free_all(slist);
 +  return -1;
 +}
 +
 +slist = temp;
 +
 +curl_easy_setopt(handle, CURLOPT_HTTPHEADER, slist);
 +
 +curl_easy_perform(handle);
 +
 +curl_slist_free_all(slist); /* free the list again */
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_slist_free_all "(3), "
diff --cc docs/libcurl/gnurl_slist_free_all.3
index bb9c522f7,000000000..30ab779fa
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_slist_free_all.3
+++ b/docs/libcurl/gnurl_slist_free_all.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_slist_free_all 3 "5 March 2001" "libcurl 7.0" "libgnurl Manual"
 +.SH NAME
 +curl_slist_free_all - free an entire curl_slist list
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "void curl_slist_free_all(struct curl_slist *" list);
 +.ad
 +.SH DESCRIPTION
 +curl_slist_free_all() removes all traces of a previously built curl_slist
 +linked list.
 +
 +Passing in a NULL pointer in \fIlist\fP will make this function return
 +immediately with no action.
 +.SH RETURN VALUE
 +Nothing.
 +.SH EXAMPLE
 +.nf
 +CURL *handle;
 +struct curl_slist *slist=NULL;
 +
 +slist = curl_slist_append(slist, "X-libcurl: coolness");
 +
 +if (slist == NULL)
 +  return -1;
 +
 +curl_easy_setopt(handle, CURLOPT_HTTPHEADER, slist);
 +
 +curl_easy_perform(handle);
 +
 +curl_slist_free_all(slist); /* free the list again */
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_slist_append "(3), "
diff --cc docs/libcurl/gnurl_strequal.3
index 4b7752cd7,000000000..3dab5cec2
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_strequal.3
+++ b/docs/libcurl/gnurl_strequal.3
@@@ -1,51 -1,0 +1,51 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_strequal 3 "30 April 2004" "libcurl 7.12" "libgnurl Manual"
 +.SH NAME
 +curl_strequal, curl_strnequal - case insensitive string comparisons
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "int curl_strequal(char *" str1 ", char *" str2 ");"
 +.sp
 +.BI "int curl_strnequal(char *" str1 ", char *" str2 ", size_t " len ");"
 +.SH DESCRIPTION
 +The
 +.B curl_strequal()
 +function compares the two strings \fIstr1\fP and \fIstr2\fP, ignoring the case
 +of the characters. It returns a non-zero (TRUE) integer if the strings are
 +identical.
 +.sp
 +The \fBcurl_strnequal()\fP function is similar, except it only compares the
 +first \fIlen\fP characters of \fIstr1\fP.
 +.sp
 +These functions are provided by libcurl to enable applications to compare
 +strings in a truly portable manner. There are no standard portable case
 +insensitive string comparison functions. These two work on all platforms.
 +.SH AVAILABILITY
 +These functions will be removed from the public libcurl API in a near
 +future. They will instead be made "available" by source code access only, and
 +then as curlx_strequal() and curlx_strenqual().
 +.SH RETURN VALUE
 +Non-zero if the strings are identical. Zero if they're not.
 +.SH "SEE ALSO"
 +.BR strcmp "(3), " strcasecmp "(3)"
diff --cc docs/libcurl/gnurl_unescape.3
index c88b3947f,000000000..6fb54eb23
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_unescape.3
+++ b/docs/libcurl/gnurl_unescape.3
@@@ -1,48 -1,0 +1,48 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_unescape 3 "22 March 2001" "libcurl 7.7" "libgnurl Manual"
 +.SH NAME
 +curl_unescape - URL decodes the given string
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_unescape( const char *" url ", int "length " );"
 +.ad
 +.SH DESCRIPTION
 +Obsolete function. Use \fIcurl_easy_unescape(3)\fP instead!
 +
 +This function will convert the given URL encoded input string to a "plain
 +string" and return that as a new allocated string. All input characters that
 +are URL encoded (%XX where XX is a two-digit hexadecimal number) will be
 +converted to their plain text versions.
 +
 +If the 'length' argument is set to 0, curl_unescape() will use strlen() on the
 +input 'url' string to find out the size.
 +
 +You must \fIcurl_free(3)\fP the returned string when you're done with it.
 +.SH AVAILABILITY
 +Since 7.15.4, \fIcurl_easy_unescape(3)\fP should be used. This function will
 +be removed in a future release.
 +.SH RETURN VALUE
 +A pointer to a null-terminated string or NULL if it failed.
 +.SH "SEE ALSO"
 +.br curl_easy_escape "(3)," curl_easy_unescape "(3)," curl_free "(3)," RFC 
2396
diff --cc docs/libcurl/gnurl_url.3
index 325865ae2,000000000..68b6cd042
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_url.3
+++ b/docs/libcurl/gnurl_url.3
@@@ -1,53 -1,0 +1,53 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_url 3 "6 Aug 2018" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_url - returns a new CURLU handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +CURLU *curl_url();
 +.SH DESCRIPTION
 +This function will allocates and returns a pointer to a fresh CURLU handle, to
 +be used for further use of the URL API.
 +.SH RETURN VALUE
 +Returns a \fBCURLU *\fP if successful, or NULL if out of memory.
 +.SH EXAMPLE
 +.nf
 +  CURLUcode rc;
 +  CURLU *url = curl_url();
 +  rc = curl_url_set(url, CURLUPART_URL, "https://example.com";, 0);
 +  if(!rc) {
 +    char *scheme;
 +    rc = curl_url_get(url, CURLUPART_SCHEME, &scheme, 0);
 +    if(!rc) {
 +      printf("the scheme is %s\\n", scheme);
 +      curl_free(scheme);
 +    }
 +    curl_url_cleanup(url);
 +  }
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.62.0
 +.SH "SEE ALSO"
 +.BR curl_url_cleanup "(3), " curl_url_get "(3), " curl_url_set "(3), "
 +.BR curl_url_dup "(3), "
diff --cc docs/libcurl/gnurl_url_cleanup.3
index f0bfefdba,000000000..7452601f9
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_url_cleanup.3
+++ b/docs/libcurl/gnurl_url_cleanup.3
@@@ -1,44 -1,0 +1,44 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_url_cleanup 3 "6 Aug 2018" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_url_cleanup - free a CURLU handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +void curl_url_cleanup(CURLU *handle);
 +.fi
 +.SH DESCRIPTION
 +Frees all the resources associated with the given CURLU handle!
 +.SH RETURN VALUE
 +none
 +.SH EXAMPLE
 +.nf
 +  CURLU *url = curl_url();
 +  curl_url_set(url, CURLUPART_URL, "https://example.com";, 0);
 +  curl_url_cleanup(url);
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.62.0
 +.SH "SEE ALSO"
 +.BR curl_url_dup "(3), " curl_url "(3), " curl_url_set "(3), "
 +.BR curl_url_get "(3), "
diff --cc docs/libcurl/gnurl_url_dup.3
index 7fa8d17c7,000000000..ea11af04e
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_url_dup.3
+++ b/docs/libcurl/gnurl_url_dup.3
@@@ -1,52 -1,0 +1,52 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_url_dup 3 "6 Aug 2018" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_url_dup - duplicate a CURLU handle
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +CURLU *curl_url_dup(CURLU *inhandle);
 +.fi
 +.SH DESCRIPTION
 +Duplicates a given CURLU \fIinhandle\fP and all its contents and returns a
 +pointer to a new CURLU handle. The new handle also needs to be freed with
 +\fIcurl_url_cleanup(3)\fP.
 +.SH RETURN VALUE
 +Returns a new handle or NULL if out of memory.
 +.SH EXAMPLE
 +.nf
 +  CURLUcode rc;
 +  CURLU *url = curl_url();
 +  CURLU *url2;
 +  rc = curl_url_set(url, CURLUPART_URL, "https://example.com";, 0);
 +  if(!rc) {
 +    url2 = curl_url_dup(url); /* clone it! */
 +    curl_url_cleanup(url2);
 +  }
 +  curl_url_cleanup(url);
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.62.0
 +.SH "SEE ALSO"
 +.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
 +.BR curl_url_get "(3), "
diff --cc docs/libcurl/gnurl_url_get.3
index 20edd1427,000000000..647e76432
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_url_get.3
+++ b/docs/libcurl/gnurl_url_get.3
@@@ -1,115 -1,0 +1,115 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_url_get 3 "6 Aug 2018" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_url_get - extract a part from a URL
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +.nf
 +CURLUcode curl_url_get(CURLU *url,
 +                       CURLUPart what,
 +                       char **part,
 +                       unsigned int flags)
 +.fi
 +.SH DESCRIPTION
 +Given the \fIurl\fP handle of an already parsed URL, this function lets the
 +user extract individual pieces from it.
 +
 +The \fIwhat\fP argument should be the particular part to extract (see list
 +below) and \fIpart\fP points to a 'char *' to get updated to point to a newly
 +allocated string with the contents.
 +
 +The \fIflags\fP argument is a bitmask with individual features.
 +
 +The returned part pointer must be freed with \fIcurl_free(3)\fP after use.
 +.SH FLAGS
 +The flags argument is zero, one or more bits set in a bitmask.
 +.IP CURLU_DEFAULT_PORT
 +If the handle has no port stored, this option will make \fIcurl_url_get(3)\fP
 +return the default port for the used scheme.
 +.IP CURLU_DEFAULT_SCHEME
 +If the handle has no scheme stored, this option will make
 +\fIcurl_url_get(3)\fP return the default scheme instead of error.
 +.IP CURLU_NO_DEFAULT_PORT
 +Instructs \fIcurl_url_get(3)\fP to not return a port number if it matches the
 +default port for the scheme.
 +.IP CURLU_URLDECODE
 +Asks \fIcurl_url_get(3)\fP to URL decode the contents before returning it. It
 +will not attempt to decode the scheme, the port number or the full URL.
 +
 +The query component will also get plus-to-space conversion as a bonus when
 +this bit is set.
 +
 +Note that this URL decoding is charset unaware and you will get a zero
 +terminated string back with data that could be intended for a particular
 +encoding.
 +
 +If there's any byte values lower than 32 in the decoded string, the get
 +operation will return an error instead.
 +.SH PARTS
 +.IP CURLUPART_URL
 +When asked to return the full URL, \fIcurl_url_get(3)\fP will return a
 +normalized and possibly cleaned up version of what was previously parsed.
 +.IP CURLUPART_SCHEME
 +Scheme cannot be URL decoded on get.
 +.IP CURLUPART_USER
 +.IP CURLUPART_PASSWORD
 +.IP CURLUPART_OPTIONS
 +.IP CURLUPART_HOST
 +The host name. If it is an IPv6 numeric address, the zoneid will not be part
 +of it but is provided separately in \fICURLUPART_ZONEID\fP. IPv6 numerical
 +addresses are returned within brackets ([]).
 +.IP CURLUPART_ZONEID
 +If the host name is a numeric IPv6 address, this field might also be set.
 +.IP CURLUPART_PORT
 +Port cannot be URL decoded on get.
 +.IP CURLUPART_PATH
 +.IP CURLUPART_QUERY
 +The query part will also get pluses converted to space when asked to URL
 +decode on get with the CURLU_URLDECODE bit.
 +.IP CURLUPART_FRAGMENT
 +.SH RETURN VALUE
 +Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
 +fine.
 +
 +If this function returns an error, no URL part is returned.
 +.SH EXAMPLE
 +.nf
 +  CURLUcode rc;
 +  CURLU *url = curl_url();
 +  rc = curl_url_set(url, CURLUPART_URL, "https://example.com";, 0);
 +  if(!rc) {
 +    char *scheme;
 +    rc = curl_url_get(url, CURLUPART_SCHEME, &scheme, 0);
 +    if(!rc) {
 +      printf("the scheme is %s\\n", scheme);
 +      curl_free(scheme);
 +    }
 +    curl_url_cleanup(url);
 +  }
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
 +.SH "SEE ALSO"
 +.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_set "(3), "
 +.BR curl_url_dup "(3), "
diff --cc docs/libcurl/gnurl_url_set.3
index 043ec38fb,000000000..23bc33279
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_url_set.3
+++ b/docs/libcurl/gnurl_url_set.3
@@@ -1,146 -1,0 +1,146 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_url_set 3 "6 Aug 2018" "libcurl" "libgnurl Manual"
 +.SH NAME
 +curl_url_set - set a URL part
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +
 +CURLUcode curl_url_set(CURLU *url,
 +                       CURLUPart part,
 +                       const char *content,
 +                       unsigned int flags)
 +.fi
 +.SH DESCRIPTION
 +Given the \fIurl\fP handle of an already parsed URL, this function lets the
 +user set/update individual pieces of it.
 +
 +The \fIpart\fP argument should identify the particular URL part (see list
 +below) to set or change, with \fIcontent\fP pointing to a null-terminated
 +string with the new contents for that URL part. The contents should be in the
 +form and encoding they'd use in a URL: URL encoded.
 +
 +Setting a part to a NULL pointer will effectively remove that part's contents
 +from the CURLU handle.
 +
 +The \fIflags\fP argument is a bitmask with independent features.
 +.SH PARTS
 +.IP CURLUPART_URL
 +Allows the full URL of the handle to be replaced. If the handle already is
 +populated with a URL, the new URL can be relative to the previous.
 +
 +When successfully setting a new URL, relative or absolute, the handle contents
 +will be replaced with the information of the newly set URL.
 +
 +Pass a pointer to a null-terminated string to the \fIurl\fP parameter. The
 +string must point to a correctly formatted "RFC 3986+" URL or be a NULL
 +pointer.
 +.IP CURLUPART_SCHEME
 +Scheme cannot be URL decoded on set.
 +.IP CURLUPART_USER
 +.IP CURLUPART_PASSWORD
 +.IP CURLUPART_OPTIONS
 +.IP CURLUPART_HOST
 +The host name. If it is IDNA the string must then be encoded as your locale
 +says or UTF-8 (when WinIDN is used). If it is a bracketed IPv6 numeric address
 +it may contain a zone id (or you can use CURLUPART_ZONEID).
 +.IP CURLUPART_ZONEID
 +If the host name is a numeric IPv6 address, this field can also be set.
 +.IP CURLUPART_PORT
 +Port cannot be URL encoded on set. The given port number is provided as a
 +string and the decimal number must be between 1 and 65535. Anything else will
 +return an error.
 +.IP CURLUPART_PATH
 +If a path is set in the URL without a leading slash, a slash will be inserted
 +automatically when this URL is read from the handle.
 +.IP CURLUPART_QUERY
 +The query part will also get spaces converted to pluses when asked to URL
 +encode on set with the CURLU_URLENCODE bit.
 +
 +If used together with the \fICURLU_APPENDQUERY\fP bit, the provided part will
 +be appended on the end of the existing query - and if the previous part didn't
 +end with an ampersand (&), an ampersand will be inserted before the new
 +appended part.
 +
 +When \fICURLU_APPENDQUERY\fP is used together with \fICURLU_URLENCODE\fP, the
 +first '=' symbol will not be URL encoded.
 +
 +The question mark in the URL is not part of the actual query contents.
 +.IP CURLUPART_FRAGMENT
 +The hash sign in the URL is not part of the actual fragment contents.
 +.SH FLAGS
 +The flags argument is zero, one or more bits set in a bitmask.
 +.IP CURLU_NON_SUPPORT_SCHEME
 +If set, allows \fIcurl_url_set(3)\fP to set a non-supported scheme.
 +.IP CURLU_URLENCODE
 +When set, \fIcurl_url_set(3)\fP URL encodes the part on entry, except for
 +scheme, port and URL.
 +
 +When setting the path component with URL encoding enabled, the slash character
 +will be skipped.
 +
 +The query part gets space-to-plus conversion before the URL conversion.
 +
 +This URL encoding is charset unaware and will convert the input on a
 +byte-by-byte manner.
 +.IP CURLU_DEFAULT_SCHEME
 +If set, will make libcurl allow the URL to be set without a scheme and then
 +sets that to the default scheme: HTTPS. Overrides the \fICURLU_GUESS_SCHEME\fP
 +option if both are set.
 +.IP CURLU_GUESS_SCHEME
 +If set, will make libcurl allow the URL to be set without a scheme and it
 +instead "guesses" which scheme that was intended based on the host name.  If
 +the outermost sub-domain name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then
 +that scheme will be used, otherwise it picks HTTP. Conflicts with the
 +\fICURLU_DEFAULT_SCHEME\fP option which takes precedence if both are set.
 +.IP CURLU_NO_AUTHORITY
 +If set, skips authority checks. The RFC allows individual schemes to omit the
 +host part (normally the only mandatory part of the authority), but libcurl
 +cannot know whether this is permitted for custom schemes. Specifying the flag
 +permits empty authority sections, similar to how file scheme is handled.
 +
 +.SH RETURN VALUE
 +Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
 +fine.
 +
 +A URL string passed on to \fIcurl_url_set(3)\fP for the \fBCURLUPART_URL\fP
 +part, must be shorter than 8000000 bytes otherwise it returns
 +\fBCURLUE_MALFORMED_INPUT\fP (added in 7.65.0).
 +
- If this function returns an error, no URL part is returned.
++If this function returns an error, no URL part is set.
 +.SH EXAMPLE
 +.nf
 +  CURLUcode rc;
 +  CURLU *url = curl_url();
 +  rc = curl_url_set(url, CURLUPART_URL, "https://example.com";, 0);
 +  if(!rc) {
 +    char *scheme;
 +    /* change it to an FTP URL */
 +    rc = curl_url_set(url, CURLUPART_SCHEME, "ftp", 0);
 +  }
 +  curl_url_cleanup(url);
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.62.0. CURLUPART_ZONEID was added in 7.65.0.
 +.SH "SEE ALSO"
 +.BR curl_url_cleanup "(3), " curl_url "(3), " curl_url_get "(3), "
 +.BR curl_url_dup "(3), "
diff --cc docs/libcurl/gnurl_version.3
index d08ef0bdc,000000000..5c4c28cb0
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_version.3
+++ b/docs/libcurl/gnurl_version.3
@@@ -1,39 -1,0 +1,39 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 3 "5 March 2001" "libcurl 7.0" "libgnurl Manual"
 +.SH NAME
 +curl_version - returns the libcurl version string
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "char *curl_version( );"
 +.ad
 +.SH DESCRIPTION
 +Returns a human readable string with the version number of libcurl and some of
 +its important components (like OpenSSL version).
 +
 +We recommend using \fIcurl_version_info(3)\fP instead!
 +.SH RETURN VALUE
 +A pointer to a null-terminated string. The string resides in a statically
 +allocated buffer and must not be freed by the caller.
 +.SH "SEE ALSO"
 +.BR curl_version_info "(3)"
diff --cc docs/libcurl/gnurl_version_info.3
index 2e8ed2956,000000000..15042dc42
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_version_info.3
+++ b/docs/libcurl/gnurl_version_info.3
@@@ -1,216 -1,0 +1,220 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 */
 +
 +  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 CURLVERSION_SECOND or higher, the members below exist */
 +  const char *ares;         /* human readable string */
 +  int ares_num;             /* number */
 +
 +  /* when 'age' is CURLVERSION_THIRD or higher, the members below exist */
 +  const char *libidn;       /* human readable string */
 +
 +  /* when 'age' is CURLVERSION_FOURTH or higher (>= 7.16.1), the members
 +     below exist */
 +  int iconv_ver_num;       /* '_libiconv_version' if iconv support enabled */
 +
 +  const char *libssh_version; /* human readable string */
 +
 +  /* when 'age' is CURLVERSION_FIFTH or higher (>= 7.57.0), the members
 +     below 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 higher (>= 7.66.0), the members
 +     below 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 */
 +
 +  /* when 'age' is CURLVERSION_SEVENTH or higher (>= 7.70.0), the members
 +     below exist */
 +  const char *cainfo;          /* the built-in default CURLOPT_CAINFO, might
 +                                  be NULL */
 +  const char *capath;          /* the built-in default CURLOPT_CAPATH, might
 +                                  be NULL */
 +  /* when 'age' is CURLVERSION_EIGHTH or higher (>= 7.71.0), the members
 +     below exist */
 +  unsigned int zstd_ver_num; /* Numeric Zstd version
 +                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
 +  const char *zstd_version; /* human readable string. */
 +} 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_ZSTD
 +supports HTTP zstd content encoding using zstd library (Added in 7.72.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_HSTS
++libcurl was built with support for HSTS (HTTP Strict Transport Security)
++(Added in 7.74.0)
 +.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). Legacy bit. Deprecated since 7.33.0.
 +.IP CURL_VERSION_KERBEROS5
 +supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 
proxy
 +(Added in 7.40.0)
 +.IP CURL_VERSION_LARGEFILE
 +libcurl was built with support for large files. (Added in 7.11.1)
 +.IP CURL_VERSION_UNICODE
 +libcurl was built with Unicode support on Windows. This makes non-ASCII
 +characters work in filenames and options passed to libcurl. (Added in 7.72.0)
 +.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_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_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_TLSAUTH_SRP
- libcurl was built with support for TLS-SRP. (Added in 7.21.4)
++libcurl was built with support for TLS-SRP (in one or more of the built-in TLS
++backends). (Added in 7.21.4)
 +.IP CURL_VERSION_UNIX_SOCKETS
 +libcurl was built with support for Unix domain sockets.
 +(Added in 7.40.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/libgnurl-url.3
index bdf82ec15,000000000..5b375131e
mode 100644,000000..100644
--- a/docs/libcurl/libgnurl-url.3
+++ b/docs/libcurl/libgnurl-url.3
@@@ -1,137 -1,0 +1,137 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 libcurl 3 "10 Sep 2018" "libcurl" "libcurl url interface"
 +.SH NAME
 +libcurl-url \- URL interface overview
 +.SH DESCRIPTION
 +The URL interface provides a set of functions for parsing and generating URLs.
 +.SH INCLUDE
 +You still only include <gnurl/curl.h> in your code. Note that the URL API was
 +introduced in 7.62.0.
 +.SH CREATE
 +Create a handle that holds URL info and resources with \fIcurl_url(3)\fP:
 +
 +  CURLU *h = curl_url();
 +.SH CLEANUP
 +When done with it, clean it up with \fIcurl_url_cleanup(3)\fP:
 +
 +  curl_url_cleanup(h);
 +.SH DUPLICATE
 +When you need a copy of a handle, just duplicate it with 
\fIcurl_url_dup(3)\fP:
 +
 +  CURLU *nh = curl_url_dup(h);
 +.SH PARSING
 +By "setting" a URL to the handle with \fIcurl_url_set(3)\fP, the URL is parsed
 +and stored in the handle. If the URL is not syntactically correct it will
 +return an error instead.
 +
 +.nf
 +  rc = curl_url_set(h, CURLUPART_URL,
 +                    "https://example.com:449/foo/bar?name=moo";, 0);
 +.fi
 +
 +The zero in the fourth argument is a bitmask for changing specific features.
 +
 +If successful, this stores the URL in its individual parts within the handle.
 +.SH REDIRECT
 +When a handle already contains info about a URL, setting a relative URL will
 +make it "redirect" to adapt to it.
 +
 +  rc = curl_url_set(h, CURLUPART_URL, "../test?another", 0);
 +.SH "GET URL"
 +The `CURLU` handle represents a URL and you can easily extract that with
 +\fIcurl_url_get(3)\fP:
 +
 +  char *url;
 +  rc = curl_url_get(h, CURLUPART_URL, &url, 0);
 +  curl_free(url);
 +
 +The zero in the fourth argument is a bitmask for changing specific features.
 +.SH "GET PARTS"
 +When a URL has been parsed or parts have been set, you can extract those
 +pieces from the handle at any time.
 +
 +.nf
 +  rc = curl_url_get(h, CURLUPART_HOST, &host, 0);
 +  rc = curl_url_get(h, CURLUPART_SCHEME, &scheme, 0);
 +  rc = curl_url_get(h, CURLUPART_USER, &user, 0);
 +  rc = curl_url_get(h, CURLUPART_PASSWORD, &password, 0);
 +  rc = curl_url_get(h, CURLUPART_PORT, &port, 0);
 +  rc = curl_url_get(h, CURLUPART_PATH, &path, 0);
 +  rc = curl_url_get(h, CURLUPART_QUERY, &query, 0);
 +  rc = curl_url_get(h, CURLUPART_FRAGMENT, &fragment, 0);
 +.fi
 +
 +Extracted parts are not URL decoded unless the user also asks for it with the
 +CURLU_URLDECODE flag set in the fourth bitmask argument.
 +
 +Remember to free the returned string with \fIcurl_free(3)\fP when you're done
 +with it!
 +.SH "SET PARTS"
 +A user set individual URL parts, either after having parsed a full URL or
 +instead of parsing such.
 +
 +.nf
 +  rc = curl_url_set(urlp, CURLUPART_HOST, "www.example.com", 0);
 +  rc = curl_url_set(urlp, CURLUPART_SCHEME, "https", 0);
 +  rc = curl_url_set(urlp, CURLUPART_USER, "john", 0);
 +  rc = curl_url_set(urlp, CURLUPART_PASSWORD, "doe", 0);
 +  rc = curl_url_set(urlp, CURLUPART_PORT, "443", 0);
 +  rc = curl_url_set(urlp, CURLUPART_PATH, "/index.html", 0);
 +  rc = curl_url_set(urlp, CURLUPART_QUERY, "name=john", 0);
 +  rc = curl_url_set(urlp, CURLUPART_FRAGMENT, "anchor", 0);
 +.fi
 +
 +Set parts are not URL encoded unless the user asks for it with the
 +`CURLU_URLENCODE` flag.
 +.SH "APPENDQUERY"
 +An application can append a string to the right end of the query part with the
 +`CURLU_APPENDQUERY` flag to \fIcurl_url_set(3)\fP.
 +
 +Imagine a handle that holds the URL `https://example.com/?shoes=2`. An
 +application can then add the string `hat=1` to the query part like this:
 +
 +.nf
 +  rc = curl_url_set(urlp, CURLUPART_QUERY, "hat=1", CURLU_APPENDQUERY);
 +.fi
 +
 +It will even notice the lack of an ampersand (`&`) separator so it will inject
 +one too, and the handle's full URL will then equal
 +`https://example.com/?shoes=2&hat=1`.
 +
 +The appended string can of course also get URL encoded on add, and if asked to
 +URL encode, the encoding process will skip the '=' character. For example,
 +append `candy=N&N` to what we already have, and URL encode it to deal with the
 +ampersand in the data:
 +
 +.nf
 +  rc = curl_url_set(urlp, CURLUPART_QUERY, "candy=N&N",
 +                    CURLU_APPENDQUERY | CURLU_URLENCODE);
 +.fi
 +
 +Now the URL looks like
 +.nf
 +  https://example.com/?shoes=2&hat=1&candy=N%26N`
 +.fi
 +.SH "SEE ALSO"
 +.BR curl_url "(3), " curl_url_cleanup "(3), " curl_url_get "(3), "
 +.BR curl_url_dup "(3), " curl_url_set "(3), " CURLOPT_URL "(3), "
diff --cc docs/libcurl/libgnurl.m4
index c4f484813,000000000..036230c85
mode 100644,000000..100644
--- a/docs/libcurl/libgnurl.m4
+++ b/docs/libcurl/libgnurl.m4
@@@ -1,272 -1,0 +1,272 @@@
 +#***************************************************************************
 +#                                  _   _ ____  _
 +#  Project                     ___| | | |  _ \| |
 +#                             / __| | | | |_) | |
 +#                            | (__| |_| |  _ <| |___
 +#                             \___|\___/|_| \_\_____|
 +#
 +# Copyright (C) 2006 - 2020, David Shaw <dshaw@jabberwocky.com>
 +#
 +# 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.
++# are also available at https://curl.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.
 +#
 +###########################################################################
 +# LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION],
 +#                       [ACTION-IF-YES], [ACTION-IF-NO])
 +# ----------------------------------------------------------
 +#      David Shaw <dshaw@jabberwocky.com>   May-09-2006
 +#
 +# Checks for libcurl.  DEFAULT-ACTION is the string yes or no to
 +# specify whether to default to --with-libcurl or --without-libcurl.
 +# If not supplied, DEFAULT-ACTION is yes.  MINIMUM-VERSION is the
 +# minimum version of libcurl to accept.  Pass the version as a regular
 +# version number like 7.10.1. If not supplied, any version is
 +# accepted.  ACTION-IF-YES is a list of shell commands to run if
 +# libcurl was successfully found and passed the various tests.
 +# ACTION-IF-NO is a list of shell commands that are run otherwise.
 +# Note that using --without-libcurl does run ACTION-IF-NO.
 +#
 +# This macro #defines HAVE_LIBCURL if a working libcurl setup is
 +# found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary
 +# values.  Other useful defines are LIBCURL_FEATURE_xxx where xxx are
 +# the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy
 +# where yyy are the various protocols supported by libcurl.  Both xxx
 +# and yyy are capitalized.  See the list of AH_TEMPLATEs at the top of
 +# the macro for the complete list of possible defines.  Shell
 +# variables $libcurl_feature_xxx and $libcurl_protocol_yyy are also
 +# defined to 'yes' for those features and protocols that were found.
 +# Note that xxx and yyy keep the same capitalization as in the
 +# curl-config list (e.g. it's "HTTP" and not "http").
 +#
 +# Users may override the detected values by doing something like:
 +# LIBCURL="-lcurl" LIBCURL_CPPFLAGS="-I/usr/myinclude" ./configure
 +#
 +# For the sake of sanity, this macro assumes that any libcurl that is
 +# found is after version 7.7.2, the first version that included the
 +# curl-config script.  Note that it is very important for people
 +# packaging binary versions of libcurl to include this script!
 +# Without curl-config, we can only guess what protocols are available,
 +# or use curl_version_info to figure it out at runtime.
 +
 +AC_DEFUN([LIBCURL_CHECK_CONFIG],
 +[
 +  AH_TEMPLATE([LIBCURL_FEATURE_SSL],[Defined if libcurl supports SSL])
 +  AH_TEMPLATE([LIBCURL_FEATURE_KRB4],[Defined if libcurl supports KRB4])
 +  AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6])
 +  AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz])
 +  AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports 
AsynchDNS])
 +  AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN])
 +  AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI])
 +  AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM])
 +
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_RTSP],[Defined if libcurl supports RTSP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_POP3],[Defined if libcurl supports POP3])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_IMAP],[Defined if libcurl supports IMAP])
 +  AH_TEMPLATE([LIBCURL_PROTOCOL_SMTP],[Defined if libcurl supports SMTP])
 +
 +  AC_ARG_WITH(libcurl,
 +     AS_HELP_STRING([--with-libcurl=PREFIX],[look for the curl library in 
PREFIX/lib and headers in PREFIX/include]),
 +     [_libcurl_with=$withval],[_libcurl_with=ifelse([$1],,[yes],[$1])])
 +
 +  if test "$_libcurl_with" != "no" ; then
 +
 +     AC_PROG_AWK
 +
 +     _libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); 
X=256*256*A[[1]]+256*A[[2]]+A[[3]]; print X;}'"
 +
 +     _libcurl_try_link=yes
 +
 +     if test -d "$_libcurl_with" ; then
 +        LIBCURL_CPPFLAGS="-I$withval/include"
 +        _libcurl_ldflags="-L$withval/lib"
 +        AC_PATH_PROG([_libcurl_config],[curl-config],[],
 +                     ["$withval/bin"])
 +     else
 +        AC_PATH_PROG([_libcurl_config],[curl-config],[],[$PATH])
 +     fi
 +
 +     if test x$_libcurl_config != "x" ; then
 +        AC_CACHE_CHECK([for the version of libcurl],
 +           [libcurl_cv_lib_curl_version],
 +           [libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK 
'{print $[]2}'`])
 +
 +        _libcurl_version=`echo $libcurl_cv_lib_curl_version | 
$_libcurl_version_parse`
 +        _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | 
$_libcurl_version_parse`
 +
 +        if test $_libcurl_wanted -gt 0 ; then
 +           AC_CACHE_CHECK([for libcurl >= version $2],
 +              [libcurl_cv_lib_version_ok],
 +              [
 +              if test $_libcurl_version -ge $_libcurl_wanted ; then
 +                 libcurl_cv_lib_version_ok=yes
 +              else
 +                 libcurl_cv_lib_version_ok=no
 +              fi
 +              ])
 +        fi
 +
 +        if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = 
xyes ; then
 +           if test x"$LIBCURL_CPPFLAGS" = "x" ; then
 +              LIBCURL_CPPFLAGS=`$_libcurl_config --cflags`
 +           fi
 +           if test x"$LIBCURL" = "x" ; then
 +              LIBCURL=`$_libcurl_config --libs`
 +
 +              # This is so silly, but Apple actually has a bug in their
 +              # curl-config script.  Fixed in Tiger, but there are still
 +              # lots of Panther installs around.
 +              case "${host}" in
 +                 powerpc-apple-darwin7*)
 +                    LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'`
 +                 ;;
 +              esac
 +           fi
 +
 +           # All curl-config scripts support --feature
 +           _libcurl_features=`$_libcurl_config --feature`
 +
 +           # Is it modern enough to have --protocols? (7.12.4)
 +           if test $_libcurl_version -ge 461828 ; then
 +              _libcurl_protocols=`$_libcurl_config --protocols`
 +           fi
 +        else
 +           _libcurl_try_link=no
 +        fi
 +
 +        unset _libcurl_wanted
 +     fi
 +
 +     if test $_libcurl_try_link = yes ; then
 +
 +        # we didn't find curl-config, so let's see if the user-supplied
 +        # link line (or failing that, "-lcurl") is enough.
 +        LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"}
 +
 +        AC_CACHE_CHECK([whether libcurl is usable],
 +           [libcurl_cv_lib_curl_usable],
 +           [
 +           _libcurl_save_cppflags=$CPPFLAGS
 +           CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS"
 +           _libcurl_save_libs=$LIBS
 +           LIBS="$LIBCURL $LIBS"
 +
 +           AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <gnurl/curl.h>]],[[
 +/* Try and use a few common options to force a failure if we are
 +   missing symbols or can't link. */
 +int x;
 +curl_easy_setopt(NULL,CURLOPT_URL,NULL);
 +x=CURL_ERROR_SIZE;
 +x=CURLOPT_WRITEFUNCTION;
 +x=CURLOPT_WRITEDATA;
 +x=CURLOPT_ERRORBUFFER;
 +x=CURLOPT_STDERR;
 +x=CURLOPT_VERBOSE;
 +if (x) {;}
 +]])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no)
 +
 +           CPPFLAGS=$_libcurl_save_cppflags
 +           LIBS=$_libcurl_save_libs
 +           unset _libcurl_save_cppflags
 +           unset _libcurl_save_libs
 +           ])
 +
 +        if test $libcurl_cv_lib_curl_usable = yes ; then
 +
 +           # Does curl_free() exist in this version of libcurl?
 +           # If not, fake it with free()
 +
 +           _libcurl_save_cppflags=$CPPFLAGS
 +           CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
 +           _libcurl_save_libs=$LIBS
 +           LIBS="$LIBS $LIBCURL"
 +
 +           AC_CHECK_FUNC(curl_free,,
 +              AC_DEFINE(curl_free,free,
 +                [Define curl_free() as free() if our version of curl lacks 
curl_free.]))
 +
 +           CPPFLAGS=$_libcurl_save_cppflags
 +           LIBS=$_libcurl_save_libs
 +           unset _libcurl_save_cppflags
 +           unset _libcurl_save_libs
 +
 +           AC_DEFINE(HAVE_LIBCURL,1,
 +             [Define to 1 if you have a functional curl library.])
 +           AC_SUBST(LIBCURL_CPPFLAGS)
 +           AC_SUBST(LIBCURL)
 +
 +           for _libcurl_feature in $_libcurl_features ; do
 +              
AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1])
 +              eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes
 +           done
 +
 +           if test "x$_libcurl_protocols" = "x" ; then
 +
 +              # We don't have --protocols, so just assume that all
 +              # protocols are available
 +              _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP"
 +
 +              if test x$libcurl_feature_SSL = xyes ; then
 +                 _libcurl_protocols="$_libcurl_protocols HTTPS"
 +
 +                 # FTPS wasn't standards-compliant until version
 +                 # 7.11.0 (0x070b00 == 461568)
 +                 if test $_libcurl_version -ge 461568; then
 +                    _libcurl_protocols="$_libcurl_protocols FTPS"
 +                 fi
 +              fi
 +
 +              # RTSP, IMAP, POP3 and SMTP were added in
 +              # 7.20.0 (0x071400 == 463872)
 +              if test $_libcurl_version -ge 463872; then
 +                 _libcurl_protocols="$_libcurl_protocols RTSP IMAP POP3 SMTP"
 +              fi
 +           fi
 +
 +           for _libcurl_protocol in $_libcurl_protocols ; do
 +              
AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1])
 +              eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes
 +           done
 +        else
 +           unset LIBCURL
 +           unset LIBCURL_CPPFLAGS
 +        fi
 +     fi
 +
 +     unset _libcurl_try_link
 +     unset _libcurl_version_parse
 +     unset _libcurl_config
 +     unset _libcurl_feature
 +     unset _libcurl_features
 +     unset _libcurl_protocol
 +     unset _libcurl_protocols
 +     unset _libcurl_version
 +     unset _libcurl_ldflags
 +  fi
 +
 +  if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes 
; then
 +     # This is the IF-NO path
 +     ifelse([$4],,:,[$4])
 +  else
 +     # This is the IF-YES path
 +     ifelse([$3],,:,[$3])
 +  fi
 +
 +  unset _libcurl_with
 +])dnl
diff --cc docs/libcurl/opts/GNURLINFO_ACTIVESOCKET.3
index 3a3d54fa3,000000000..601e5d572
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_ACTIVESOCKET.3
+++ b/docs/libcurl/opts/GNURLINFO_ACTIVESOCKET.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ACTIVESOCKET 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_ACTIVESOCKET \- get the active socket
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_ACTIVESOCKET,
 +                           curl_socket_t *socket);
 +.SH DESCRIPTION
 +Pass a pointer to a curl_socket_t to receive the most recently active socket
 +used for the transfer connection by this curl session. If the socket is no
 +longer valid, \fICURL_SOCKET_BAD\fP is returned. When you are finished working
 +with the socket, you must call \fIcurl_easy_cleanup(3)\fP as usual on the easy
 +handle and let libcurl close the socket and cleanup other resources associated
 +with the handle. This option returns the active socket only after the transfer
 +is complete, and is typically used in combination with
 +\fICURLOPT_CONNECT_ONLY(3)\fP, which skips the transfer phase.
 +
 +\fICURLINFO_ACTIVESOCKET(3)\fP was added as a replacement for
 +\fICURLINFO_LASTSOCKET(3)\fP since that one isn't working on all platforms.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_socket_t sockfd;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Do not do the transfer - only connect to host */
 +  curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
 +  res = curl_easy_perform(curl);
 +
 +  /* Extract the socket from the curl handle */
 +  res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
 +
 +  if(res != CURLE_OK) {
 +    printf("Error: %s\\n", curl_easy_strerror(res));
 +    return 1;
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.45.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_LASTSOCKET "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
index 03ade4a3c,000000000..a99ecd555
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 1ae9e6c9e,000000000..b192efc57
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_APPCONNECT_TIME_T.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CERTINFO.3
index d3782fd39,000000000..7be8a24fc
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CERTINFO.3
+++ b/docs/libcurl/opts/GNURLINFO_CERTINFO.3
@@@ -1,81 -1,0 +1,81 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CERTINFO 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_CERTINFO \- get the TLS certificate chain
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CERTINFO,
 +                           struct curl_certinfo **chainp);
 +.SH DESCRIPTION
 +Pass a pointer to a 'struct curl_certinfo *' and you'll get it set to point to
 +a struct that holds a number of linked lists with info about the certificate
 +chain, assuming you had \fICURLOPT_CERTINFO(3)\fP enabled when the request was
 +made. The struct reports how many certs it found and then you can extract info
 +for each of those certs by following the linked lists. The info chain is
 +provided in a series of data in the format "name:content" where the content is
 +for the specific named data. See also the certinfo.c example.
 +.SH PROTOCOLS
 +All TLS-based
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/";);
 +
 +  /* connect to any HTTPS site, trusted or not */
 +  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
 +  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
 +
 +  curl_easy_setopt(curl, CURLOPT_CERTINFO, 1L);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if (!res) {
 +    struct curl_certinfo *ci;
 +    res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ci);
 +
 +    if (!res) {
 +      printf("%d certs!\\n", ci->num_of_certs);
 +
 +      for(i = 0; i < ci->num_of_certs; i++) {
 +        struct curl_slist *slist;
 +
 +        for(slist = ci->certinfo[i]; slist; slist = slist->next)
 +          printf("%s\\n", slist->data);
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option is only working in libcurl built with OpenSSL, NSS, Schannel or
 +GSKit support. Schannel support added in 7.50.0
 +
 +Added in 7.19.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), "
diff --cc docs/libcurl/opts/GNURLINFO_CONDITION_UNMET.3
index dcd6fc0e5,000000000..c37d0530c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONDITION_UNMET.3
+++ b/docs/libcurl/opts/GNURLINFO_CONDITION_UNMET.3
@@@ -1,70 -1,0 +1,70 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONDITION_UNMET 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_CONDITION_UNMET \- get info on unmet time conditional or 304 HTTP 
response.
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONDITION_UNMET, long 
*unmet);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the number 1 if the condition provided in
 +the previous request didn't match (see \fICURLOPT_TIMECONDITION(3)\fP). Alas,
 +if this returns a 1 you know that the reason you didn't get data in return is
 +because it didn't fulfill the condition. The long this argument points to will
 +get a zero stored if the condition instead was met. This can also return 1 if
 +the server responded with a 304 HTTP status code, for example after sending a
 +custom "If-Match-*" header.
 +.SH PROTOCOLS
 +HTTP and some
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* January 1, 2020 is 1577833200 */
 +  curl_easy_setopt(curl, CURLOPT_TIMEVALUE, 1577833200L);
 +
 +  /* If-Modified-Since the above time stamp */
 +  curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the time condition */
 +    long unmet;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &unmet);
 +    if(!res) {
 +      printf("The time condition was %sfulfilled\\n", unmet?"NOT":"");
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.19.4
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
index 651850cde,000000000..e94626aa6
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_CONNECT_TIME.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 3479cc851,000000000..759f3a52a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_CONNECT_TIME_T.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_LENGTH_DOWNLOAD.3
index 639299337,000000000..8498f8fb6
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_LENGTH_DOWNLOAD 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD,
 +                           double *content_length);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the content-length of the download. This
 +is the value read from the Content-Length: field. Since 7.19.4, this returns
 +-1 if the size isn't known.
 +
 +\fICURLINFO_CONTENT_LENGTH_DOWNLOAD_T(3)\fP is a newer replacement that 
returns a more
 +sensible variable type.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    double cl;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl);
 +    if(!res) {
 +      printf("Size: %.0f\\n", cl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.6.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_CONTENT_LENGTH_UPLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
index 74ca85049,000000000..99aad3842
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_LENGTH_DOWNLOAD_T 3 "25 May 2017" "libcurl 7.55.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
 +                           curl_off_t *content_length);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the content-length of the
 +download. This is the value read from the Content-Length: field. Stores -1 if
 +the size isn't known.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    curl_off_t cl;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &cl);
 +    if(!res) {
 +      printf("Download size: %" CURL_FORMAT_CURL_OFF_T "\\n", cl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_CONTENT_LENGTH_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD.3
index cd668e9eb,000000000..56a914b7a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_LENGTH_UPLOAD 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD,
 +                           double *content_length);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the specified size of the upload.  Since
 +7.19.4, this returns -1 if the size isn't known.
 +
 +\fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP is a newer replacement that returns 
a
 +more sensible variable type.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the upload */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    double cl;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_UPLOAD, &cl);
 +    if(!res) {
 +      printf("Size: %.0f\\n", cl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.6.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_CONTENT_LENGTH_DOWNLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD_T.3
index f6c033fb8,000000000..334e7058a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_CONTENT_LENGTH_UPLOAD_T.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_LENGTH_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T,
 +                           curl_off_t *content_length);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the specified size of the
 +upload. Stores -1 if the size isn't known.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the upload */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    curl_off_t cl;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_UPLOAD_T, &cl);
 +    if(!res) {
 +      printf("Upload size: %" CURL_FORMAT_CURL_OFF_T "\\n", cl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_CONTENT_LENGTH_DOWNLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_CONTENT_TYPE.3
index a75a223fa,000000000..80fb69d56
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_CONTENT_TYPE.3
+++ b/docs/libcurl/opts/GNURLINFO_CONTENT_TYPE.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONTENT_TYPE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_CONTENT_TYPE \- get Content-Type
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_TYPE, char **ct);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the content-type of the downloaded
 +object. This is the value read from the Content-Type: field. If you get NULL,
 +it means that the server didn't send a valid Content-Type header or that the
 +protocol used doesn't support this.
 +
 +The \fBct\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free it - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the content-type */
 +    char *ct = NULL;
 +    res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);
 +    if(!res && ct) {
 +      printf("Content-Type: %s\\n", ct);
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.9.4
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_COOKIELIST.3
index e82ddb8a3,000000000..088392df7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_COOKIELIST.3
+++ b/docs/libcurl/opts/GNURLINFO_COOKIELIST.3
@@@ -1,77 -1,0 +1,77 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIELIST 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_COOKIELIST \- get all known cookies
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_COOKIELIST,
 +                           struct curl_slist **cookies);
 +.SH DESCRIPTION
 +Pass a pointer to a 'struct curl_slist *' to receive a linked-list of all
 +cookies curl knows (expired ones, too). Don't forget to call
 +\fIcurl_slist_free_all(3)\fP on the list after it has been used.  If there are
 +no cookies (cookies for the handle have not been enabled or simply none have
 +been received) 'struct curl_slist *' will be set to point to NULL.
 +
 +Since 7.43.0 cookies that were imported in the Set-Cookie format without a
 +domain name are not exported by this option.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* enable the cookie engine */
 +  curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "");
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract all known cookies */
 +    struct curl_slist *cookies = NULL;
 +    res = curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies);
 +    if(!res && cookies) {
 +      /* a linked list of cookies in cookie file format */
 +      struct curl_slist *each = cookies;
 +      while(each) {
 +        printf("%s\\n", each->data);
 +        each = each->next;
 +      }
 +      /* we must free these cookies when we're done */
 +      curl_slist_free_all(cookies);
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.14.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLOPT_COOKIELIST "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_EFFECTIVE_METHOD.3
index 57e45c26a,000000000..7b356c6dd
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_EFFECTIVE_METHOD.3
+++ b/docs/libcurl/opts/GNURLINFO_EFFECTIVE_METHOD.3
@@@ -1,68 -1,0 +1,68 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_EFFECTIVE_METHOD 3 "28 Aug 2015" "libcurl 7.72.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_EFFECTIVE_METHOD \- get the last used HTTP method
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_METHOD,
 +                           char **methodp);
 +.fi
 +.SH DESCRIPTION
 +Pass in a pointer to a char pointer and get the last used effective HTTP
 +method.
 +
 +In cases when you've asked libcurl to follow redirects, the method may very
 +well not be the same method the first request would use.
 +
 +The \fBmethodp\fP pointer will be NULL or pointing to private memory you MUST
 +NOT free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "data");
 +  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    char *method = NULL;
 +    curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_METHOD, &method);
 +    if(method)
 +      printf("Redirected to method: %s\\n", method);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.72.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), "
diff --cc docs/libcurl/opts/GNURLINFO_EFFECTIVE_URL.3
index ce9ec45f5,000000000..484641b58
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_EFFECTIVE_URL.3
+++ b/docs/libcurl/opts/GNURLINFO_EFFECTIVE_URL.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_EFFECTIVE_URL 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_EFFECTIVE_URL \- get the last used URL
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_URL, char **urlp);
 +.SH DESCRIPTION
 +Pass in a pointer to a char pointer and get the last used effective URL.
 +
 +In cases when you've asked libcurl to follow redirects, it may very well not
 +be the same value you set with \fICURLOPT_URL(3)\fP.
 +
 +The \fBurlp\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    char *url = NULL;
 +    curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &url);
 +    if(url)
 +      printf("Redirect to: %s\\n", url);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_FILETIME.3
index b23b8afd2,000000000..c5c1d2ccf
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_FILETIME.3
+++ b/docs/libcurl/opts/GNURLINFO_FILETIME.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FILETIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_FILETIME \- get the remote time of the retrieved document
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME, long *timep);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the remote time of the retrieved document
 +(in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If you get
 +-1, it can be because of many reasons (it might be unknown, the server might
 +hide it or the server doesn't support the command that tells document time
 +etc) and the time of the document is unknown.
 +
 +You must tell libcurl to collect this information before the transfer is made,
 +by using the \fICURLOPT_FILETIME(3)\fP option to \fIcurl_easy_setopt(3)\fP or
 +you will unconditionally get a -1 back.
 +
 +Consider using \fICURLINFO_FILETIME_T(3)\fP to be able to extract dates beyond
 +the year 2038 on systems using 32 bit longs.
 +.SH PROTOCOLS
 +HTTP(S), FTP(S), SFTP
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  /* Ask for filetime */
 +  curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime);
 +    if((CURLE_OK == res) && (filetime >= 0)) {
 +      time_t file_time = (time_t)filetime;
 +      printf("filetime %s: %s", filename, ctime(&file_time));
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.5
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_FILETIME_T.3
index 6ffd1a168,000000000..9cb2e209c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_FILETIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_FILETIME_T.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FILETIME 3 "25 Jan 2018" "libcurl 7.59.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_FILETIME_T \- get the remote time of the retrieved document
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a curl_off_t to receive the remote time of the retrieved
 +document (in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If
 +you get -1, it can be because of many reasons (it might be unknown, the server
 +might hide it or the server doesn't support the command that tells document
 +time etc) and the time of the document is unknown.
 +
 +You must ask libcurl to collect this information before the transfer is made,
 +by using the \fICURLOPT_FILETIME(3)\fP option to \fIcurl_easy_setopt(3)\fP or
 +you will unconditionally get a -1 back.
 +
 +This option is an alternative to \fICURLINFO_FILETIME(3)\fP to allow systems
 +with 32 bit long variables to extract dates outside of the 32bit timestamp
 +range.
 +.SH PROTOCOLS
 +HTTP(S), FTP(S), SFTP
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  /* Ask for filetime */
 +  curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    curl_off_t filetime;
 +    res = curl_easy_getinfo(curl, CURLINFO_FILETIME_T, &filetime);
 +    if((CURLE_OK == res) && (filetime >= 0)) {
 +      time_t file_time = (time_t)filetime;
 +      printf("filetime %s: %s", filename, ctime(&file_time));
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.59.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), "
diff --cc docs/libcurl/opts/GNURLINFO_FTP_ENTRY_PATH.3
index ee74c2c39,000000000..6bcd0ad3e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_FTP_ENTRY_PATH.3
+++ b/docs/libcurl/opts/GNURLINFO_FTP_ENTRY_PATH.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FTP_ENTRY_PATH 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FTP_ENTRY_PATH, char 
**path);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive a pointer to a string holding the
 +path of the entry path. That is the initial path libcurl ended up in when
 +logging on to the remote FTP server. This stores a NULL as pointer if
 +something is wrong.
 +
 +The \fBpath\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +FTP(S) and SFTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the entry path */
 +    char *ep = NULL;
 +    res = curl_easy_getinfo(curl, CURLINFO_FTP_ENTRY_PATH, &ep);
 +    if(!res && ep) {
 +      printf("Entry path was: %s\\n", ep);
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.15.4. Works for SFTP since 7.21.4
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_HEADER_SIZE.3
index bc0418158,000000000..c9eb4ee3a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HEADER_SIZE.3
+++ b/docs/libcurl/opts/GNURLINFO_HEADER_SIZE.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_HEADER_SIZE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_HEADER_SIZE \- get size of retrieved headers
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HEADER_SIZE, long *sizep);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the total size of all the headers
 +received. Measured in number of bytes.
 +
 +The total includes the size of any received headers suppressed by
 +\fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long size;
 +    res = curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &size);
 +    if(!res)
 +      printf("Header size: %ld bytes\\n", size);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_REQUEST_SIZE "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
index 5d83d00ea,000000000..0cc2adacb
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
+++ b/docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
@@@ -1,70 -1,0 +1,70 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_HTTPAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTPAUTH_AVAIL, long 
*authp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive a bitmask indicating the authentication
 +method(s) available according to the previous response. The meaning of the
 +bits is explained in the \fICURLOPT_HTTPAUTH(3)\fP option for
 +\fIcurl_easy_setopt(3)\fP.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the available authentication types */
 +    long auth;
 +    res = curl_easy_getinfo(curl, CURLINFO_HTTPAUTH_AVAIL, &auth);
 +    if(!res) {
 +      if(!auth)
 +        printf("No auth available, perhaps no 401?\\n");
 +      else {
 +        printf("%s%s%s%s\\n",
 +               auth & CURLAUTH_BASIC ? "Basic ":"",
 +               auth & CURLAUTH_DIGEST ? "Digest ":"",
 +               auth & CURLAUTH_NEGOTIATE ? "Negotiate ":"",
 +               auth % CURLAUTH_NTLM ? "NTLM ":"");
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added RFC2617 in 7.10.8
 +Added RFC7616 in 7.57.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), "
diff --cc docs/libcurl/opts/GNURLINFO_HTTP_CONNECTCODE.3
index 356ac2a88,000000000..3e47f2079
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HTTP_CONNECTCODE.3
+++ b/docs/libcurl/opts/GNURLINFO_HTTP_CONNECTCODE.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONNECTCODE 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_CONNECTCODE, long *p);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the last received HTTP proxy response code
 +to a CONNECT request. The returned value will be zero if no such response code
 +was available.
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* typically CONNECT is used to do HTTPS over HTTP proxies */
 +  curl_easy_setopt(curl, CURLOPT_PROXY, "http://127.0.0.1";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long code;
 +    res = curl_easy_getinfo(curl, CURLINFO_HTTP_CONNECTCODE, &code);
 +    if(!res && code)
 +      printf("The CONNECT response code: %03ld\\n", code);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.10.7
 +.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_HTTP_VERSION.3
index caa43c725,000000000..f8f319888
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3
+++ b/docs/libcurl/opts/GNURLINFO_HTTP_VERSION.3
@@@ -1,57 -1,0 +1,57 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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, 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";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://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_LASTSOCKET.3
index f3e717220,000000000..70e44afef
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_LASTSOCKET.3
+++ b/docs/libcurl/opts/GNURLINFO_LASTSOCKET.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_LASTSOCKET 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_LASTSOCKET \- get the last socket used
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LASTSOCKET, long *socket);
 +.SH DESCRIPTION
 +Deprecated since 7.45.0. Use \fICURLINFO_ACTIVESOCKET(3)\fP instead.
 +
 +Pass a pointer to a long to receive the last socket used by this curl
 +session. If the socket is no longer valid, -1 is returned. When you finish
 +working with the socket, you must call curl_easy_cleanup() as usual and let
 +libcurl close the socket and cleanup other resources associated with the
 +handle. This is typically used in combination with
 +\fICURLOPT_CONNECT_ONLY(3)\fP.
 +
 +NOTE: this API is deprecated since it is not working on win64 where the SOCKET
 +type is 64 bits large while its 'long' is 32 bits. Use the
 +\fICURLINFO_ACTIVESOCKET(3)\fP instead, if possible.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  long sockfd; /* doesn't work on win64! */
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Do not do the transfer - only connect to host */
 +  curl_easy_setopt(curl, CURLOPT_CONNECT_ONLY, 1L);
 +  res = curl_easy_perform(curl);
 +
 +  /* Extract the socket from the curl handle */
 +  res = curl_easy_getinfo(curl, CURLINFO_LASTSOCKET, &sockfd);
 +
 +  if(res != CURLE_OK) {
 +    printf("Error: %s\\n", curl_easy_strerror(res));
 +    return 1;
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.15.2
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_ACTIVESOCKET "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_LOCAL_IP.3
index a2fe9b736,000000000..78ccf85f7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_LOCAL_IP.3
+++ b/docs/libcurl/opts/GNURLINFO_LOCAL_IP.3
@@@ -1,68 -1,0 +1,68 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_LOCAL_IP 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_LOCAL_IP \- get local IP address of last connection
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_IP, char **ip);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the pointer to a null-terminated
 +string holding the IP address of the local end of most recent connection done
 +with this \fBcurl\fP handle. This string may be IPv6 when that is
 +enabled. Note that you get a pointer to a memory area that will be re-used at
 +next request so you need to copy the string if you want to keep the
 +information.
 +
 +The \fBip\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +{
 +  char *ip;
 +
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request, res will get the return code */
 +  res = curl_easy_perform(curl);
 +  /* Check for errors */
 +  if((res == CURLE_OK) &&
 +     !curl_easy_getinfo(curl, CURLINFO_LOCAL_IP, &ip) && ip) {
 +    printf("Local IP: %s\\n", ip);
 +  }
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_PRIMARY_IP "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_LOCAL_PORT.3
index 9b10fd3ff,000000000..f197d3800
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_LOCAL_PORT.3
+++ b/docs/libcurl/opts/GNURLINFO_LOCAL_PORT.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2015, 2017, Daniel Stenberg, <daniel@haxx.se>, et 
al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_LOCAL_PORT 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_LOCAL_PORT \- get the latest local port number
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_PORT, long *portp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the local port number of the most recent
 +connection done with this \fBcurl\fP handle.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +{
 +  CURL *curl;
 +  CURLcode res;
 +
 +  curl = curl_easy_init();
 +  if(curl) {
-     curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/";);
++    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +    res = curl_easy_perform(curl);
 +
 +    if(CURLE_OK == res) {
 +      long port;
 +      res = curl_easy_getinfo(curl, CURLINFO_LOCAL_PORT, &port);
 +
 +      if(CURLE_OK == res) {
 +        printf("We used local port: %ld\\n", port);
 +      }
 +    }
 +    curl_easy_cleanup(curl);
 +  }
 +  return 0;
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_PRIMARY_PORT "(3), " CURLINFO_LOCAL_IP "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
index 52d374d1f,000000000..e3b0d1e4e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 542df9736,000000000..14b473737
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_NAMELOOKUP_TIME_T.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_NUM_CONNECTS.3
index 982f02241,000000000..d87c08ef5
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_NUM_CONNECTS.3
+++ b/docs/libcurl/opts/GNURLINFO_NUM_CONNECTS.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_NUM_CONNECTS 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_NUM_CONNECTS \- get number of created connections
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NUM_CONNECTS, long *nump);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive how many new connections libcurl had to
 +create to achieve the previous transfer (only the successful connects are
 +counted).  Combined with \fICURLINFO_REDIRECT_COUNT(3)\fP you are able to know
 +how many times libcurl successfully reused existing connection(s) or not.  See
 +the connection options of \fIcurl_easy_setopt(3)\fP to see how libcurl tries
 +to make persistent connections to save time.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long connects;
 +    res = curl_easy_getinfo(curl, CURLINFO_NUM_CONNECTS, &connects);
 +    if(res)
 +      printf("It needed %d connects\\n", connects);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.12.3
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_OS_ERRNO.3
index 2e987b1ae,000000000..8e9d1f587
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_OS_ERRNO.3
+++ b/docs/libcurl/opts/GNURLINFO_OS_ERRNO.3
@@@ -1,58 -1,0 +1,58 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_OS_ERRNO 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_OS_ERRNO \- get errno number from last connect failure
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_OS_ERRNO, long *errnop);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the errno variable from a connect failure.
 +Note that the value is only set on failure, it is not reset upon a successful
 +operation. The number is OS and system specific.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res != CURLE_OK) {
 +    long error;
 +    res = curl_easy_getinfo(curl, CURLINFO_OS_ERRNO, &error);
 +    if(res && error) {
 +      printf("Errno: %ld\\n", error);
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.12.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), "
diff --cc docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
index 515293439,000000000..b0a1d6fb9
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 1cccdef70,000000000..a00ed8395
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_PRETRANSFER_TIME_T.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PRIMARY_IP.3
index 3100c2086,000000000..8466e70eb
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRIMARY_IP.3
+++ b/docs/libcurl/opts/GNURLINFO_PRIMARY_IP.3
@@@ -1,67 -1,0 +1,67 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2015, 2017, Daniel Stenberg, <daniel@haxx.se>, et 
al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PRIMARY_IP 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_PRIMARY_IP \- get IP address of last connection
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_IP, char **ip);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the pointer to a null-terminated
 +string holding the IP address of the most recent connection done with this
 +\fBcurl\fP handle. This string may be IPv6 when that is enabled. Note that you
 +get a pointer to a memory area that will be re-used at next request so you
 +need to copy the string if you want to keep the information.
 +
 +The \fBip\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +All network based ones
 +.SH EXAMPLE
 +.nf
 +{
 +  char *ip;
 +
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request, res will get the return code */
 +  res = curl_easy_perform(curl);
 +  /* Check for errors */
 +  if((res == CURLE_OK) &&
 +     !curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, &ip) && ip) {
 +    printf("IP: %s\\n", ip);
 +  }
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.19.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_PRIMARY_PORT "(3), " CURLINFO_LOCAL_IP "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_PRIMARY_PORT.3
index 44658e4c7,000000000..5a37b23d1
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRIMARY_PORT.3
+++ b/docs/libcurl/opts/GNURLINFO_PRIMARY_PORT.3
@@@ -1,56 -1,0 +1,56 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PRIMARY_PORT 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PRIMARY_PORT \- get the latest destination port number
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_PORT, long *portp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the destination port of the most recent
 +connection done with this \fBcurl\fP handle.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long port;
 +    res = curl_easy_getinfo(curl, CURLINFO_PRIMARY_PORT, &port);
 +    if(!res)
 +      printf("Connected to remote port: %ld\\n", port);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_PRIVATE.3
index 027ae245e,000000000..a0006e20c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PRIVATE.3
+++ b/docs/libcurl/opts/GNURLINFO_PRIVATE.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PRIVATE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_PRIVATE \- get the private pointer
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIVATE, char **private);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the pointer to the private data
 +associated with the curl handle (set with the \fICURLOPT_PRIVATE(3)\fP).
 +Please note that for internal reasons, the value is returned as a char
 +pointer, although effectively being a 'void *'.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  void *pointer = 0x2345454;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +
 +  /* set the private pointer */
 +  curl_easy_setopt(curl, CURLOPT_PRIVATE, pointer);
 +  ret = curl_easy_perform(curl);
 +
 +  /* extract the private pointer again */
 +  ret = curl_easy_getinfo(curl, CURLINFO_PRIVATE, &pointer);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.10.3
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLOPT_PRIVATE "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_PROTOCOL.3
index ff6546379,000000000..e8430e5e4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PROTOCOL.3
+++ b/docs/libcurl/opts/GNURLINFO_PROTOCOL.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PROTOCOL 3 "23 November 2016" "libcurl 7.52.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PROTOCOL \- get the protocol used in the connection
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROTOCOL, 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 exactly one of the CURLPROTO_* values:
 +
 +.nf
 +CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_FTP, CURLPROTO_FTPS,
 +CURLPROTO_GOPHER, CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_IMAP,
 +CURLPROTO_IMAPS, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_POP3,
 +CURLPROTO_POP3S, CURLPROTO_RTMP, CURLPROTO_RTMPE, CURLPROTO_RTMPS,
 +CURLPROTO_RTMPT, CURLPROTO_RTMPTE, CURLPROTO_RTMPTS, CURLPROTO_RTSP,
 +CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROTO_SMTP,
 +CURLPROTO_SMTPS, CURLPROTO_TELNET, CURLPROTO_TFTP, CURLPROTO_MQTT
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long protocol;
 +    curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.52.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_PROXYAUTH_AVAIL.3
index 5a5064e09,000000000..437d45b46
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3
+++ b/docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PROXYAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXYAUTH_AVAIL, long 
*authp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive a bitmask indicating the authentication
 +method(s) available according to the previous response. The meaning of the
 +bits is explained in the \fICURLOPT_PROXYAUTH(3)\fP option for
 +\fIcurl_easy_setopt(3)\fP.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_PROXY, "http://127.0.0.1:80";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the available proxy authentication types */
 +    long auth;
 +    res = curl_easy_getinfo(curl, CURLINFO_PROXYAUTH_AVAIL, &auth);
 +    if(!res) {
 +      if(!auth)
 +        printf("No proxy auth available, perhaps no 407?\\n");
 +      else {
 +        printf("%s%s%s%s\\n",
 +               auth & CURLAUTH_BASIC ? "Basic ":"",
 +               auth & CURLAUTH_DIGEST ? "Digest ":"",
 +               auth & CURLAUTH_NEGOTIATE ? "Negotiate ":"",
 +               auth % CURLAUTH_NTLM ? "NTLM ":"");
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added RFC2617 in 7.10.8
 +Added RFC7616 in 7.57.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), "
diff --cc docs/libcurl/opts/GNURLINFO_PROXY_SSL_VERIFYRESULT.3
index 48d166c60,000000000..79da9ecb4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PROXY_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/GNURLINFO_PROXY_SSL_VERIFYRESULT.3
@@@ -1,57 -1,0 +1,57 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_PROXY_SSL_VERIFYRESULT 3 "16 Nov 2016" "libcurl 7.52.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate 
verification
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXY_SSL_VERIFYRESULT, 
long *result);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the result of the certificate verification
 +that was requested (using the \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP
 +option. This is only used for HTTPS proxies.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  long verifyresult;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_PROXY, "https://proxy:443";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_getinfo(curl, CURLINFO_PROXY_SSL_VERIFYRESULT, &verifyresult);
 +  printf("The peer verification said %s\\n", verifyresult?
 +         "fine":"BAAAD");
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.52.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SSL_VERIFYRESULT "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_REDIRECT_COUNT.3
index 9cdce3897,000000000..0a52d2016
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REDIRECT_COUNT.3
+++ b/docs/libcurl/opts/GNURLINFO_REDIRECT_COUNT.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_REDIRECT_COUNT 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_REDIRECT_COUNT \- get the number of redirects
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_COUNT, long 
*countp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the total number of redirections that were
 +actually followed.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long redirects;
 +    curl_easy_getinfo(curl, CURLINFO_REDIRECT_COUNT, &redirects);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.9.7
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
index 26f3f5117,000000000..d26a346a3
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_REDIRECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_REDIRECT_TIME \- get the time for all redirection steps
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME, double 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total time, in seconds, it took for
 +all redirection steps include name lookup, connect, pretransfer and transfer
 +before final transaction was started. CURLINFO_REDIRECT_TIME contains the
 +complete execution time for multiple redirections.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  double redirect;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME, &redirect);
 +    if(CURLE_OK == res) {
 +      printf("Time: %.1f", redirect);
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.9.7
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " 
CURLINFO_REDIRECT_TIME_T "(3)"
diff --cc docs/libcurl/opts/GNURLINFO_REDIRECT_TIME_T.3
index 093bbae1f,000000000..168f5d180
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_REDIRECT_TIME_T.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_REDIRECT_TIME_T 3 "28 Apr 2018" "libcurl 7.61.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME_T, curl_off_t 
*timep);
 +.SH DESCRIPTION
 +Pass a pointer to a curl_off_t to receive the total time, in microseconds,
 +it took for
 +all redirection steps include name lookup, connect, pretransfer and transfer
 +before final transaction was started. \fICURLINFO_REDIRECT_TIME_T\fP contains
 +the complete execution time for multiple redirections.
 +
 +See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_off_t redirect;
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME_T, &redirect);
 +    if(CURLE_OK == res) {
 +      printf("Time: %" CURL_FORMAT_CURL_OFF_T ".%06ld", redirect / 1000000,
 +             (long)(redirect % 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_REDIRECT_TIME 
"(3)"
diff --cc docs/libcurl/opts/GNURLINFO_REDIRECT_URL.3
index 6ba66d726,000000000..9bf35eb30
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REDIRECT_URL.3
+++ b/docs/libcurl/opts/GNURLINFO_REDIRECT_URL.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_REDIRECT_URL 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_REDIRECT_URL \- get the URL a redirect would go to
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_URL, char **urlp);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the URL a redirect \fIwould\fP
 +take you to if you would enable \fICURLOPT_FOLLOWLOCATION(3)\fP. This can come
 +very handy if you think using the built-in libcurl redirect logic isn't good
 +enough for you but you would still prefer to avoid implementing all the magic
 +of figuring out the new URL.
 +
 +This URL is also set if the \fICURLOPT_MAXREDIRS(3)\fP limit prevented a
 +redirect to happen (since 7.54.1).
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    char *url = NULL;
 +    curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &url);
 +    if(url)
 +      printf("Redirect to: %s\\n", url);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.18.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), "
diff --cc docs/libcurl/opts/GNURLINFO_REQUEST_SIZE.3
index 33606b0dd,000000000..2f85ffba5
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_REQUEST_SIZE.3
+++ b/docs/libcurl/opts/GNURLINFO_REQUEST_SIZE.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_REQUEST_SIZE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_REQUEST_SIZE \- get size of sent request
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REQUEST_SIZE, long *sizep);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the total size of the issued
 +requests. This is so far only for HTTP requests. Note that this may be more
 +than one request if \fICURLOPT_FOLLOWLOCATION(3)\fP is enabled.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long req;
 +    res = curl_easy_getinfo(curl, CURLINFO_REQUEST_SIZE, &req);
 +    if(!res)
 +      printf("Request size: %ld bytes\\n", req);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_HEADER_SIZE "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_RESPONSE_CODE.3
index 9632fd837,000000000..e9ded3515
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RESPONSE_CODE.3
+++ b/docs/libcurl/opts/GNURLINFO_RESPONSE_CODE.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RESPONSE_CODE 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_RESPONSE_CODE \- get the last response code
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RESPONSE_CODE, long *codep);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the last received HTTP, FTP or SMTP
 +response code. This option was previously known as CURLINFO_HTTP_CODE in
 +libcurl 7.10.7 and earlier. The stored value will be zero if no server
 +response code has been received. Note that a proxy's CONNECT response should
 +be read with \fICURLINFO_HTTP_CONNECTCODE(3)\fP and not this.
 +
 +Support for SMTP responses added in 7.25.0.
 +.SH PROTOCOLS
 +HTTP, FTP and SMTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long response_code;
 +    curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.10.8. CURLINFO_HTTP_CODE was added in 7.4.1.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_HTTP_CONNECTCODE "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_RETRY_AFTER.3
index 785c6b4df,000000000..eede14931
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RETRY_AFTER.3
+++ b/docs/libcurl/opts/GNURLINFO_RETRY_AFTER.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RETRY_AFTER 3 "6 Aug 2019" "libcurl 7.66.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_RETRY_AFTER \- returns the Retry-After retry delay
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RETRY_AFTER, curl_off_t 
*retry);
 +.SH DESCRIPTION
 +Pass a pointer to a curl_off_t variable to receive the number of seconds the
- HTTP server suggesets the client should wait until the next request is
++HTTP server suggests the client should wait until the next request is
 +issued. The information from the "Retry-After:" header.
 +
 +While the HTTP header might contain a fixed date string, the
 +\fICURLINFO_RETRY_AFTER(3)\fP will always return number of seconds to wait -
 +or zero if there was no header or the header couldn't be parsed.
 +.SH DEFAULT
 +Returns zero delay if there was no header.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    curl_off_t wait = 0;
 +    curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &wait);
 +    if(wait)
 +      printf("Wait for %" CURL_FORMAT_CURL_OFF_T " seconds\\n", wait);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in curl 7.66.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_STDERR "(3), " CURLOPT_HEADERFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_RTSP_CLIENT_CSEQ.3
index 2efeb618a,000000000..1f163187c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RTSP_CLIENT_CSEQ.3
+++ b/docs/libcurl/opts/GNURLINFO_RTSP_CLIENT_CSEQ.3
@@@ -1,54 -1,0 +1,54 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RTSP_CLIENT_CSEQ 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CLIENT_CSEQ, long 
*cseq);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the next CSeq that will be used by the
 +application.
 +.SH PROTOCOLS
 +RTSP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "rtsp://rtsp.example.com");
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long cseq;
 +    curl_easy_getinfo(curl, CURLINFO_RTSP_CLIENT_CSEQ, &cseq);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.20.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), "
diff --cc docs/libcurl/opts/GNURLINFO_RTSP_CSEQ_RECV.3
index added9c70,000000000..1ff4fd09f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RTSP_CSEQ_RECV.3
+++ b/docs/libcurl/opts/GNURLINFO_RTSP_CSEQ_RECV.3
@@@ -1,56 -1,0 +1,56 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RTSP_CSEQ_RECV 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CSEQ_RECV, long *cseq);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the most recently received CSeq from the
 +server. If your application encounters a \fICURLE_RTSP_CSEQ_ERROR\fP then you
 +may wish to troubleshoot and/or fix the CSeq mismatch by peeking at this
 +value.
 +.SH PROTOCOLS
 +RTSP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "rtsp://rtsp.example.com");
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long cseq;
 +    curl_easy_getinfo(curl, CURLINFO_RTSP_CSEQ_RECV, &cseq);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.20.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), "
diff --cc docs/libcurl/opts/GNURLINFO_RTSP_SERVER_CSEQ.3
index 88abb0709,000000000..82b1a6b59
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RTSP_SERVER_CSEQ.3
+++ b/docs/libcurl/opts/GNURLINFO_RTSP_SERVER_CSEQ.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RTSP_SERVER_CSEQ 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SERVER_CSEQ, long 
*cseq);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the next CSeq that will be expected by the
 +application.
 +
 +Llistening for server initiated requests is currently unimplemented!
 +
 +Applications wishing to resume an RTSP session on another connection should
 +retrieve this info before closing the active connection.
 +.SH PROTOCOLS
 +RTSP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "rtsp://rtsp.example.com");
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    long cseq;
 +    curl_easy_getinfo(curl, CURLINFO_RTSP_SERVER_CSEQ, &cseq);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.20.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), "
diff --cc docs/libcurl/opts/GNURLINFO_RTSP_SESSION_ID.3
index c2a2df18e,000000000..dc66fee4c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_RTSP_SESSION_ID.3
+++ b/docs/libcurl/opts/GNURLINFO_RTSP_SESSION_ID.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_RTSP_SESSION_ID 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_RTSP_SESSION_ID \- get RTSP session ID
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SESSION_ID, char **id);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive a pointer to a string holding the
 +most recent RTSP Session ID.
 +
 +Applications wishing to resume an RTSP session on another connection should
 +retrieve this info before closing the active connection.
 +
 +The \fBid\fP pointer will be NULL or pointing to private memory you MUST NOT
 +free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +RTSP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  curl_easy_setopt(curl, CURLOPT_URL, "rtsp://rtsp.example.com");
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    char *id;
 +    curl_easy_getinfo(curl, CURLINFO_RTSP_SESSION_ID, &id);
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.20.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), "
diff --cc docs/libcurl/opts/GNURLINFO_SCHEME.3
index 13f0a023a,000000000..8c983d04d
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SCHEME.3
+++ b/docs/libcurl/opts/GNURLINFO_SCHEME.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SCHEME 3 "23 November 2016" "libcurl 7.52.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the 
connection
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SCHEME, char **scheme);
 +.SH DESCRIPTION
 +Pass a pointer to a char pointer to receive the pointer to a null-terminated
 +string holding the URL scheme used for the most recent connection done with
 +this CURL \fBhandle\fP.
 +
 +The \fBscheme\fP pointer will be NULL or pointing to private memory you MUST
 +NOT free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
 +corresponding CURL handle.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  if(res == CURLE_OK) {
 +    char *scheme = NULL;
 +    curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme);
 +    if(scheme)
 +      printf("scheme: %s\\n", scheme); /* scheme: HTTP */
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.52.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_SIZE_DOWNLOAD.3
index f3c224fd6,000000000..d849103e3
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD.3
@@@ -1,67 -1,0 +1,67 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SIZE_DOWNLOAD 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD, double *dlp);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total amount of bytes that were
 +downloaded.  The amount is only for the latest transfer and will be reset
 +again for each new transfer. This counts actual payload data, what's also
 +commonly called body. All meta and header data are excluded and will not be
 +counted in this number.
 +
 +\fICURLINFO_SIZE_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
 +sensible variable type.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    double dl;
 +    res = curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD, &dl);
 +    if(!res) {
 +      printf("Downloaded %.0f bytes\\n", cl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD_T "(3), "
 +.BR CURLINFO_SIZE_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD_T.3
index bee15f477,000000000..ac17a10ec
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_SIZE_DOWNLOAD_T.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SIZE_DOWNLOAD_T 3 "25 May 2017" "libcurl 7.55.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD_T, curl_off_t 
*dlp);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the total amount of bytes that
 +were downloaded.  The amount is only for the latest transfer and will be reset
 +again for each new transfer. This counts actual payload data, what's also
 +commonly called body. All meta and header data are excluded and will not be
 +counted in this number.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* check the size */
 +    curl_off_t dl;
 +    res = curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD_T, &dl);
 +    if(!res) {
 +      printf("Downloaded %" CURL_FORMAT_CURL_OFF_T " bytes\\n", dl);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD "(3), "
 +.BR CURLINFO_SIZE_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD.3
index 3915385ac,000000000..80e2cced5
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SIZE_UPLOAD 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD, double 
*uploadp);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the total amount of bytes that were
 +uploaded.
 +
 +\fICURLINFO_SIZE_UPLOAD_T(3)\fP is a newer replacement that returns a more
 +sensible variable type.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    double ul;
 +    res = curl_easy_getinfo(curl, CURLINFO_SIZE_UPLOAD, &ul);
 +    if(!res) {
 +      printf("Uploaded %.0f bytes\\n", ul);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD_T "(3), " CURLINFO_SIZE_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD_T.3
index d042d7d7e,000000000..727a01013
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_SIZE_UPLOAD_T.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SIZE_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD_T, curl_off_t 
*uploadp);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the total amount of bytes that
 +were uploaded.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    curl_off_t ul;
 +    res = curl_easy_getinfo(curl, CURLINFO_SIZE_UPLOAD_T, &ul);
 +    if(!res) {
 +      printf("Uploaded %" CURL_FORMAT_CURL_OFF_T " bytes\\n", ul);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SIZE_DOWNLOAD_T "(3), " CURLINFO_SIZE_UPLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD.3
index b30e1c183,000000000..93c5238d8
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SPEED_DOWNLOAD 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SPEED_DOWNLOAD \- get download speed
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD, double 
*speed);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the average download speed that curl
 +measured for the complete download. Measured in bytes/second.
 +
 +\fICURLINFO_SPEED_DOWNLOAD_T(3)\fP is a newer replacement that returns a more
 +sensible variable type.
 +.SH PROTOCOLS
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    double speed;
 +    res = curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD, &speed);
 +    if(!res) {
 +      printf("Download speed %.0f bytes/sec\\n", ul);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.4.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SPEED_UPLOAD "(3), "
 +.BR CURLINFO_SIZE_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD_T.3
index 2c574b44e,000000000..f963d9029
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_SPEED_DOWNLOAD_T.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SPEED_DOWNLOAD_T 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SPEED_DOWNLOAD_T \- get download speed
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD_T, 
curl_off_t *speed);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the average download speed
 +that curl measured for the complete download. Measured in bytes/second.
 +.SH PROTOCOLS
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    curl_off_t speed;
 +    res = curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD_T, &speed);
 +    if(!res) {
 +      printf("Download speed %" CURL_FORMAT_CURL_OFF_T " bytes/sec\\n", 
speed);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SPEED_UPLOAD "(3), "
 +.BR CURLINFO_SIZE_UPLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD.3
index 5ab3d92fe,000000000..775091e96
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD.3
+++ b/docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD.3
@@@ -1,61 -1,0 +1,61 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SPEED_UPLOAD 3 "28 Aug 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SPEED_UPLOAD \- get upload speed
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD, double 
*speed);
 +.SH DESCRIPTION
 +Pass a pointer to a double to receive the average upload speed that curl
 +measured for the complete upload. Measured in bytes/second.
 +
 +\fICURLINFO_SPEED_UPLOAD_T(3)\fP is a newer replacement that returns a more
 +sensible variable type.
 +.SH PROTOCOLS
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    double speed;
 +    res = curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed);
 +    if(!res) {
 +      printf("Upload speed %.0f bytes/sec\\n", ul);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SPEED_DOWNLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD_T.3
index 7959222d3,000000000..c8ada230a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD_T.3
+++ b/docs/libcurl/opts/GNURLINFO_SPEED_UPLOAD_T.3
@@@ -1,58 -1,0 +1,58 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SPEED_UPLOAD_T 3 "25 May 2017" "libcurl 7.55.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SPEED_UPLOAD_T \- get upload speed
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD_T, curl_off_t 
*speed);
 +.SH DESCRIPTION
 +Pass a pointer to a \fIcurl_off_t\fP to receive the average upload speed that
 +curl measured for the complete upload. Measured in bytes/second.
 +.SH PROTOCOLS
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* Perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    curl_off_t speed;
 +    res = curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD_T, &speed);
 +    if(!res) {
 +      printf("Upload speed %" CURL_FORMAT_CURL_OFF_T " bytes/sec\\n", speed);
 +    }
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.55.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_SPEED_DOWNLOAD_T "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_SSL_ENGINES.3
index 9a0120bdf,000000000..640cc0ebc
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SSL_ENGINES.3
+++ b/docs/libcurl/opts/GNURLINFO_SSL_ENGINES.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SSL_ENGINES 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_ENGINES,
 +                           struct curl_slist **engine_list);
 +.SH DESCRIPTION
 +Pass the address of a 'struct curl_slist *' to receive a linked-list of
 +OpenSSL crypto-engines supported. Note that engines are normally implemented
 +in separate dynamic libraries. Hence not all the returned engines may be
 +available at run-time. \fBNOTE:\fP you must call \fIcurl_slist_free_all(3)\fP
 +on the list pointer once you're done with it, as libcurl will not free the
 +data for you.
 +.SH PROTOCOLS
 +All TLS based ones.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  struct curl_slist *engines;
 +  res = curl_easy_getinfo(curl, CURLINFO_SSL_ENGINES, &engines);
 +  if((res == CURLE_OK) && engines) {
 +    /* we have a list, free it when done using it */
 +    curl_slist_free_all(engines);
 +  }
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.12.3. Available in OpenSSL builds with "engine" support.
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_SSL_VERIFYRESULT.3
index 5b4d64341,000000000..a71efe758
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_SSL_VERIFYRESULT.3
+++ b/docs/libcurl/opts/GNURLINFO_SSL_VERIFYRESULT.3
@@@ -1,57 -1,0 +1,57 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_SSL_VERIFYRESULT 3 "1 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_VERIFYRESULT, long 
*result);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive the result of the server SSL certificate
 +verification that was requested (using the \fICURLOPT_SSL_VERIFYPEER(3)\fP
 +option).
 +
 +0 is a positive result. Non-zero is an error.
 +.SH PROTOCOLS
 +All using TLS
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  long verifyresult;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_getinfo(curl, CURLINFO_SSL_VERIFYRESULT, &verifyresult);
 +  printf("The peer verification said %s\\n", verifyresult?
 +         "BAAAD":"fine");
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.5. Only set by the OpenSSL/libressl/boringssl, NSS and GnuTLS 
backends.
 +.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), "
diff --cc docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
index 6ac4707c8,000000000..0335846f9
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 db71fd8e2,000000000..da8e17e9e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_STARTTRANSFER_TIME_T.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_TLS_SESSION.3
index 293fb0217,000000000..0ad56e4ab
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TLS_SESSION.3
+++ b/docs/libcurl/opts/GNURLINFO_TLS_SESSION.3
@@@ -1,70 -1,0 +1,70 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_TLS_SESSION 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_TLS_SESSION \- get TLS session info
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION,
 +                           struct curl_tlssessioninfo **session);
 +.SH DESCRIPTION
 +\fBThis option has been superseded\fP by \fICURLINFO_TLS_SSL_PTR(3)\fP which
 +was added in 7.48.0. The only reason you would use this option instead is if
 +you could be using a version of libcurl earlier than 7.48.0.
 +
 +This option is exactly the same as \fICURLINFO_TLS_SSL_PTR(3)\fP except in the
 +case of OpenSSL. If the session \fIbackend\fP is CURLSSLBACKEND_OPENSSL the
 +session \fIinternals\fP pointer varies depending on the option:
 +
 +CURLINFO_TLS_SESSION OpenSSL session \fIinternals\fP is SSL_CTX *.
 +
 +CURLINFO_TLS_SSL_PTR OpenSSL session \fIinternals\fP is SSL *.
 +
 +You can obtain an SSL_CTX pointer from an SSL pointer using OpenSSL function
 +SSL_get_SSL_CTX. Therefore unless you need compatibility with older versions 
of
 +libcurl use \fICURLINFO_TLS_SSL_PTR(3)\fP. Refer to that document for more
 +information.
 +.SH PROTOCOLS
 +All TLS-based
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  struct curl_tlssessioninfo *tls;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  res = curl_easy_perform(curl);
 +  curl_easy_getinfo(curl, CURLINFO_TLS_SESSION, &tls);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.34.0, and supported OpenSSL, GnuTLS, NSS and gskit only up until
 +7.48.0 was released.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_TLS_SSL_PTR "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
index c4674e75b,000000000..99129fb77
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
+++ b/docs/libcurl/opts/GNURLINFO_TLS_SSL_PTR.3
@@@ -1,168 -1,0 +1,168 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_TLS_SSL_PTR 3 "23 Feb 2016" "libcurl 7.48.0" "curl_easy_getinfo 
options"
 +.SH NAME
 +CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SSL_PTR,
 +                           struct curl_tlssessioninfo **session);
 +
 +/* if you need compatibility with libcurl < 7.48.0 use
 +   CURLINFO_TLS_SESSION instead: */
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION,
 +                           struct curl_tlssessioninfo **session);
 +.SH DESCRIPTION
 +Pass a pointer to a 'struct curl_tlssessioninfo *'.  The pointer will be
 +initialized to refer to a 'struct curl_tlssessioninfo *' that will contain an
 +enum indicating the SSL library used for the handshake and a pointer to the
 +respective internal TLS session structure of this underlying SSL library.
 +
 +This option may be useful for example to extract certificate information in a
 +format convenient for further processing, such as manual validation. Refer to
 +the \fBLIMITATIONS\fP section.
 +
 +.nf
 +struct curl_tlssessioninfo {
 +  curl_sslbackend backend;
 +  void *internals;
 +};
 +.fi
 +
 +The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_*
 +series: CURLSSLBACKEND_NONE (when built without TLS support),
 +CURLSSLBACKEND_WOLFSSL, CURLSSLBACKEND_SECURETRANSPORT, CURLSSLBACKEND_GNUTLS,
 +CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_MBEDTLS, CURLSSLBACKEND_NSS,
 +CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_SCHANNEL or
 +CURLSSLBACKEND_MESALINK. (Note that the OpenSSL forks are all reported as just
 +OpenSSL here.)
 +
 +The \fIinternals\fP struct member will point to a TLS library specific pointer
 +for the active ("in use") SSL connection, with the following underlying types:
 +.RS
 +.IP GnuTLS
 +gnutls_session_t
 +.IP gskit
 +gsk_handle
 +.IP NSS
 +PRFileDesc *
 +.IP OpenSSL
 +CURLINFO_TLS_SESSION: SSL_CTX *
 +
 +CURLINFO_TLS_SSL_PTR: SSL *
 +.RE
 +Since 7.48.0 the \fIinternals\fP member can point to these other SSL backends
 +as well:
 +.RS
 +.IP mbedTLS
 +mbedtls_ssl_context *
 +.IP "Secure Channel"
 +CtxtHandle *
 +.IP "Secure Transport"
 +SSLContext *
 +.IP "wolfSSL"
 +SSL *
 +.IP "MesaLink"
 +SSL *
 +.RE
 +
 +If the \fIinternals\fP pointer is NULL then either the SSL backend is not
 +supported, an SSL session has not yet been established or the connection is no
 +longer associated with the easy handle (eg curl_easy_perform has returned).
 +.SH LIMITATIONS
 +This option has some limitations that could make it unsafe when it comes to
 +the manual verification of certificates.
 +
 +This option only retrieves the first in-use SSL session pointer for your easy
 +handle, however your easy handle may have more than one in-use SSL session if
 +using FTP over SSL. That is because the FTP protocol has a control channel and
 +a data channel and one or both may be over SSL. Currently there is no way to
 +retrieve a second in-use SSL session associated with an easy handle.
 +
 +This option has not been thoroughly tested with plaintext protocols that can
 +be upgraded/downgraded to/from SSL: FTP, SMTP, POP3, IMAP when used with
 +\fICURLOPT_USE_SSL(3)\fP. Though you will be able to retrieve the SSL pointer,
 +it's possible that before you can do that data (including auth) may have
 +already been sent over a connection after it was upgraded.
 +
 +Renegotiation. If unsafe renegotiation or renegotiation in a way that the
 +certificate is allowed to change is allowed by your SSL library this may occur
 +and the certificate may change, and data may continue to be sent or received
 +after renegotiation but before you are able to get the (possibly) changed SSL
 +pointer, with the (possibly) changed certificate information.
 +
 +If you are using OpenSSL or wolfSSL then \fICURLOPT_SSL_CTX_FUNCTION(3)\fP can
 +be used to set a certificate verification callback in the CTX. That is safer
 +than using this option to poll for certificate changes and doesn't suffer from
 +any of the problems above. There is currently no way in libcurl to set a
 +verification callback for the other SSL backends.
 +
 +How are you using this option? Are you affected by any of these limitations?
 +Please let us know by making a comment at
 +https://github.com/curl/curl/issues/685
 +.SH PROTOCOLS
 +All TLS-based
 +.SH EXAMPLE
 +.nf
 +#include <gnurl/curl.h>
 +#include <openssl/ssl.h>
 +
 +CURL *curl;
 +static size_t wf(void *ptr, size_t size, size_t nmemb, void *stream)
 +{
 +  const struct curl_tlssessioninfo *info = NULL;
 +  CURLcode res = curl_easy_getinfo(curl, CURLINFO_TLS_SSL_PTR, &info);
 +  if(info && !res) {
 +    if(CURLSSLBACKEND_OPENSSL == info->backend) {
 +       printf("OpenSSL ver. %s\\n", SSL_get_version((SSL*)info->internals));
 +    }
 +  }
 +  return size * nmemb;
 +}
 +
 +int main(int argc, char** argv)
 +{
 +  CURLcode res;
 +  curl = curl_easy_init();
 +  if(curl) {
 +    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wf);
 +    res = curl_easy_perform(curl);
 +    curl_easy_cleanup(curl);
 +  }
 +  return res;
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.48.0.
 +
 +This option supersedes \fICURLINFO_TLS_SESSION(3)\fP which was added in 
7.34.0.
 +This option is exactly the same as that option except in the case of OpenSSL.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
 +.BR CURLINFO_TLS_SESSION "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
index bab982cdc,000000000..54d334b2a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
+++ b/docs/libcurl/opts/GNURLINFO_TOTAL_TIME.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 70cd7e567,000000000..330cd34ca
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3
+++ b/docs/libcurl/opts/GNURLINFO_TOTAL_TIME_T.3
@@@ -1,63 -1,0 +1,63 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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/GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
index 4da4fed01,000000000..e30fd84e3
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3
@@@ -1,54 -1,0 +1,54 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, 
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, long size);
 +.SH DESCRIPTION
 +No function since pipelining was removed in 7.62.0.
 +
 +Pass a long with a \fBsize\fP in bytes. If a pipelined connection is currently
 +processing a chunked (Transfer-encoding: chunked) request with a current chunk
 +length larger than \fICURLMOPT_CHUNK_LENGTH_PENALTY_SIZE(3)\fP, that pipeline
 +will not be considered for additional requests, even if it is shorter than
 +\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP.
 +.SH DEFAULT
 +The default value is 0, which means that the penalization is inactive.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +long maxchunk = 10000;
 +curl_multi_setopt(m, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, maxchunk);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE "(3), "
 +.BR CURLMOPT_MAX_PIPELINE_LENGTH "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
index 884cb1d72,000000000..3c9201c6d
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
+++ b/docs/libcurl/opts/GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3
@@@ -1,53 -1,0 +1,53 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, 
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, long size);
 +.SH DESCRIPTION
 +No function since pipelining was removed in 7.62.0.
 +
 +Pass a long with a \fBsize\fP in bytes. If a pipelined connection is currently
 +processing a request with a Content-Length larger than this
 +\fICURLMOPT_CONTENT_LENGTH_PENALTY_SIZE(3)\fP, that pipeline will then not be
 +considered for additional requests, even if it is shorter than
 +\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP.
 +.SH DEFAULT
 +The default value is 0, which means that the size penalization is inactive.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +long maxlength = 10000;
 +curl_multi_setopt(m, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, maxlength);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_MAXCONNECTS.3
index 942918aca,000000000..14cc849fa
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_MAXCONNECTS.3
+++ b/docs/libcurl/opts/GNURLMOPT_MAXCONNECTS.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_MAXCONNECTS 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_MAXCONNECTS \- set size of connection cache
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAXCONNECTS, long max);
 +.SH DESCRIPTION
 +Pass a long indicating the \fBmax\fP. The set number will be used as the
 +maximum amount of simultaneously open connections that libcurl may keep in its
 +connection cache after completed use. By default libcurl will enlarge the size
 +for each added easy handle to make it fit 4 times the number of added easy
 +handles.
 +
 +By setting this option, you can prevent the cache size from growing beyond the
 +limit set by you.
 +
 +When the cache is full, curl closes the oldest one in the cache to prevent the
 +number of open connections from increasing.
 +
 +This option is for the multi handle's use only, when using the easy interface
 +you should instead use the \fICURLOPT_MAXCONNECTS(3)\fP option.
 +
 +See \fICURLMOPT_MAX_TOTAL_CONNECTIONS(3)\fP for limiting the number of active
 +connections.
 +
 +.SH DEFAULT
 +See DESCRIPTION
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +/* only keep 10 connections in the cache */
 +curl_multi_setopt(m, CURLMOPT_MAXCONNECTS, 10L);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.16.3
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
 +.BR CURLOPT_MAXCONNECTS "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_MAX_CONCURRENT_STREAMS.3
index 3e59209ad,000000000..ced56abfd
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_MAX_CONCURRENT_STREAMS.3
+++ b/docs/libcurl/opts/GNURLMOPT_MAX_CONCURRENT_STREAMS.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.Dd November 06, 2019
 +.Dt GNURLMOPT_MAX_CONCURRENT_STREAMS 3
 +.Os
 +.Sh NAME
 +.Nm CURLMOPT_MAX_CONCURRENT_STREAMS ,
 +.Nm curl_multi_setopt
 +.Nd set max concurrent streams for http2
 +.Sh LIBRARY
 +.Lb libgnurl
 +.Sh SYNOPSIS
 +.In gnurl/curl.h
 +.Ft CURLMcode
 +.Fn curl_multi_setopt "CURLM *handle" "CURLMOPT_MAX_CONCURRENT_STREAMS" "long 
max"
 +.Sh DESCRIPTION
 +Pass a long indicating the
 +.Fa max .
 +The set number will be used as the
 +maximum number of concurrent streams for a connections that libcurl should
 +support on connections done using HTTP/2.
 +Valid values range from 1 to 2147483647 (2^31 - 1) and defaults to 100.  The
 +value passed here would be honoured based on other system resources
 +properties.
 +.Sh DEFAULT
 +100
 +.Sh PROTOCOLS
 +All
 +.Sh EXAMPLES
 +.Bd -literal -offset indent
 +CURLM *m = curl_multi_init();
 +/* max concurrent streams 200 */
 +curl_multi_setopt(m, CURLMOPT_MAX_CONCURRENT_STREAMS, 200L);
 +.Ed
 +.Sh HISTORY
 +.Nm
 +first appeared in in curl 7.67.0.
 +.Sh RETURN VALUES
 +Returns
 +.Va CURLM_OK
 +if the option is supported, and
 +.Va CURLM_UNKNOWN_OPTION
 +if not.
 +.Sh SEE ALSO
 +.Xr GNURLOPT_MAXCONNECTS 3 ,
 +.Xr GNURLMOPT_MAXCONNECTS 3
diff --cc docs/libcurl/opts/GNURLMOPT_MAX_HOST_CONNECTIONS.3
index 13455c71b,000000000..d2b9290c7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_MAX_HOST_CONNECTIONS.3
+++ b/docs/libcurl/opts/GNURLMOPT_MAX_HOST_CONNECTIONS.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_MAX_HOST_CONNECTIONS 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single 
host
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_HOST_CONNECTIONS, 
long max);
 +.SH DESCRIPTION
 +Pass a long to indicate \fBmax\fP. The set number will be used as the maximum
 +amount of simultaneously open connections to a single host (a host being the
 +same as a host name + port number pair). For each new session to a host,
 +libcurl will open a new connection up to the limit set by
 +\fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP. When the limit is reached, the
 +sessions will be pending until a connection becomes available. If
 +\fICURLMOPT_PIPELINING(3)\fP is enabled, libcurl will try to pipeline if the
 +host is capable of it.
 +
 +The default \fBmax\fP value is 0, unlimited.  However, for backwards
 +compatibility, setting it to 0 when \fICURLMOPT_PIPELINING(3)\fP is 1 will not
 +be treated as unlimited. Instead it will open only 1 connection and try to
 +pipeline on it.
 +
 +This set limit is also used for proxy connections, and then the proxy is
 +considered to be the host for which this limit counts.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +/* do no more than 2 connections per host */
 +curl_multi_setopt(m, CURLMOPT_MAX_HOST_CONNECTIONS, 2L);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_MAXCONNECTS "(3), " CURLMOPT_MAX_TOTAL_CONNECTIONS "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_MAX_PIPELINE_LENGTH.3
index 63a856a3b,000000000..de0d7095f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_MAX_PIPELINE_LENGTH.3
+++ b/docs/libcurl/opts/GNURLMOPT_MAX_PIPELINE_LENGTH.3
@@@ -1,57 -1,0 +1,57 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_MAX_PIPELINE_LENGTH 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_PIPELINE_LENGTH, long 
max);
 +.SH DESCRIPTION
 +No function since pipelining was removed in 7.62.0.
 +
 +Pass a long. The set \fBmax\fP number will be used as the maximum amount of
 +outstanding requests in an HTTP/1.1 pipelined connection. This option is only
 +used for HTTP/1.1 pipelining, not for HTTP/2 multiplexing.
 +
 +When this limit is reached, libcurl will use another connection to the same
 +host (see \fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP), or queue the request until
 +one of the pipelines to the host is ready to accept a request.  Thus, the
 +total number of requests in-flight is \fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP *
 +\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP.
 +.SH DEFAULT
 +5
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +/* set a more conservative pipe length */
 +curl_multi_setopt(m, CURLMOPT_MAX_PIPELINE_LENGTH, 3L);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_MAX_TOTAL_CONNECTIONS.3
index 733ba0293,000000000..45733cd6f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_MAX_TOTAL_CONNECTIONS.3
+++ b/docs/libcurl/opts/GNURLMOPT_MAX_TOTAL_CONNECTIONS.3
@@@ -1,54 -1,0 +1,54 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_MAX_TOTAL_CONNECTIONS 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_TOTAL_CONNECTIONS, 
long amount);
 +.SH DESCRIPTION
 +Pass a long for the \fBamount\fP. The set number will be used as the maximum
 +number of simultaneously open connections in total using this multi
 +handle. For each new session, libcurl will open a new connection up to the
 +limit set by \fICURLMOPT_MAX_TOTAL_CONNECTIONS(3)\fP. When the limit is
 +reached, the sessions will be pending until there are available
 +connections. If \fICURLMOPT_PIPELINING(3)\fP is enabled, libcurl will try to
 +pipeline or use multiplexing if the host is capable of it.
 +.SH DEFAULT
 +The default value is 0, which means that there is no limit. It is then simply
 +controlled by the number of easy handles added.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +/* never do more than 15 connections */
 +curl_multi_setopt(m, CURLMOPT_MAX_TOTAL_CONNECTIONS, 15L);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_MAXCONNECTS "(3), " CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_PIPELINING.3
index 95d0aad05,000000000..3e71a23e4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_PIPELINING.3
+++ b/docs/libcurl/opts/GNURLMOPT_PIPELINING.3
@@@ -1,89 -1,0 +1,89 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_PIPELINING 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bitmask);
 +.SH DESCRIPTION
 +Pass in the \fBbitmask\fP parameter to instruct libcurl to enable HTTP
 +pipelining and/or HTTP/2 multiplexing for this multi handle.
 +
 +When enabled, libcurl will attempt to use those protocol features when doing
 +parallel requests to the same hosts.
 +
 +For pipelining, this means that if you add a second request that can use an
 +already existing connection, the second request will be \&"piped" on the same
 +connection rather than being executed in parallel.
 +
 +For multiplexing, this means that follow-up requests can re-use an existing
 +connection and send the new request multiplexed over that at the same time as
 +other transfers are already using that single connection.
 +
 +There are several other related options that are interesting to tweak and
 +adjust to alter how libcurl spreads out requests on different connections or
 +not etc.
 +
 +Before 7.43.0, this option was set to 1 and 0 to enable and disable HTTP/1.1
 +pipelining.
 +
 +Starting in 7.43.0, \fBbitmask\fP's second bit also has a meaning, and you can
 +ask for pipelining and multiplexing independently of each other by toggling
 +the correct bits.
 +.IP CURLPIPE_NOTHING (0)
 +Default, which means doing no attempts at pipelining or multiplexing.
 +.IP CURLPIPE_HTTP1 (1)
 +If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on
 +connections that are already established and in use to hosts.
 +
 +This bit is deprecated and has no effect since version 7.62.0.
 +.IP CURLPIPE_MULTIPLEX (2)
 +If this bit is set, libcurl will try to multiplex the new transfer over an
 +existing connection if possible. This requires HTTP/2.
 +.SH DEFAULT
 +Since 7.62.0, \fBCURLPIPE_MULTIPLEX\fP is enabled by default.
 +
 +Before that, default was \fBCURLPIPE_NOTHING\fP.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURLM *m = curl_multi_init();
 +/* try HTTP/2 multiplexing */
 +curl_multi_setopt(m, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.16.0. Multiplex support bit added in 7.43.0. HTTP/1 Pipelining
 +support was disabled in 7.62.0.
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_MAX_PIPELINE_LENGTH "(3), "
 +.BR CURLMOPT_PIPELINING_SITE_BL "(3), "
 +.BR CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE "(3), "
 +.BR CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE "(3), "
 +.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
 +.BR CURLMOPT_MAXCONNECTS "(3), "
 +.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_PIPELINING_SERVER_BL.3
index 46bce5f63,000000000..47c142854
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_PIPELINING_SERVER_BL.3
+++ b/docs/libcurl/opts/GNURLMOPT_PIPELINING_SERVER_BL.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_PIPELINING_SERVER_BL 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_PIPELINING_SERVER_BL \- pipelining server block list
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SERVER_BL, 
char **servers);
 +.SH DESCRIPTION
 +No function since pipelining was removed in 7.62.0.
 +
 +Pass a \fBservers\fP array of char *, ending with a NULL entry. This is a list
 +of server types prefixes (in the Server: HTTP header) that are blocked from
 +pipelining, i.e server types that are known to not support HTTP
 +pipelining. The array is copied by libcurl.
 +
 +Note that the comparison matches if the Server: header begins with the string
 +in the block list, i.e "Server: Ninja 1.2.3" and "Server: Ninja 1.4.0" can
 +both be blocked by having "Ninja" in the list.
 +
 +Pass a NULL pointer to clear the block list.
 +.SH DEFAULT
 +The default value is NULL, which means that there is no block list.
 +.SH PROTOCOLS
 +.SH EXAMPLE
 +.nf
 +  char *server_block_list[] =
 +  {
 +    "Microsoft-IIS/6.0",
 +    "nginx/0.8.54",
 +    NULL
 +  };
 +
 +  curl_multi_setopt(m, CURLMOPT_PIPELINING_SERVER_BL, server_block_list);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_PIPELINING_SITE_BL "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_PIPELINING_SITE_BL.3
index ab42861e3,000000000..5856d43a1
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_PIPELINING_SITE_BL.3
+++ b/docs/libcurl/opts/GNURLMOPT_PIPELINING_SITE_BL.3
@@@ -1,58 -1,0 +1,58 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_PIPELINING_SITE_BL 3 "4 Nov 2014" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_PIPELINING_SITE_BL \- pipelining host block list
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SITE_BL, char 
**hosts);
 +.SH DESCRIPTION
 +No function since pipelining was removed in 7.62.0.
 +
 +Pass a \fBhosts\fP array of char *, ending with a NULL entry. This is a list
 +of sites that are blocked from pipelining, i.e sites that are known to not
 +support HTTP pipelining. The array is copied by libcurl.
 +
 +Pass a NULL pointer to clear the block list.
 +.SH DEFAULT
 +The default value is NULL, which means that there is no block list.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +  char *site_block_list[] =
 +  {
 +    "www.haxx.se",
 +    "www.example.com:1234",
 +    NULL
 +  };
 +
 +  curl_multi_setopt(m, CURLMOPT_PIPELINING_SITE_BL, site_block_list);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.30.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_PIPELINING_SERVER_BL "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_PUSHDATA.3
index 82ec928ae,000000000..5f6586a5c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_PUSHDATA.3
+++ b/docs/libcurl/opts/GNURLMOPT_PUSHDATA.3
@@@ -1,79 -1,0 +1,79 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_PUSHDATA 3 "1 Jun 2015" "libcurl 7.44.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_PUSHDATA \- pointer to pass to push callback
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PUSHDATA, void *pointer);
 +.fi
 +.SH DESCRIPTION
 +Set \fIpointer\fP to pass as the last argument to the
 +\fICURLMOPT_PUSHFUNCTION(3)\fP callback. The pointer will not be touched or
 +used by libcurl itself, only passed on to the callback function.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +/* only allow pushes for file names starting with "push-" */
 +int push_callback(CURL *parent,
 +                  CURL *easy,
 +                  size_t num_headers,
 +                  struct curl_pushheaders *headers,
 +                  void *userp)
 +{
 +  char *headp;
 +  int *transfers = (int *)userp;
 +  FILE *out;
 +  headp = curl_pushheader_byname(headers, ":path");
 +  if(headp && !strncmp(headp, "/push-", 6)) {
 +    fprintf(stderr, "The PATH is %s\\n", headp);
 +
 +    /* save the push here */
 +    out = fopen("pushed-stream", "wb");
 +
 +    /* write to this file */
 +    curl_easy_setopt(easy, CURLOPT_WRITEDATA, out);
 +
 +    (*transfers)++; /* one more */
 +
 +    return CURL_PUSH_OK;
 +  }
 +  return CURL_PUSH_DENY;
 +}
 +
 +curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback);
 +curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.44.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PUSHFUNCTION "(3), " CURLMOPT_PIPELINING "(3), "
 +.BR CURLOPT_PIPEWAIT "(3), "
 +.BR RFC 7540
diff --cc docs/libcurl/opts/GNURLMOPT_PUSHFUNCTION.3
index b9d5efcdc,000000000..5c15f9973
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_PUSHFUNCTION.3
+++ b/docs/libcurl/opts/GNURLMOPT_PUSHFUNCTION.3
@@@ -1,136 -1,0 +1,136 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_PUSHFUNCTION 3 "1 Jun 2015" "libcurl 7.44.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num);
 +char *curl_pushheader_byname(struct curl_pushheaders *h, const char *name);
 +
 +int curl_push_callback(CURL *parent,
 +                       CURL *easy,
 +                       size_t num_headers,
 +                       struct curl_pushheaders *headers,
 +                       void *userp);
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PUSHFUNCTION,
 +                            curl_push_callback func);
 +.fi
 +.SH DESCRIPTION
 +This callback gets called when a new HTTP/2 stream is being pushed by the
 +server (using the PUSH_PROMISE frame). If no push callback is set, all offered
 +pushes will be denied automatically.
 +.SH CALLBACK DESCRIPTION
 +The callback gets its arguments like this:
 +
 +\fIparent\fP is the handle of the stream on which this push arrives. The new
 +handle has been duphandle()d from the parent, meaning that it has gotten all
 +its options inherited. It is then up to the application to alter any options
 +if desired.
 +
 +\fIeasy\fP is a newly created handle that represents this upcoming transfer.
 +
 +\fInum_headers\fP is the number of name+value pairs that was received and can
 +be accessed
 +
 +\fIheaders\fP is a handle used to access push headers using the accessor
 +functions described below. This only accesses and provides the PUSH_PROMISE
 +headers, the normal response headers will be provided in the header callback
 +as usual.
 +
 +\fIuserp\fP is the pointer set with \fICURLMOPT_PUSHDATA(3)\fP
 +
 +If the callback returns CURL_PUSH_OK, the 'easy' handle will be added to the
 +multi handle, the callback must not do that by itself.
 +
 +The callback can access PUSH_PROMISE headers with two accessor
 +functions. These functions can only be used from within this callback and they
 +can only access the PUSH_PROMISE headers. The normal response headers will be
 +passed to the header callback for pushed streams just as for normal streams.
 +.IP curl_pushheader_bynum
 +Returns the header at index 'num' (or NULL). The returned pointer points to a
 +"name:value" string that will be freed when this callback returns.
 +.IP curl_pushheader_byname
 +Returns the value for the given header name (or NULL). This is a shortcut so
 +that the application doesn't have to loop through all headers to find the one
 +it is interested in. The data pointed will be freed when this callback
 +returns. If more than one header field use the same name, this returns only
 +the first one.
 +.SH CALLBACK RETURN VALUE
 +.IP "CURL_PUSH_OK (0)"
 +The application has accepted the stream and it can now start receiving data,
 +the ownership of the CURL handle has been taken over by the application.
 +.IP "CURL_PUSH_DENY (1)"
 +The callback denies the stream and no data for this will reach the
 +application, the easy handle will be destroyed by libcurl.
 +.IP "CURL_PUSH_ERROROUT (2)"
 +Returning this will reject the pushed stream and return an error back on the
 +parent stream making it get closed with an error. (Added in curl 7.72.0)
 +.IP *
 +All other return codes are reserved for future use.
 +.SH DEFAULT
 +NULL, no callback
 +.SH PROTOCOLS
 +HTTP(S) (HTTP/2 only)
 +.SH EXAMPLE
 +.nf
 +/* only allow pushes for file names starting with "push-" */
 +int push_callback(CURL *parent,
 +                  CURL *easy,
 +                  size_t num_headers,
 +                  struct curl_pushheaders *headers,
 +                  void *userp)
 +{
 +  char *headp;
 +  int *transfers = (int *)userp;
 +  FILE *out;
 +  headp = curl_pushheader_byname(headers, ":path");
 +  if(headp && !strncmp(headp, "/push-", 6)) {
 +    fprintf(stderr, "The PATH is %s\\n", headp);
 +
 +    /* save the push here */
 +    out = fopen("pushed-stream", "wb");
 +
 +    /* write to this file */
 +    curl_easy_setopt(easy, CURLOPT_WRITEDATA, out);
 +
 +    (*transfers)++; /* one more */
 +
 +    return CURL_PUSH_OK;
 +  }
 +  return CURL_PUSH_DENY;
 +}
 +
 +curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback);
 +curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.44.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_PUSHDATA "(3), " CURLMOPT_PIPELINING "(3), " CURLOPT_PIPEWAIT 
"(3), "
 +.BR RFC 7540
diff --cc docs/libcurl/opts/GNURLMOPT_SOCKETDATA.3
index 10bff8bd7,000000000..2f1a9a1cc
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_SOCKETDATA.3
+++ b/docs/libcurl/opts/GNURLMOPT_SOCKETDATA.3
@@@ -1,76 -1,0 +1,76 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_SOCKETDATA 3 "3 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETDATA, void 
*pointer);
 +.SH DESCRIPTION
 +A data \fIpointer\fP to pass to the socket callback set with the
 +\fICURLMOPT_SOCKETFUNCTION(3)\fP option.
 +
 +This pointer will not be touched by libcurl but will only be passed in to the
 +socket callbacks's \fBuserp\fP argument.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
 +{
 +  GlobalInfo *g = (GlobalInfo*) cbp;
 +  SockInfo *fdp = (SockInfo*) sockp;
 +
 +  if(what == CURL_POLL_REMOVE) {
 +    remsock(fdp);
 +  }
 +  else {
 +    if(!fdp) {
 +      addsock(s, e, what, g);
 +    }
 +    else {
 +      setsock(fdp, s, e, what, g);
 +    }
 +  }
 +  return 0;
 +}
 +
 +main()
 +{
 +  GlobalInfo setup;
 +  /* ... use socket callback and custom pointer */
 +  curl_multi_setopt(multi, CURLMOPT_SOCKETFUNCTION, sock_cb);
 +  curl_multi_setopt(multi, CURLMOPT_SOCKETDATA, &setup);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.15.4
 +.SH RETURN VALUE
 +Returns CURLM_OK.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_SOCKETFUNCTION "(3), " curl_multi_socket_action "(3), "
 +.BR CURLMOPT_TIMERFUNCTION "(3) "
diff --cc docs/libcurl/opts/GNURLMOPT_SOCKETFUNCTION.3
index cd7b49dce,000000000..dd70220b4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_SOCKETFUNCTION.3
+++ b/docs/libcurl/opts/GNURLMOPT_SOCKETFUNCTION.3
@@@ -1,110 -1,0 +1,110 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_SOCKETFUNCTION 3 "3 Nov 2016" "libcurl 7.39.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +int socket_callback(CURL *easy,      /* easy handle */
 +                    curl_socket_t s, /* socket */
 +                    int what,        /* describes the socket */
 +                    void *userp,     /* private callback pointer */
 +                    void *socketp);  /* private socket pointer */
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETFUNCTION, 
socket_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +When the \fIcurl_multi_socket_action(3)\fP function is called, it informs the
 +application about updates in the socket (file descriptor) status by doing
 +none, one, or multiple calls to the \fBsocket_callback\fP. The callback
 +function gets status updates with changes since the previous time the callback
 +was called. If the given callback pointer is set to NULL, no callback will be
 +called.
 +.SH "CALLBACK ARGUMENTS"
 +\fIeasy\fP identifies the specific transfer for which this update is related.
 +
 +\fIs\fP is the specific socket this function invocation concerns. If the
 +\fBwhat\fP argument is not CURL_POLL_REMOVE then it holds information about
 +what activity on this socket the application is supposed to
 +monitor. Subsequent calls to this callback might update the \fBwhat\fP bits
 +for a socket that is already monitored.
 +
 +\fBuserp\fP is set with \fICURLMOPT_SOCKETDATA(3)\fP.
 +
 +\fBsocketp\fP is set with \fIcurl_multi_assign(3)\fP or will be NULL.
 +
 +The \fBwhat\fP parameter informs the callback on the status of the given
 +socket. It can hold one of these values:
 +.IP CURL_POLL_IN
 +Wait for incoming data. For the socket to become readable.
 +.IP CURL_POLL_OUT
 +Wait for outgoing data. For the socket to become writable.
 +.IP CURL_POLL_INOUT
 +Wait for incoming and outgoing data. For the socket to become readable or
 +writable.
 +.IP CURL_POLL_REMOVE
 +The specified socket/file descriptor is no longer used by libcurl.
 +.SH DEFAULT
 +NULL (no callback)
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static int sock_cb(CURL *e, curl_socket_t s, int what, void *cbp, void *sockp)
 +{
 +  GlobalInfo *g = (GlobalInfo*) cbp;
 +  SockInfo *fdp = (SockInfo*) sockp;
 +
 +  if(what == CURL_POLL_REMOVE) {
 +    remsock(fdp);
 +  }
 +  else {
 +    if(!fdp) {
 +      addsock(s, e, what, g);
 +    }
 +    else {
 +      setsock(fdp, s, e, what, g);
 +    }
 +  }
 +  return 0;
 +}
 +
 +main()
 +{
 +  GlobalInfo setup;
 +  /* ... use socket callback and custom pointer */
 +  curl_multi_setopt(multi, CURLMOPT_SOCKETFUNCTION, sock_cb);
 +  curl_multi_setopt(multi, CURLMOPT_SOCKETDATA, &setup);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.15.4
 +.SH RETURN VALUE
 +Returns CURLM_OK.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_SOCKETDATA "(3), " curl_multi_socket_action "(3), "
 +.BR CURLMOPT_TIMERFUNCTION "(3) "
diff --cc docs/libcurl/opts/GNURLMOPT_TIMERDATA.3
index 29ad19160,000000000..0e54ed23c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_TIMERDATA.3
+++ b/docs/libcurl/opts/GNURLMOPT_TIMERDATA.3
@@@ -1,82 -1,0 +1,82 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_TIMERDATA 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt 
options"
 +.SH NAME
 +CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERDATA, void *pointer);
 +.SH DESCRIPTION
 +A data \fBpointer\fP to pass to the timer callback set with the
 +\fICURLMOPT_TIMERFUNCTION(3)\fP option.
 +
 +This pointer will not be touched by libcurl but will only be passed in to the
 +timer callbacks's \fBuserp\fP argument.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static gboolean timeout_cb(gpointer user_data)
 +{
 +  int running;
 +  if(user_data) {
 +    g_free(user_data);
 +    curl_multi_setopt(curl_handle, CURLMOPT_TIMERDATA, NULL);
 +  }
 +  curl_multi_socket_action(multi, CURL_SOCKET_TIMEOUT, 0, &running);
 +  return G_SOURCE_REMOVE;
 +}
 +
 +static int timerfunc(CURLM *multi, long timeout_ms, void *userp)
 +{
 +  guint *id = userp;
 +
 +  if(id)
 +    g_source_remove(*id);
 +
 +  /* -1 means we should just delete our timer. */
 +  if(timeout_ms == -1) {
 +    g_free(id);
 +    id = NULL;
 +  }
 +  else {
 +    if(!id)
 +      id = g_new(guint, 1);
 +    *id = g_timeout_add(timeout_ms, timeout_cb, id);
 +  }
 +  curl_multi_setopt(multi, CURLMOPT_TIMERDATA, id);
 +  return 0;
 +}
 +
 +curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, timerfunc);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.16.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_TIMERFUNCTION "(3), " CURLMOPT_SOCKETFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLMOPT_TIMERFUNCTION.3
index 1e2d64862,000000000..46d5b5157
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLMOPT_TIMERFUNCTION.3
+++ b/docs/libcurl/opts/GNURLMOPT_TIMERFUNCTION.3
@@@ -1,107 -1,0 +1,107 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 GNURLMOPT_TIMERFUNCTION 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_multi_setopt options"
 +.SH NAME
 +CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +int timer_callback(CURLM *multi,    /* multi handle */
 +                   long timeout_ms, /* timeout in number of ms */
 +                   void *userp);    /* private callback pointer */
 +
 +CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERFUNCTION, 
timer_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +Certain features, such as timeouts and retries, require you to call libcurl
 +even when there is no activity on the file descriptors.
 +
 +Your callback function \fBtimer_callback\fP should install a non-repeating
 +timer with an interval of \fBtimeout_ms\fP. When time that timer fires, call
 +either \fIcurl_multi_socket_action(3)\fP or \fIcurl_multi_perform(3)\fP,
 +depending on which interface you use.
 +
 +A \fBtimeout_ms\fP value of -1 passed to this callback means you should delete
 +the timer. All other values are valid expire times in number of milliseconds.
 +
 +The \fBtimer_callback\fP will only be called when the timeout expire time is
 +changed.
 +
 +The \fBuserp\fP pointer is set with \fICURLMOPT_TIMERDATA(3)\fP.
 +
 +The timer callback should return 0 on success, and -1 on error. This callback
 +can be used instead of, or in addition to, \fIcurl_multi_timeout(3)\fP.
 +
 +\fBWARNING:\fP even if it feels tempting, avoid calling libcurl directly from
 +within the callback itself when the \fBtimeout_ms\fP value is zero, since it
 +risks triggering an unpleasant recursive behavior that immediately calls
 +another call to the callback with a zero timeout...
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static gboolean timeout_cb(gpointer user_data)
 +{
 +  int running;
 +  if(user_data) {
 +    g_free(user_data);
 +    curl_multi_setopt(curl_handle, CURLMOPT_TIMERDATA, NULL);
 +  }
 +  curl_multi_socket_action(multi, CURL_SOCKET_TIMEOUT, 0, &running);
 +  return G_SOURCE_REMOVE;
 +}
 +
 +static int timerfunc(CURLM *multi, long timeout_ms, void *userp)
 +{
 +  guint *id = userp;
 +
 +  if(id)
 +    g_source_remove(*id);
 +
 +  /* -1 means we should just delete our timer. */
 +  if(timeout_ms == -1) {
 +    g_free(id);
 +    id = NULL;
 +  }
 +  else {
 +    if(!id)
 +      id = g_new(guint, 1);
 +    *id = g_timeout_add(timeout_ms, timeout_cb, id);
 +  }
 +  curl_multi_setopt(multi, CURLMOPT_TIMERDATA, id);
 +  return 0;
 +}
 +
 +curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, timerfunc);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.16.0
 +.SH RETURN VALUE
 +Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLMOPT_TIMERDATA "(3), " CURLMOPT_SOCKETFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ABSTRACT_UNIX_SOCKET.3
index fbb25c4f6,000000000..ccb644a16
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ABSTRACT_UNIX_SOCKET.3
+++ b/docs/libcurl/opts/GNURLOPT_ABSTRACT_UNIX_SOCKET.3
@@@ -1,58 -1,0 +1,58 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ABSTRACT_UNIX_SOCKET 3 "08 Jan 2017" "libcurl 7.53.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ABSTRACT_UNIX_SOCKET, char 
*path);
 +.SH DESCRIPTION
 +Enables the use of an abstract Unix domain socket instead of establishing a 
TCP
 +connection to a host. The parameter should be a char * to a null-terminated 
string
 +holding the path of the socket. The path will be set to \fIpath\fP prefixed 
by a
 +NULL byte (this is the convention for abstract sockets, however it should be 
stressed
 +that the path passed to this function should not contain a leading NULL).
 +
 +On non-supporting platforms, the abstract address will be interpreted as an 
empty
 +string and fail gracefully, generating a run-time error.
 +
 +This option shares the same semantics as
 +.BR CURLOPT_UNIX_SOCKET_PATH "(3)
 +in which documentation more details can be found. Internally, these two 
options share
 +the same storage and therefore only one of them can be set per handle.
 +
 +.SH DEFAULT
 +Default is NULL.
 +.SH EXAMPLE
 +.nf
 +    curl_easy_setopt(curl_handle, CURLOPT_ABSTRACT_UNIX_SOCKET, 
"/tmp/foo.sock");
 +    curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/";);
 +.fi
 +
 +.SH AVAILABILITY
 +Since 7.53.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_UNIX_SOCKET_PATH "(3), " unix "(7), "
diff --cc docs/libcurl/opts/GNURLOPT_ACCEPTTIMEOUT_MS.3
index d74e14960,000000000..2c1e09df4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ACCEPTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/GNURLOPT_ACCEPTTIMEOUT_MS.3
@@@ -1,54 -1,0 +1,54 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ACCEPTTIMEOUT_MS 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPTTIMEOUT_MS, long ms);
 +.SH DESCRIPTION
 +Pass a long telling libcurl the maximum number of milliseconds to wait for a
 +server to connect back to libcurl when an active FTP connection is used.
 +.SH DEFAULT
 +60000 milliseconds
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/path/file";);
 +
 +  /* wait no more than 5 seconds for FTP server responses */
 +  curl_easy_setopt(curl, CURLOPT_ACCEPTTIMEOUT_MS, 5000L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.24.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
index 2586b013d,000000000..f2be9198d
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
+++ b/docs/libcurl/opts/GNURLOPT_ACCEPT_ENCODING.3
@@@ -1,106 -1,0 +1,106 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ACCEPT_ENCODING 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc);
 +.SH DESCRIPTION
 +Pass a char * argument specifying what encoding you'd like.
 +
 +Sets the contents of the Accept-Encoding: header sent in an HTTP request, and
 +enables decoding of a response when a Content-Encoding: header is received.
 +
 +libcurl potentially supports several different compressed encodings depending
 +on what support that has been built-in.
 +
 +To aid applications not having to bother about what specific algorithms this
 +particular libcurl build supports, libcurl allows a zero-length string to be
 +set ("") to ask for an Accept-Encoding: header to be used that contains all
 +built-in supported encodings.
 +
 +Alternatively, you can specify exactly the encoding or list of encodings you
 +want in the response. Four encodings are supported: \fIidentity\fP, meaning
 +non-compressed, \fIdeflate\fP which requests the server to compress its
 +response using the zlib algorithm, \fIgzip\fP which requests the gzip
 +algorithm, (since curl 7.57.0) \fIbr\fP which is brotli and (since curl
 +7.72.0) \fIzstd\fP which is zstd.  Provide them in the string as a
 +comma-separated list of accepted encodings, like:
 +
 +  "br, gzip, deflate".
 +
 +Set \fICURLOPT_ACCEPT_ENCODING(3)\fP to NULL to explicitly disable it, which
 +makes libcurl not send an Accept-Encoding: header and not decompress received
 +contents automatically.
 +
 +You can also opt to just include the Accept-Encoding: header in your request
 +with \fICURLOPT_HTTPHEADER(3)\fP but then there will be no automatic
 +decompressing when receiving data.
 +
 +This is a request, not an order; the server may or may not do it.  This option
 +must be set (to any non-NULL value) or else any unsolicited encoding done by
 +the server is ignored.
 +
 +Servers might respond with Content-Encoding even without getting a
 +Accept-Encoding: in the request. Servers might respond with a different
 +Content-Encoding than what was asked for in the request.
 +
 +The Content-Length: servers send for a compressed response is supposed to
 +indicate the length of the compressed content so when auto decoding is enabled
 +it may not match the sum of bytes reported by the write callbacks (although,
 +sending the length of the non-compressed content is a common server mistake).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* enable all supported built-in compressions */
 +  curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "");
 +
 +  /* Perform the request */
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option was called CURLOPT_ENCODING before 7.21.6
 +
 +The specific libcurl you're using must have been built with zlib to be able to
 +decompress gzip and deflate responses, with the brotli library to
 +decompress brotli responses and with the zstd library to decompress zstd
 +responses.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_TRANSFER_ENCODING "(3), " CURLOPT_HTTPHEADER "(3), "
 +.BR CURLOPT_HTTP_CONTENT_DECODING "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ADDRESS_SCOPE.3
index 75467fe20,000000000..706a24e4e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ADDRESS_SCOPE.3
+++ b/docs/libcurl/opts/GNURLOPT_ADDRESS_SCOPE.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ADDRESS_SCOPE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_ADDRESS_SCOPE \- set scope id for IPv6 addresses
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ADDRESS_SCOPE, long scope);
 +.SH DESCRIPTION
 +Pass a long specifying the scope id value to use when connecting to IPv6 
addresses.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +All, when using IPv6
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode ret;
 +  long my_scope_id;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  my_scope_id = if_nametoindex("eth0");
 +  curl_easy_setopt(curl, CURLOPT_ADDRESS_SCOPE, my_scope_id);
 +  ret = curl_easy_perform(curl);
 +  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.
 +Returns CURLE_BAD_FUNCTION_ARGUMENT if set to a negative value.
 +.SH "SEE ALSO"
 +.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ALTSVC.3
index d1d44629e,000000000..9ba1e7ef0
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ALTSVC.3
+++ b/docs/libcurl/opts/GNURLOPT_ALTSVC.3
@@@ -1,63 -1,0 +1,58 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
++.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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 287da646e,000000000..6dc10bbc1
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,82 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_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. (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
 +Alt-Svc handling is disabled by default. If \fICURLOPT_ALTSVC(3)\fP is set,
 +\fICURLOPT_ALTSVC_CTRL(3)\fP has a default value corresponding to
 +CURLALTSVC_H1 | CURLALTSVC_H2 | CURLALTSVC_H3 - the HTTP/2 and HTTP/3 bits are
 +only set if libcurl was built with support for those versions.
 +.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_APPEND.3
index 69e293191,000000000..65eee1ea1
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_APPEND.3
+++ b/docs/libcurl/opts/GNURLOPT_APPEND.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_APPEND 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_APPEND \- enable appending to the remote file
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_APPEND, long append);
 +.SH DESCRIPTION
 +A long parameter set to 1 tells the library to append to the remote file
 +instead of overwrite it. This is only useful when uploading to an FTP site.
 +.SH DEFAULT
 +0 (disabled)
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/dir/to/newfile";);
 +  curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
 +  curl_easy_setopt(curl, CURLOPT_APPEND, 1L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option was known as CURLOPT_FTPAPPEND up to 7.16.4
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DIRLISTONLY "(3), " CURLOPT_RESUME_FROM "(3), "
 +.BR CURLOPT_UPLOAD "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_AUTOREFERER.3
index 9f0f2f527,000000000..77ab5ec1f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_AUTOREFERER.3
+++ b/docs/libcurl/opts/GNURLOPT_AUTOREFERER.3
@@@ -1,60 -1,0 +1,60 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_AUTOREFERER 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_AUTOREFERER \- automatically update the referer header
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AUTOREFERER, long autorefer);
 +.SH DESCRIPTION
 +Pass a parameter set to 1 to enable this. When enabled, libcurl will
 +automatically set the Referer: header field in HTTP requests where it follows
 +a Location: redirect.
 +.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_URL, "https://example.com/foo.bin";);
 +
 +  /* follow redirects */
 +  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +
 +  /* set Referer: automatically when following redirects */
 +  curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1L);
 +
 +  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_REFERER "(3), " CURLOPT_FOLLOWLOCATION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_BUFFERSIZE.3
index 1607d02de,000000000..240fd5d02
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_BUFFERSIZE.3
+++ b/docs/libcurl/opts/GNURLOPT_BUFFERSIZE.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_BUFFERSIZE 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_BUFFERSIZE \- set preferred receive buffer size
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_BUFFERSIZE, long size);
 +.SH DESCRIPTION
 +Pass a long specifying your preferred \fIsize\fP (in bytes) for the receive
 +buffer in libcurl.  The main point of this would be that the write callback
 +gets called more often and with smaller chunks. Secondly, for some protocols,
 +there's a benefit of having a larger buffer for performance.
 +
 +This is just treated as a request, not an order. You cannot be guaranteed to
 +actually get the given size.
 +
 +This buffer size is by default \fICURL_MAX_WRITE_SIZE\fP (16kB). The maximum
 +buffer size allowed to be set is \fICURL_MAX_READ_SIZE\fP (512kB). The minimum
 +buffer size allowed to be set is 1024.
 +.SH DEFAULT
 +CURL_MAX_WRITE_SIZE (16kB)
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "sftp://example.com/foo.bin";);
 +
 +  /* ask libcurl to allocate a larger receive buffer */
 +  curl_easy_setopt(curl, CURLOPT_BUFFERSIZE, 120000L);
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.10.  Growing the buffer was added in 7.53.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_MAX_RECV_SPEED_LARGE "(3), " CURLOPT_WRITEFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CAINFO.3
index 83a86a643,000000000..44ae70232
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CAINFO.3
+++ b/docs/libcurl/opts/GNURLOPT_CAINFO.3
@@@ -1,83 -1,0 +1,83 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CAINFO 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAINFO, char *path);
 +.SH DESCRIPTION
 +Pass a char * to a null-terminated string naming a file holding one or more
 +certificates to verify the peer with.
 +
 +If \fICURLOPT_SSL_VERIFYPEER(3)\fP is zero and you avoid verifying the
 +server's certificate, \fICURLOPT_CAINFO(3)\fP need not even indicate an
 +accessible file.
 +
 +This option is by default set to the system path where libcurl's cacert bundle
 +is assumed to be stored, as established at build time.
 +
 +If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module
 +(libnsspem.so) needs to be available for this option to work properly.
 +Starting with curl-7.55.0, if both \fICURLOPT_CAINFO(3)\fP and
 +\fICURLOPT_CAPATH(3)\fP are unset, NSS-linked libcurl tries to load
 +libnssckbi.so, which contains a more comprehensive set of trust information
 +than supported by nss-pem, because libnssckbi.so also includes information
 +about distrusted certificates.
 +
 +(iOS and macOS) When curl uses Secure Transport this option is supported. If
 +the option is not set, then curl will use the certificates in the system and
 +user Keychain to verify the peer.
 +
 +(Schannel) This option is supported for Schannel in Windows 7 or later but we
 +recommend not using it until Windows 8 since it works better starting then.
 +If the option is not set, then curl will use the certificates in the Windows'
 +store of root certificates (the default for Schannel).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +Built-in system specific. When curl is built with Secure Transport or
 +Schannel, this option is not set by default.
 +.SH PROTOCOLS
 +All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/certs/cabundle.pem");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +For the SSL engines that don't support certificate files the CURLOPT_CAINFO
 +option is ignored. Schannel support added in libcurl 7.60.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CAPATH "(3), "
 +.BR CURLOPT_SSL_VERIFYPEER "(3), " CURLOPT_SSL_VERIFYHOST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CAPATH.3
index 17ff2fb47,000000000..bf089b109
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CAPATH.3
+++ b/docs/libcurl/opts/GNURLOPT_CAPATH.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CAPATH 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CAPATH \- specify directory holding CA certificates
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAPATH, char *capath);
 +.SH DESCRIPTION
 +Pass a char * to a null-terminated string naming a directory holding multiple
 +CA certificates to verify the peer with. If libcurl is built against OpenSSL,
 +the certificate directory must be prepared using the openssl c_rehash utility.
 +This makes sense only when used in combination with the
 +\fICURLOPT_SSL_VERIFYPEER(3)\fP option.
 +
 +The \fICURLOPT_CAPATH(3)\fP function apparently does not work in Windows due
 +to some limitation in openssl.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.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/";);
 +  curl_easy_setopt(curl, CURLOPT_CAPATH, "/etc/cert-dir");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option is supported by the OpenSSL, GnuTLS and mbedTLS (since 7.56.0)
 +backends. The NSS backend provides the option only for backward compatibility.
 +.SH RETURN VALUE
 +CURLE_OK if supported; or an error such as:
 +
 +CURLE_NOT_BUILT_IN - Not supported by the SSL backend
 +
 +CURLE_UNKNOWN_OPTION
 +
 +CURLE_OUT_OF_MEMORY
 +.SH "SEE ALSO"
 +.BR CURLOPT_CAINFO "(3), "
 +.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CERTINFO.3
index 0aba17e7c,000000000..a3d074616
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CERTINFO.3
+++ b/docs/libcurl/opts/GNURLOPT_CERTINFO.3
@@@ -1,78 -1,0 +1,78 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CERTINFO 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CERTINFO \- request SSL certificate information
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long certinfo);
 +.SH DESCRIPTION
 +Pass a long set to 1 to enable libcurl's certificate chain info gatherer. With
 +this enabled, libcurl will extract lots of information and data about the
 +certificates in the certificate chain used in the SSL connection. This data
 +may then be retrieved after a transfer using \fIcurl_easy_getinfo(3)\fP and
 +its option \fICURLINFO_CERTINFO(3)\fP.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +All TLS-based
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/";);
 +
 +  /* connect to any HTTPS site, trusted or not */
 +  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
 +  curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
 +
 +  curl_easy_setopt(curl, CURLOPT_CERTINFO, 1L);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if (!res) {
 +    struct curl_certinfo *ci;
 +    res = curl_easy_getinfo(curl, CURLINFO_CERTINFO, &ci);
 +
 +    if (!res) {
 +      printf("%d certs!\\n", ci->num_of_certs);
 +
 +      for(i = 0; i < ci->num_of_certs; i++) {
 +        struct curl_slist *slist;
 +
 +        for(slist = ci->certinfo[i]; slist; slist = slist->next)
 +          printf("%s\\n", slist->data);
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option is supported by the OpenSSL, GnuTLS, Schannel, NSS and GSKit
 +backends.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CAINFO "(3), " CURLOPT_SSL_VERIFYPEER "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CHUNK_BGN_FUNCTION.3
index a4ca84936,000000000..6f14562ea
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CHUNK_BGN_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CHUNK_BGN_FUNCTION.3
@@@ -1,141 -1,0 +1,141 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CHUNK_BGN_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP 
wildcardmatch
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +struct curl_fileinfo {
 +  char *filename;
 +  curlfiletype filetype;
 +  time_t time;   /* always zero! */
 +  unsigned int perm;
 +  int uid;
 +  int gid;
 +  curl_off_t size;
 +  long int hardlinks;
 +
 +  struct {
 +    /* If some of these fields is not NULL, it is a pointer to b_data. */
 +    char *time;
 +    char *perm;
 +    char *user;
 +    char *group;
 +    char *target; /* pointer to the target filename of a symlink */
 +  } strings;
 +
 +  unsigned int flags;
 +
 +  /* used internally */
 +  char *b_data;
 +  size_t b_size;
 +  size_t b_used;
 +};
 +
 +long chunk_bgn_callback(const void *transfer_info, void *ptr,
 +                        int remains);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_BGN_FUNCTION,
 +                          chunk_bgn_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +This callback function gets called by libcurl before a part of the stream is
 +going to be transferred (if the transfer supports chunks).
 +
 +The \fItransfer_info\fP pointer will point to a struct curl_fileinfo with
 +details about the file that is about to get transferred.
 +
 +This callback makes sense only when using the \fICURLOPT_WILDCARDMATCH(3)\fP
 +option for now.
 +
 +The target of transfer_info parameter is a "feature depended" structure. For
 +the FTP wildcard download, the target is curl_fileinfo structure (see
 +\fIgnurl/curl.h\fP).  The parameter \fIptr\fP is a pointer given by
 +\fICURLOPT_CHUNK_DATA(3)\fP. The parameter remains contains number of chunks
 +remaining per the transfer. If the feature is not available, the parameter has
 +zero value.
 +
 +Return \fICURL_CHUNK_BGN_FUNC_OK\fP if everything is fine,
 +\fICURL_CHUNK_BGN_FUNC_SKIP\fP if you want to skip the concrete chunk or
 +\fICURL_CHUNK_BGN_FUNC_FAIL\fP to tell libcurl to stop if some error occurred.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +static long file_is_coming(struct curl_fileinfo *finfo,
 +                           struct callback_data *data,
 +                           int remains)
 +{
 +  printf("%3d %40s %10luB ", remains, finfo->filename,
 +         (unsigned long)finfo->size);
 +
 +  switch(finfo->filetype) {
 +  case CURLFILETYPE_DIRECTORY:
 +    printf(" DIR\\n");
 +    break;
 +  case CURLFILETYPE_FILE:
 +    printf("FILE ");
 +    break;
 +  default:
 +    printf("OTHER\\n");
 +    break;
 +  }
 +
 +  if(finfo->filetype == CURLFILETYPE_FILE) {
 +    /* do not transfer files >= 50B */
 +    if(finfo->size > 50) {
 +      printf("SKIPPED\\n");
 +      return CURL_CHUNK_BGN_FUNC_SKIP;
 +    }
 +
 +    data->output = fopen(finfo->filename, "wb");
 +    if(!data->output) {
 +      return CURL_CHUNK_BGN_FUNC_FAIL;
 +    }
 +  }
 +
 +  return CURL_CHUNK_BGN_FUNC_OK;
 +}
 +
 +int main()
 +{
 +  /* data for callback */
 +  struct callback_data callback_info;
 +
 +  /* callback is called before download of concrete file started */
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_DATA, &callback_info);
 +}
 +.fi
 +.SH AVAILABILITY
 +This was added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CHUNK_END_FUNCTION "(3), " CURLOPT_WILDCARDMATCH "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CHUNK_DATA.3
index 04572f405,000000000..3fdc26bf0
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CHUNK_DATA.3
+++ b/docs/libcurl/opts/GNURLOPT_CHUNK_DATA.3
@@@ -1,90 -1,0 +1,90 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CHUNK_DATA 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer);
 +.SH DESCRIPTION
 +Pass a \fIpointer\fP that will be untouched by libcurl and passed as the ptr
 +argument to the \fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP and
 +\fICURLOPT_CHUNK_END_FUNCTION(3)\fP.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +static long file_is_coming(struct curl_fileinfo *finfo,
 +                           struct callback_data *data,
 +                           int remains)
 +{
 +  printf("%3d %40s %10luB ", remains, finfo->filename,
 +         (unsigned long)finfo->size);
 +
 +  switch(finfo->filetype) {
 +  case CURLFILETYPE_DIRECTORY:
 +    printf(" DIR\\n");
 +    break;
 +  case CURLFILETYPE_FILE:
 +    printf("FILE ");
 +    break;
 +  default:
 +    printf("OTHER\\n");
 +    break;
 +  }
 +
 +  if(finfo->filetype == CURLFILETYPE_FILE) {
 +    /* do not transfer files >= 50B */
 +    if(finfo->size > 50) {
 +      printf("SKIPPED\\n");
 +      return CURL_CHUNK_BGN_FUNC_SKIP;
 +    }
 +
 +    data->output = fopen(finfo->filename, "wb");
 +    if(!data->output) {
 +      return CURL_CHUNK_BGN_FUNC_FAIL;
 +    }
 +  }
 +
 +  return CURL_CHUNK_BGN_FUNC_OK;
 +}
 +
 +int main()
 +{
 +  /* data for callback */
 +  struct callback_data callback_info;
 +
 +  /* callback is called before download of concrete file started */
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_DATA, &callback_info);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CHUNK_BGN_FUNCTION "(3), " CURLOPT_WILDCARDMATCH "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CHUNK_END_FUNCTION.3
index d99d53e2e,000000000..69322bf68
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CHUNK_END_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CHUNK_END_FUNCTION.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CHUNK_END_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +long chunk_end_callback(void *ptr);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_END_FUNCTION,
 +                          chunk_end_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 a part of the stream has been
 +transferred (or skipped).
 +
 +Return \fICURL_CHUNK_END_FUNC_OK\fP if everything is fine or
 +\fBCURL_CHUNK_END_FUNC_FAIL\fP to tell the lib to stop if some error occurred.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +static long file_is_downloaded(struct callback_data *data)
 +{
 +  if(data->output) {
 +    fclose(data->output);
 +    data->output = 0x0;
 +  }
 +  return CURL_CHUNK_END_FUNC_OK;
 +}
 +
 +int main()
 +{
 +  /* data for callback */
 +  struct callback_data callback_info;
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_END_FUNCTION, file_is_downloaded);
 +  curl_easy_setopt(curl, CURLOPT_CHUNK_DATA, &callback_info);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_WILDCARDMATCH "(3), " CURLOPT_CHUNK_BGN_FUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CLOSESOCKETDATA.3
index dd9e69594,000000000..7772996d6
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CLOSESOCKETDATA.3
+++ b/docs/libcurl/opts/GNURLOPT_CLOSESOCKETDATA.3
@@@ -1,55 -1,0 +1,55 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CLOSESOCKETDATA 3 "16 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETDATA, void 
*pointer);
 +.SH DESCRIPTION
 +Pass a \fIpointer\fP that will be untouched by libcurl and passed as the first
 +argument in the closesocket callback set with
 +\fICURLOPT_CLOSESOCKETFUNCTION(3)\fP.
 +.SH DEFAULT
 +The default value of this parameter is NULL.
 +.SH PROTOCOLS
 +All except file:
 +.SH EXAMPLE
 +.nf
 +static int closesocket(void *clientp, curl_socket_t item)
 +{
 +  printf("libcurl wants to close %d now\\n", (int)item);
 +  return 0;
 +}
 +
 +/* call this function to close sockets */
 +curl_easy_setopt(curl, CURLOPT_CLOSESOCKETFUNCTION, closesocket);
 +curl_easy_setopt(curl, CURLOPT_CLOSESOCKETDATA, &sockfd);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.7
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CLOSESOCKETFUNCTION "(3), " CURLOPT_OPENSOCKETFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CLOSESOCKETFUNCTION.3
index f7d8d45b4,000000000..41b0fdd97
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CLOSESOCKETFUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CLOSESOCKETFUNCTION.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CLOSESOCKETFUNCTION 3 "16 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +int closesocket_callback(void *clientp, curl_socket_t item);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETFUNCTION, 
closesocket_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +This callback function gets called by libcurl instead of the \fIclose(3)\fP or
 +\fIclosesocket(3)\fP call when sockets are closed (not for any other file
 +descriptors). This is pretty much the reverse to the
 +\fICURLOPT_OPENSOCKETFUNCTION(3)\fP option. Return 0 to signal success and 1
 +if there was an error.
 +
 +The \fIclientp\fP pointer is set with
 +\fICURLOPT_CLOSESOCKETDATA(3)\fP. \fIitem\fP is the socket libcurl wants to be
 +closed.
 +.SH DEFAULT
 +By default libcurl uses the standard socket close function.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static int closesocket(void *clientp, curl_socket_t item)
 +{
 +  printf("libcurl wants to close %d now\\n", (int)item);
 +  return 0;
 +}
 +
 +/* call this function to close sockets */
 +curl_easy_setopt(curl, CURLOPT_CLOSESOCKETFUNCTION, closesocket);
 +curl_easy_setopt(curl, CURLOPT_CLOSESOCKETDATA, &sockfd);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.7
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CLOSESOCKETDATA "(3), " CURLOPT_OPENSOCKETFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT.3
index 60ee364f7,000000000..ca8d6f00c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT.3
+++ b/docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT.3
@@@ -1,65 -1,0 +1,65 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONNECTTIMEOUT 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT, long timeout);
 +.SH DESCRIPTION
 +Pass a long. It should contain the maximum time in seconds that you allow the
 +connection phase to the server to take.  This only limits the connection
 +phase, it has no impact once it has connected. Set to zero to switch to the
 +default built-in connection timeout - 300 seconds. See also the
 +\fICURLOPT_TIMEOUT(3)\fP option.
 +
 +In unix-like systems, this might cause signals to be used unless
 +\fICURLOPT_NOSIGNAL(3)\fP is set.
 +
 +If both \fICURLOPT_CONNECTTIMEOUT(3)\fP and \fICURLOPT_CONNECTTIMEOUT_MS(3)\fP
 +are set, the value set last will be used.
 +.SH DEFAULT
 +300
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* complete connection within 10 seconds */
 +  curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK. Returns CURLE_BAD_FUNCTION_ARGUMENT if set to a negative
 +value or a value that when converted to milliseconds is too large.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONNECTTIMEOUT_MS "(3), "
 +.BR CURLOPT_TIMEOUT "(3), " CURLOPT_LOW_SPEED_LIMIT "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT_MS.3
index da836e0c8,000000000..d8a0ac58e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT_MS.3
+++ b/docs/libcurl/opts/GNURLOPT_CONNECTTIMEOUT_MS.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONNECTTIMEOUT_MS 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT_MS, long 
timeout);
 +.SH DESCRIPTION
 +Pass a long. It should contain the maximum time in milliseconds that you allow
 +the connection phase to the server to take.  This only limits the connection
 +phase, it has no impact once it has connected. Set to zero to switch to the
 +default built-in connection timeout - 300 seconds. See also the
 +\fICURLOPT_TIMEOUT_MS(3)\fP option.
 +
 +In unix-like systems, this might cause signals to be used unless
 +\fICURLOPT_NOSIGNAL(3)\fP is set.
 +
 +If both \fICURLOPT_CONNECTTIMEOUT(3)\fP and \fICURLOPT_CONNECTTIMEOUT_MS(3)\fP
 +are set, the value set last will be used.
 +.SH DEFAULT
 +300000
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* complete connection within 10000 milliseconds */
 +  curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, 10000L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONNECTTIMEOUT "(3), "
 +.BR CURLOPT_TIMEOUT "(3), " CURLOPT_LOW_SPEED_LIMIT "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONNECT_ONLY.3
index 6e7962760,000000000..9ee9654e2
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONNECT_ONLY.3
+++ b/docs/libcurl/opts/GNURLOPT_CONNECT_ONLY.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONNECT_ONLY 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CONNECT_ONLY \- stop when connected to target server
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_ONLY, long only);
 +.SH DESCRIPTION
 +Pass a long. If the parameter equals 1, it tells the library to perform all
 +the required proxy authentication and connection setup, but no data transfer,
 +and then return.
 +
 +The option can be used to simply test a connection to a server, but is more
 +useful when used with the \fICURLINFO_ACTIVESOCKET(3)\fP option to
 +\fIcurl_easy_getinfo(3)\fP as the library can set up the connection and then
 +the application can obtain the most recently used socket for special data
 +transfers.
 +
 +Transfers marked connect only will not reuse any existing connections and
 +connections marked connect only will not be allowed to get reused.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +HTTP, SMTP, POP3 and IMAP
 +.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_CONNECT_ONLY, 1L);
 +  ret = curl_easy_perform(curl);
 +  if(ret == CURLE_OK) {
 +    /* only connected! */
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.15.2
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_VERBOSE "(3), " CURLOPT_HTTPPROXYTUNNEL  "(3), "
 +.BR curl_easy_recv "(3), " curl_easy_send "(3) "
diff --cc docs/libcurl/opts/GNURLOPT_CONNECT_TO.3
index a54121001,000000000..63532347a
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONNECT_TO.3
+++ b/docs/libcurl/opts/GNURLOPT_CONNECT_TO.3
@@@ -1,111 -1,0 +1,111 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONNECT_TO 3 "10 April 2016" "libcurl 7.49.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the 
URL's host and port
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_TO,
 +                          struct curl_slist *connect_to);
 +.fi
 +.SH DESCRIPTION
 +Pass a pointer to a linked list of strings with "connect to" information to
 +use for establishing network connections with this handle. The linked list
 +should be a fully valid list of \fBstruct curl_slist\fP structs properly
 +filled in. Use \fIcurl_slist_append(3)\fP to create the list and
 +\fIcurl_slist_free_all(3)\fP to clean up an entire list.
 +
 +Each single string should be written using the format
 +HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT where HOST is the host of the
 +request, PORT is the port of the request, CONNECT-TO-HOST is the host name to
 +connect to, and CONNECT-TO-PORT is the port to connect to.
 +
 +The first string that matches the request's host and port is used.
 +
 +Dotted numerical IP addresses are supported for HOST and CONNECT-TO-HOST.
 +A numerical IPv6 address must be written within [brackets].
 +
 +Any of the four values may be empty. When the HOST or PORT is empty, the host
 +or port will always match (the request's host or port is ignored).
 +When CONNECT-TO-HOST or CONNECT-TO-PORT is empty, the "connect to" feature
 +will be disabled for the host or port, and the request's host or port will be
 +used to establish the network connection.
 +
 +This option is suitable to direct the request at a specific server, e.g. at a
 +specific cluster node in a cluster of servers.
 +
 +The "connect to" host and port are only used to establish the network
 +connection. They do NOT affect the host and port that are used for TLS/SSL
 +(e.g. SNI, certificate verification) or for the application protocols.
 +
 +In contrast to \fICURLOPT_RESOLVE(3)\fP, the option
 +\fICURLOPT_CONNECT_TO(3)\fP does not pre-populate the DNS cache and therefore
 +it does not affect future transfers of other easy handles that have been added
 +to the same multi handle.
 +
 +The "connect to" host and port are ignored if they are equal to the host and
 +the port in the request URL, because connecting to the host and the port in
 +the request URL is the default behavior.
 +
 +If an HTTP proxy is used for a request having a special "connect to" host or
 +port, and the "connect to" host or port differs from the request's host and
 +port, the HTTP proxy is automatically switched to tunnel mode for this
 +specific request. This is necessary because it is not possible to connect to a
 +specific host or port in normal (non-tunnel) mode.
 +
 +When this option is passed to \fIcurl_easy_setopt(3)\fP, libcurl will not copy
 +the entire list so you \fBmust\fP keep it around until you no longer use this
 +\fIhandle\fP for a transfer before you call \fIcurl_slist_free_all(3)\fP on
 +the list.
 +
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl;
 +struct curl_slist *connect_to = NULL;
 +connect_to = curl_slist_append(NULL, "example.com::server1.example.com:");
 +
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_CONNECT_TO, connect_to);
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  curl_easy_perform(curl);
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +
 +curl_slist_free_all(connect_to);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.49.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_URL "(3), " CURLOPT_RESOLVE "(3), " CURLOPT_FOLLOWLOCATION "(3), 
" CURLOPT_HTTPPROXYTUNNEL  "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONV_FROM_NETWORK_FUNCTION.3
index 783395aec,000000000..dd1f32ad7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONV_FROM_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CONV_FROM_NETWORK_FUNCTION.3
@@@ -1,101 -1,0 +1,101 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONV_FROM_NETWORK_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host 
encoding
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode conv_callback(char *ptr, size_t length);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
 +                          conv_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +Applies to non-ASCII platforms. \fIcurl_version_info(3)\fP will return the
 +CURL_VERSION_CONV feature bit set if this option is provided.
 +
 +The data to be converted is in a buffer pointed to by the \fIptr\fP parameter.
 +The amount of data to convert is indicated by the \fIlength\fP parameter.  The
 +converted data overlays the input data in the buffer pointed to by the ptr
 +parameter. \fICURLE_OK\fP must be returned upon successful conversion.  A
 +CURLcode return value defined by curl.h, such as \fICURLE_CONV_FAILED\fP,
 +should be returned if an error was encountered.
 +
 +\fBCURLOPT_CONV_FROM_NETWORK_FUNCTION\fP converts to host encoding from the
 +network encoding.  It is used when commands or ASCII data are received over
 +the network.
 +
 +If you set a callback pointer to NULL, or don't set it at all, the built-in
 +libcurl iconv functions will be used.  If HAVE_ICONV was not defined when
 +libcurl was built, and no callback has been established, conversion will
 +return the CURLE_CONV_REQD error code.
 +
 +If HAVE_ICONV is defined, CURL_ICONV_CODESET_OF_HOST must also be defined.
 +For example:
 +
 + \&#define CURL_ICONV_CODESET_OF_HOST "IBM-1047"
 +
 +The iconv code in libcurl will default the network and UTF8 codeset names as
 +follows:
 +
 + \&#define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1"
 +
 + \&#define CURL_ICONV_CODESET_FOR_UTF8   "UTF-8"
 +
 +You will need to override these definitions if they are different on your
 +system.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP, SMTP, IMAP, POP3
 +.SH EXAMPLE
 +.nf
 +static CURLcode my_conv_from_ascii_to_ebcdic(char *buffer, size_t length)
 +{
 +  char *tempptrin, *tempptrout;
 +  size_t bytes = length;
 +  int rc;
 +  tempptrin = tempptrout = buffer;
 +  rc = platform_a2e(&tempptrin, &bytes, &tempptrout, &bytes);
 +  if(rc == PLATFORM_CONV_OK) {
 +    return CURLE_OK;
 +  }
 +  else {
 +    return CURLE_CONV_FAILED;
 +  }
 +}
 +
 +/* use platform-specific functions for codeset conversions */
 +curl_easy_setopt(curl, CURLOPT_CONV_FROM_NETWORK_FUNCTION,
 +                 my_conv_from_ascii_to_ebcdic);
 +.fi
 +.SH AVAILABILITY
 +Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was 
built.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONV_TO_NETWORK_FUNCTION "(3), " CURLOPT_CONV_FROM_UTF8_FUNCTION 
"(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONV_FROM_UTF8_FUNCTION.3
index 42c0a976a,000000000..64ce846b5
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONV_FROM_UTF8_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CONV_FROM_UTF8_FUNCTION.3
@@@ -1,99 -1,0 +1,99 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONV_FROM_UTF8_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode conv_callback(char *ptr, size_t length);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_FROM_UTF8_FUNCTION,
 +                          conv_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +Applies to non-ASCII platforms. \fIcurl_version_info(3)\fP will return the
 +CURL_VERSION_CONV feature bit set if this option is provided.
 +
 +The data to be converted is in a buffer pointed to by the \fIptr\fP parameter.
 +The amount of data to convert is indicated by the \fIlength\fP parameter.  The
 +converted data overlays the input data in the buffer pointed to by the ptr
 +parameter. \fICURLE_OK\fP must be returned upon successful conversion.  A
 +CURLcode return value defined by curl.h, such as \fICURLE_CONV_FAILED\fP,
 +should be returned if an error was encountered.
 +
 +\fBCURLOPT_CONV_FROM_UTF8_FUNCTION\fP converts to host encoding from UTF8
 +encoding. It is required only for SSL processing.
 +
 +If you set a callback pointer to NULL, or don't set it at all, the built-in
 +libcurl iconv functions will be used.  If HAVE_ICONV was not defined when
 +libcurl was built, and no callback has been established, conversion will
 +return the CURLE_CONV_REQD error code.
 +
 +If HAVE_ICONV is defined, CURL_ICONV_CODESET_OF_HOST must also be defined.
 +For example:
 +
 + \&#define CURL_ICONV_CODESET_OF_HOST "IBM-1047"
 +
 +The iconv code in libcurl will default the network and UTF8 codeset names as
 +follows:
 +
 + \&#define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1"
 +
 + \&#define CURL_ICONV_CODESET_FOR_UTF8   "UTF-8"
 +
 +You will need to override these definitions if they are different on your
 +system.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +TLS-based protocols.
 +.SH EXAMPLE
 +.nf
 +static CURLcode my_conv_from_utf8_to_ebcdic(char *buffer, size_t length)
 +{
 +  char *tempptrin, *tempptrout;
 +  size_t bytes = length;
 +  int rc;
 +  tempptrin = tempptrout = buffer;
 +  rc = platform_u2e(&tempptrin, &bytes, &tempptrout, &bytes);
 +  if(rc == PLATFORM_CONV_OK) {
 +    return CURLE_OK;
 +  }
 +  else {
 +    return CURLE_CONV_FAILED;
 +  }
 +}
 +
 +curl_easy_setopt(curl, CURLOPT_CONV_FROM_UTF8_FUNCTION,
 +                 my_conv_from_utf8_to_ebcdic);
 +.fi
 +.SH AVAILABILITY
 +Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was 
built.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONV_TO_NETWORK_FUNCTION "(3), " 
CURLOPT_CONV_FROM_NETWORK_FUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CONV_TO_NETWORK_FUNCTION.3
index b2a0629b4,000000000..5e81d8f41
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CONV_TO_NETWORK_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_CONV_TO_NETWORK_FUNCTION.3
@@@ -1,100 -1,0 +1,100 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CONV_TO_NETWORK_FUNCTION 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode conv_callback(char *ptr, size_t length);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONV_TO_NETWORK_FUNCTION,
 +                          conv_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +Applies to non-ASCII platforms. \fIcurl_version_info(3)\fP will return the
 +CURL_VERSION_CONV feature bit set if this option is provided.
 +
 +The data to be converted is in a buffer pointed to by the \fIptr\fP parameter.
 +The amount of data to convert is indicated by the \fIlength\fP parameter.  The
 +converted data overlays the input data in the buffer pointed to by the ptr
 +parameter. \fICURLE_OK\fP must be returned upon successful conversion.  A
 +CURLcode return value defined by curl.h, such as \fICURLE_CONV_FAILED\fP,
 +should be returned if an error was encountered.
 +
 +\fBCURLOPT_CONV_TO_NETWORK_FUNCTION\fP converts from host encoding to the
 +network encoding.  It is used when commands or ASCII data are sent over the
 +network.
 +
 +If you set a callback pointer to NULL, or don't set it at all, the built-in
 +libcurl iconv functions will be used.  If HAVE_ICONV was not defined when
 +libcurl was built, and no callback has been established, conversion will
 +return the CURLE_CONV_REQD error code.
 +
 +If HAVE_ICONV is defined, CURL_ICONV_CODESET_OF_HOST must also be defined.
 +For example:
 +
 + \&#define CURL_ICONV_CODESET_OF_HOST "IBM-1047"
 +
 +The iconv code in libcurl will default the network and UTF8 codeset names as
 +follows:
 +
 + \&#define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1"
 +
 + \&#define CURL_ICONV_CODESET_FOR_UTF8   "UTF-8"
 +
 +You will need to override these definitions if they are different on your
 +system.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP, SMTP, IMAP, POP3
 +.SH EXAMPLE
 +.nf
 +static CURLcode my_conv_from_ebcdic_to_ascii(char *buffer, size_t length)
 +{
 +  char *tempptrin, *tempptrout;
 +  size_t bytes = length;
 +  int rc;
 +  tempptrin = tempptrout = buffer;
 +  rc = platform_e2a(&tempptrin, &bytes, &tempptrout, &bytes);
 +  if(rc == PLATFORM_CONV_OK) {
 +    return CURLE_OK;
 +  }
 +  else {
 +    return CURLE_CONV_FAILED;
 +  }
 +}
 +
 +curl_easy_setopt(curl, CURLOPT_CONV_TO_NETWORK_FUNCTION,
 +                 my_conv_from_ebcdic_to_ascii);
 +.fi
 +.SH AVAILABILITY
 +Available only if \fBCURL_DOES_CONVERSIONS\fP was defined when libcurl was 
built.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONV_FROM_NETWORK_FUNCTION "(3), " 
CURLOPT_CONV_FROM_UTF8_FUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COOKIE.3
index 3a2a1967e,000000000..49937b430
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COOKIE.3
+++ b/docs/libcurl/opts/GNURLOPT_COOKIE.3
@@@ -1,83 -1,0 +1,83 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIE 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_COOKIE \- set contents of HTTP Cookie header
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIE, char *cookie);
 +.SH DESCRIPTION
 +Pass a pointer to a null-terminated string as parameter. It will be used to
 +set a cookie in the HTTP request. The format of the string should be
 +NAME=CONTENTS, where NAME is the cookie name and CONTENTS is what the cookie
 +should contain.
 +
 +If you need to set multiple cookies, set them all using a single option
 +concatenated like this: "name1=content1; name2=content2;" etc.
 +
 +This option sets the cookie header explicitly in the outgoing request(s). If
 +multiple requests are done due to authentication, followed redirections or
 +similar, they will all get this cookie passed on.
 +
 +The cookies set by this option are separate from the internal cookie storage
 +held by the cookie engine and will not be modified by it. If you enable the
 +cookie engine and either you've imported a cookie of the same name (e.g. 
'foo')
 +or the server has set one, it will have no effect on the cookies you set here.
 +A request to the server will send both the 'foo' held by the cookie engine and
 +the 'foo' held by this option. To set a cookie that is instead held by the
 +cookie engine and can be modified by the server use
 +\fICURLOPT_COOKIELIST(3)\fP.
 +
 +Using this option multiple times will only make the latest string override the
 +previous ones.
 +
 +This option will not enable the cookie engine. Use \fICURLOPT_COOKIEFILE(3)\fP
 +or \fICURLOPT_COOKIEJAR(3)\fP to enable parsing and sending cookies
 +automatically.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL, no cookies
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  curl_easy_setopt(curl, CURLOPT_COOKIE, "tool=curl; fun=yes;");
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +If HTTP is enabled
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is enabled, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_COOKIEFILE "(3), " CURLOPT_COOKIEJAR "(3), "  CURLOPT_COOKIELIST 
"(3), "
 +.BR CURLOPT_HTTPHEADER "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COOKIEFILE.3
index 50298e550,000000000..369037b91
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COOKIEFILE.3
+++ b/docs/libcurl/opts/GNURLOPT_COOKIEFILE.3
@@@ -1,87 -1,0 +1,87 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIEFILE 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_COOKIEFILE \- file name to read cookies from
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEFILE, char *filename);
 +.SH DESCRIPTION
 +Pass a pointer to a null-terminated string as parameter. It should point to
 +the file name of your file holding cookie data to read. The cookie data can be
 +in either the old Netscape / Mozilla cookie data format or just regular HTTP
 +headers (Set-Cookie style) dumped to a file.
 +
 +It also enables the cookie engine, making libcurl parse and send cookies on
 +subsequent requests with this handle.
 +
 +Given an empty or non-existing file or by passing the empty string ("") to
 +this option, you can enable the cookie engine without reading any initial
 +cookies. If you tell libcurl the file name is "-" (just a single minus sign),
 +libcurl will instead read from stdin.
 +
 +This option only \fBreads\fP cookies. To make libcurl write cookies to file,
 +see \fICURLOPT_COOKIEJAR(3)\fP.
 +
 +Exercise caution if you are using this option and multiple transfers may 
occur.
 +If you use the Set-Cookie format and don't specify a domain then the cookie is
 +sent for any domain (even after redirects are followed) and cannot be modified
 +by a server-set cookie. If a server sets a cookie of the same name then both
 +will be sent on a future transfer to that server, likely not what you 
intended.
 +To address these issues set a domain in Set-Cookie (doing that will include
 +sub-domains) or use the Netscape format.
 +
 +If you use this option multiple times, you just add more files to read.
 +Subsequent files will add more cookies.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +
 +  /* get cookies from an existing file */
 +  curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookies.txt");
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH "Cookie file format"
 +The cookie file format and general cookie concepts in curl are described in
 +the HTTP-COOKIES.md file, also hosted online here:
- https://curl.haxx.se/docs/http-cookies.html
++https://curl.se/docs/http-cookies.html
 +.SH AVAILABILITY
 +As long as HTTP is supported
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_COOKIE "(3), " CURLOPT_COOKIEJAR "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COOKIEJAR.3
index 0a6f60ba0,000000000..849a09630
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COOKIEJAR.3
+++ b/docs/libcurl/opts/GNURLOPT_COOKIEJAR.3
@@@ -1,78 -1,0 +1,78 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIEJAR 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_COOKIEJAR \- file name to store cookies to
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEJAR, char *filename);
 +.SH DESCRIPTION
 +Pass a \fIfilename\fP as char *, null-terminated. This will make libcurl write
 +all internally known cookies to the specified file when
 +\fIcurl_easy_cleanup(3)\fP is called. If no cookies are known, no file will be
 +created. Specify "-" as filename to instead have the cookies written to
 +stdout. Using this option also enables cookies for this session, so if you for
 +example follow a location it will make matching cookies get sent accordingly.
 +
 +Note that libcurl doesn't read any cookies from the cookie jar. If you want to
 +read cookies from a file, use \fICURLOPT_COOKIEFILE(3)\fP.
 +
 +If the cookie jar file can't be created or written to (when the
 +\fIcurl_easy_cleanup(3)\fP is called), libcurl will not and cannot report an
 +error for this. Using \fICURLOPT_VERBOSE(3)\fP or
 +\fICURLOPT_DEBUGFUNCTION(3)\fP will get a warning to display, but that is the
 +only visible feedback you get about this possibly lethal situation.
 +
 +Since 7.43.0 cookies that were imported in the Set-Cookie format without a
 +domain name are not exported by this option.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +
 +  /* export cookies to this file when closing the handle */
 +  curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "/tmp/cookies.txt");
 +
 +  ret = curl_easy_perform(curl);
 +
 +  /* close the handle, write the cookies! */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Along with HTTP
 +.SH RETURN VALUE
 +Returns CURLE_OK if HTTP is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_COOKIEFILE "(3), " CURLOPT_COOKIE "(3), "
 +.BR CURLOPT_COOKIELIST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COOKIELIST.3
index fe0c19380,000000000..45902351e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/GNURLOPT_COOKIELIST.3
@@@ -1,124 -1,0 +1,124 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIELIST 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIELIST,
 +                          char *cookie);
 +.SH DESCRIPTION
 +Pass a char * to a \fIcookie\fP string.
 +
 +Such a cookie can be either a single line in Netscape / Mozilla format or just
 +regular HTTP-style header (Set-Cookie: ...) format. This will also enable the
 +cookie engine. This adds that single cookie to the internal cookie store.
 +
 +Exercise caution if you are using this option and multiple transfers may 
occur.
 +If you use the Set-Cookie format and don't specify a domain then the cookie is
 +sent for any domain (even after redirects are followed) and cannot be modified
 +by a server-set cookie. If a server sets a cookie of the same name (or maybe
 +you've imported one) then both will be sent on a future transfer to that
 +server, likely not what you intended. To address these issues set a domain in
 +Set-Cookie (doing that will include sub-domains) or use the Netscape format as
 +shown in EXAMPLE.
 +
 +Additionally, there are commands available that perform actions if you pass in
 +these exact strings:
 +.IP ALL
 +erases all cookies held in memory
 +
 +.IP SESS
 +erases all session cookies held in memory
 +
 +.IP FLUSH
 +writes all known cookies to the file specified by \fICURLOPT_COOKIEJAR(3)\fP
 +
 +.IP RELOAD
 +loads all cookies from the files specified by \fICURLOPT_COOKIEFILE(3)\fP
 +
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +/* This example shows an inline import of a cookie in Netscape format.
 +You can set the cookie as HttpOnly to prevent XSS attacks by prepending
 +#HttpOnly_ to the hostname. That may be useful if the cookie will later
 +be imported by a browser.
 +*/
 +
 +#define SEP  "\\t"  /* Tab separates the fields */
 +
 +char *my_cookie =
 +  "example.com"    /* Hostname */
 +  SEP "FALSE"      /* Include subdomains */
 +  SEP "/"          /* Path */
 +  SEP "FALSE"      /* Secure */
 +  SEP "0"          /* Expiry in epoch time format. 0 == Session */
 +  SEP "foo"        /* Name */
 +  SEP "bar";       /* Value */
 +
 +/* my_cookie is imported immediately via CURLOPT_COOKIELIST.
 +*/
 +curl_easy_setopt(curl, CURLOPT_COOKIELIST, my_cookie);
 +
 +/* The list of cookies in cookies.txt will not be imported until right
 +before a transfer is performed. Cookies in the list that have the same
 +hostname, path and name as in my_cookie are skipped. That is because
 +libcurl has already imported my_cookie and it's considered a "live"
 +cookie. A live cookie won't be replaced by one read from a file.
 +*/
 +curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt");  /* import */
 +
 +/* Cookies are exported after curl_easy_cleanup is called. The server
 +may have added, deleted or modified cookies by then. The cookies that
 +were skipped on import are not exported.
 +*/
 +curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt");  /* export */
 +
 +curl_easy_perform(curl);  /* cookies imported from cookies.txt */
 +
 +curl_easy_cleanup(curl);  /* cookies exported to cookies.txt */
 +.fi
 +.SH "Cookie file format"
 +The cookie file format and general cookie concepts in curl are described in
 +the HTTP-COOKIES.md file, also hosted online here:
- https://curl.haxx.se/docs/http-cookies.html
++https://curl.se/docs/http-cookies.html
 +.SH AVAILABILITY
 +ALL was added in 7.14.1
 +
 +SESS was added in 7.15.4
 +
 +FLUSH was added in 7.17.1
 +
 +RELOAD was added in 7.39.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_COOKIEFILE "(3), " CURLOPT_COOKIEJAR "(3), " CURLOPT_COOKIE "(3), 
"
 +.BR CURLINFO_COOKIELIST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COOKIESESSION.3
index 5911c949d,000000000..8725f3691
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COOKIESESSION.3
+++ b/docs/libcurl/opts/GNURLOPT_COOKIESESSION.3
@@@ -1,66 -1,0 +1,66 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COOKIESESSION 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_COOKIESESSION \- start a new cookie session
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIESESSION, long init);
 +.SH DESCRIPTION
 +Pass a long set to 1 to mark this as a new cookie "session". It will force
 +libcurl to ignore all cookies it is about to load that are "session cookies"
 +from the previous session. By default, libcurl always stores and loads all
 +cookies, independent if they are session cookies or not. Session cookies are
 +cookies without expiry date and they are meant to be alive and existing for
 +this "session" only.
 +
 +A "session" is usually defined in browser land for as long as you have your
 +browser up, more or less.
 +.SH DEFAULT
 +0
 +.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_URL, "https://example.com/foo.bin";);
 +
 +  /* new "session", don't load session cookies */
 +  curl_easy_setopt(curl, CURLOPT_COOKIESESSION, 1L);
 +
 +  /* get the (non session) cookies from this file */
 +  curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookies.txt");
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Along with HTTP
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_COOKIEFILE "(3), " CURLOPT_COOKIE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_COPYPOSTFIELDS.3
index 9a6940663,000000000..057354b44
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_COPYPOSTFIELDS.3
+++ b/docs/libcurl/opts/GNURLOPT_COPYPOSTFIELDS.3
@@@ -1,70 -1,0 +1,70 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_COPYPOSTFIELDS 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COPYPOSTFIELDS, char *data);
 +.SH DESCRIPTION
 +Pass a char * as parameter, which should be the full \fIdata\fP to post in a
 +HTTP POST operation. It behaves as the \fICURLOPT_POSTFIELDS(3)\fP option, but
 +the original data is instead copied by the library, allowing the application
 +to overwrite the original data after setting this option.
 +
 +Because data are copied, care must be taken when using this option in
 +conjunction with \fICURLOPT_POSTFIELDSIZE(3)\fP or
 +\fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP: If the size has not been set prior to
 +\fICURLOPT_COPYPOSTFIELDS(3)\fP, the data is assumed to be a null-terminated
 +string; else the stored size informs the library about the byte count to
 +copy. In any case, the size must not be changed after
 +\fICURLOPT_COPYPOSTFIELDS(3)\fP, unless another \fICURLOPT_POSTFIELDS(3)\fP or
 +\fICURLOPT_COPYPOSTFIELDS(3)\fP option is issued.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  char local_buffer[1024]="data to send";
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* size of the data to copy from the buffer and send in the request */
 +  curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 12L);
 +
 +  /* send data from the local stack */
 +  curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, local_buffer);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.17.1
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_POSTFIELDS "(3), " CURLOPT_POSTFIELDSIZE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CRLF.3
index 461a295df,000000000..1b030b941
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CRLF.3
+++ b/docs/libcurl/opts/GNURLOPT_CRLF.3
@@@ -1,56 -1,0 +1,56 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CRLF 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CRLF \- enable/disable CRLF conversion
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLF, long conv);
 +.SH DESCRIPTION
 +Pass a long. If the value is set to 1 (one), libcurl converts Unix newlines to
 +CRLF newlines on transfers. Disable this option again by setting the value to
 +0 (zero).
 +
 +This is a legacy option of questionable use.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode ret;
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/";);
 +  curl_easy_setopt(curl, CURLOPT_CRLF, 1L);
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +SMTP since 7.40.0, other protocols since they were introduced
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_CONV_FROM_NETWORK_FUNCTION "(3), " 
CURLOPT_CONV_TO_NETWORK_FUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CRLFILE.3
index bffc55b8a,000000000..49a56c53e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CRLFILE.3
+++ b/docs/libcurl/opts/GNURLOPT_CRLFILE.3
@@@ -1,75 -1,0 +1,75 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CRLFILE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CRLFILE \- specify a Certificate Revocation List file
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLFILE, char *file);
 +.SH DESCRIPTION
 +Pass a char * to a null-terminated string naming a \fIfile\fP with the
 +concatenation of CRL (in PEM format) to use in the certificate validation that
 +occurs during the SSL exchange.
 +
 +When curl is built to use NSS or GnuTLS, there is no way to influence the use
 +of CRL passed to help in the verification process.
 +
 +When libcurl is built with OpenSSL support, X509_V_FLAG_CRL_CHECK and
 +X509_V_FLAG_CRL_CHECK_ALL are both set, requiring CRL check against all the
 +elements of the certificate chain if a CRL file is passed. Also note that
 +\fICURLOPT_CRLFILE(3)\fP will imply \fBCURLSSLOPT_NO_PARTIALCHAIN\fP (see
 +\fICURLOPT_SSL_OPTIONS(3)\fP) since curl 7.71.0 due to an OpenSSL bug.
 +
 +This option makes sense only when used in combination with the
 +\fICURLOPT_SSL_VERIFYPEER(3)\fP option.
 +
 +A specific error code (\fICURLE_SSL_CRL_BADFILE\fP) is defined with the
 +option. It is returned when the SSL exchange fails because the CRL file cannot
 +be loaded.  A failure in certificate verification due to a revocation
 +information found in the CRL does not trigger this specific error.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All TLS-based protocols
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  curl_easy_setopt(curl, CURLOPT_CRLFILE, "/etc/certs/crl.pem");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.19.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_SSL_VERIFYPEER "(3), " CURLOPT_SSL_VERIFYHOST "(3), "
 +.BR CURLOPT_PROXY_CRLFILE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CURLU.3
index 4721ed6ac,000000000..f673d003d
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CURLU.3
+++ b/docs/libcurl/opts/GNURLOPT_CURLU.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CURLU 3 "28 Oct 2018" "libcurl 7.63.0" "curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_CURLU \- set URL with CURLU *
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CURLU, void *pointer);
 +.SH DESCRIPTION
 +Pass in a pointer to the \fIURL\fP to work with. The parameter should be a
 +CURLU *. Setting \fICURLOPT_CURLU(3)\fP will explicitly override
 +\fICURLOPT_URL(3)\fP.
 +
 +\fICURLOPT_URL(3)\fP or \fICURLOPT_CURLU(3)\fP \fBmust\fP be set before a
 +transfer is started.
 +
 +libcurl will use this handle and its contents read-only and will not change
 +its contents. An application can very well update the contents of the URL
 +handle after a transfer is done and if the same handle is then used in a
 +subsequent request the updated contents will then be used.
 +.SH DEFAULT
 +The default value of this parameter is NULL.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *handle = curl_easy_init();
 +CURLU *urlp = curl_url();
 +int res = 0;
 +if(curl) {
 +
-   res = curl_url_set(urlp, CURLUPART_URL, "http://example.com";, 0);
++  res = curl_url_set(urlp, CURLUPART_URL, "https://example.com";, 0);
 +
 +  curl_easy_setopt(handle, CURLOPT_CURLU, urlp);
 +
 +  ret = curl_easy_perform(handle);
 +
 +  curl_url_cleanup(urlp);
 +  curl_easy_cleanup(handle);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.63.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_URL "(3), "
 +.BR curl_url "(3), " curl_url_get "(3), " curl_url_set "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_CUSTOMREQUEST.3
index 1bd5020c5,000000000..133ae9286
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_CUSTOMREQUEST.3
+++ b/docs/libcurl/opts/GNURLOPT_CUSTOMREQUEST.3
@@@ -1,111 -1,0 +1,111 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_CUSTOMREQUEST 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_CUSTOMREQUEST \- custom string for request
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request);
 +.SH DESCRIPTION
 +Pass a pointer to a null-terminated string as parameter.
 +
 +When you change the request method by setting \fICURLOPT_CUSTOMREQUEST(3)\fP
 +to something, you don't actually change how libcurl behaves or acts in regards
 +to the particular request method, it will only change the actual string sent
 +in the request.
 +
 +Restore to the internal default by setting this to NULL.
 +
 +This option can be used to specify the request:
 +.IP HTTP
 +Instead of GET or HEAD when performing HTTP based requests. This is
 +particularly useful, for example, for performing an HTTP DELETE request.
 +
 +For example:
 +
 +When you tell libcurl to do a HEAD request, but then specify a GET though a
 +custom request libcurl will still act as if it sent a HEAD. To switch to a
 +proper HEAD use \fICURLOPT_NOBODY(3)\fP, to switch to a proper POST use
 +\fICURLOPT_POST(3)\fP or \fICURLOPT_POSTFIELDS(3)\fP and to switch to a proper
 +GET use \fICURLOPT_HTTPGET(3)\fP.
 +
 +Many people have wrongly used this option to replace the entire request with
 +their own, including multiple headers and POST contents. While that might work
 +in many cases, it will cause libcurl to send invalid requests and it could
 +possibly confuse the remote server badly. Use \fICURLOPT_POST(3)\fP and
 +\fICURLOPT_POSTFIELDS(3)\fP to set POST data. Use \fICURLOPT_HTTPHEADER(3)\fP
 +to replace or extend the set of headers sent by libcurl. Use
 +\fICURLOPT_HTTP_VERSION(3)\fP to change HTTP version.
 +
 +.IP FTP
 +Instead of LIST and NLST when performing FTP directory listings.
 +.IP IMAP
 +Instead of LIST when issuing IMAP based requests.
 +.IP POP3
 +Instead of LIST and RETR when issuing POP3 based requests.
 +
 +For example:
 +
 +When you tell libcurl to use a custom request it will behave like a LIST or
 +RETR command was sent where it expects data to be returned by the server. As
 +such \fICURLOPT_NOBODY(3)\fP should be used when specifying commands such as
 +DELE and NOOP for example.
 +.IP SMTP
 +Instead of a HELP or VRFY when issuing SMTP based requests.
 +
 +For example:
 +
 +Normally a multiline response is returned which can be used, in conjunction
 +with \fICURLOPT_MAIL_RCPT(3)\fP, to specify an EXPN request. If the
 +\fICURLOPT_NOBODY(3)\fP option is specified then the request can be used to
 +issue NOOP and RSET commands.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +HTTP, FTP, IMAP, POP3 and SMTP
 +.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_URL, "https://example.com/foo.bin";);
 +
 +  /* DELETE the given path */
 +  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +IMAP is supported since 7.30.0, POP3 since 7.26.0 and SMTP since 7.34.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_HTTPHEADER "(3), " CURLOPT_NOBODY "(3), "
 +.BR CURLOPT_REQUEST_TARGET "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DEBUGDATA.3
index 1435ee039,000000000..a4746f51c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DEBUGDATA.3
+++ b/docs/libcurl/opts/GNURLOPT_DEBUGDATA.3
@@@ -1,45 -1,0 +1,45 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DEBUGDATA 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DEBUGDATA \- custom pointer for debug callback
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGDATA, void *pointer);
 +.SH DESCRIPTION
 +Pass a \fIpointer\fP to whatever you want passed in to your
 +\fICURLOPT_DEBUGFUNCTION(3)\fP in the last void * argument. This pointer is
 +not used by libcurl, it is only passed to the callback.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
- https://curl.haxx.se/libcurl/c/debug.html
++https://curl.se/libcurl/c/debug.html
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DEBUGFUNCTION.3
index c470cdac1,000000000..c20a9ed8b
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DEBUGFUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_DEBUGFUNCTION.3
@@@ -1,187 -1,0 +1,187 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DEBUGFUNCTION 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DEBUGFUNCTION \- debug callback
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +typedef enum {
 +  CURLINFO_TEXT = 0,
 +  CURLINFO_HEADER_IN,    /* 1 */
 +  CURLINFO_HEADER_OUT,   /* 2 */
 +  CURLINFO_DATA_IN,      /* 3 */
 +  CURLINFO_DATA_OUT,     /* 4 */
 +  CURLINFO_SSL_DATA_IN,  /* 5 */
 +  CURLINFO_SSL_DATA_OUT, /* 6 */
 +  CURLINFO_END
 +} curl_infotype;
 +
 +int debug_callback(CURL *handle,
 +                   curl_infotype type,
 +                   char *data,
 +                   size_t size,
 +                   void *userptr);
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGFUNCTION,
 +                          debug_callback);
 +.SH DESCRIPTION
 +Pass a pointer to your callback function, which should match the prototype
 +shown above.
 +
 +\fICURLOPT_DEBUGFUNCTION(3)\fP replaces the standard debug function used when
 +\fICURLOPT_VERBOSE(3)\fP is in effect. This callback receives debug
 +information, as specified in the \fItype\fP argument. This function must
 +return 0. The \fIdata\fP pointed to by the char * passed to this function WILL
 +NOT be null-terminated, but will be exactly of the \fIsize\fP as told by the
 +\fIsize\fP argument.
 +
 +The \fIuserptr\fP argument is the pointer set with \fICURLOPT_DEBUGDATA(3)\fP.
 +
 +Available curl_infotype values:
 +.IP CURLINFO_TEXT
 +The data is informational text.
 +.IP CURLINFO_HEADER_IN
 +The data is header (or header-like) data received from the peer.
 +.IP CURLINFO_HEADER_OUT
 +The data is header (or header-like) data sent to the peer.
 +.IP CURLINFO_DATA_IN
 +The data is protocol data received from the peer.
 +.IP CURLINFO_DATA_OUT
 +The data is protocol data sent to the peer.
 +.IP CURLINFO_SSL_DATA_OUT
 +The data is SSL/TLS (binary) data sent to the peer.
 +.IP CURLINFO_SSL_DATA_IN
 +The data is SSL/TLS (binary) data received from the peer.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +static
 +void dump(const char *text,
 +          FILE *stream, unsigned char *ptr, size_t size)
 +{
 +  size_t i;
 +  size_t c;
 +  unsigned int width=0x10;
 +
 +  fprintf(stream, "%s, %10.10ld bytes (0x%8.8lx)\\n",
 +          text, (long)size, (long)size);
 +
 +  for(i=0; i<size; i+= width) {
 +    fprintf(stream, "%4.4lx: ", (long)i);
 +
 +    /* show hex to the left */
 +    for(c = 0; c < width; c++) {
 +      if(i+c < size)
 +        fprintf(stream, "%02x ", ptr[i+c]);
 +      else
 +        fputs("   ", stream);
 +    }
 +
 +    /* show data on the right */
 +    for(c = 0; (c < width) && (i+c < size); c++) {
 +      char x = (ptr[i+c] >= 0x20 && ptr[i+c] < 0x80) ? ptr[i+c] : '.';
 +      fputc(x, stream);
 +    }
 +
 +    fputc('\\n', stream); /* newline */
 +  }
 +}
 +
 +static
 +int my_trace(CURL *handle, curl_infotype type,
 +             char *data, size_t size,
 +             void *userp)
 +{
 +  const char *text;
 +  (void)handle; /* prevent compiler warning */
 +  (void)userp;
 +
 +  switch (type) {
 +  case CURLINFO_TEXT:
 +    fprintf(stderr, "== Info: %s", data);
 +  default: /* in case a new one is introduced to shock us */
 +    return 0;
 +
 +  case CURLINFO_HEADER_OUT:
 +    text = "=> Send header";
 +    break;
 +  case CURLINFO_DATA_OUT:
 +    text = "=> Send data";
 +    break;
 +  case CURLINFO_SSL_DATA_OUT:
 +    text = "=> Send SSL data";
 +    break;
 +  case CURLINFO_HEADER_IN:
 +    text = "<= Recv header";
 +    break;
 +  case CURLINFO_DATA_IN:
 +    text = "<= Recv data";
 +    break;
 +  case CURLINFO_SSL_DATA_IN:
 +    text = "<= Recv SSL data";
 +    break;
 +  }
 +
 +  dump(text, stderr, (unsigned char *)data, size);
 +  return 0;
 +}
 +
 +int main(void)
 +{
 +  CURL *curl;
 +  CURLcode res;
 +
 +  curl = curl_easy_init();
 +  if(curl) {
 +    curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, my_trace);
 +
 +    /* the DEBUGFUNCTION has no effect until we enable VERBOSE */
 +    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
 +
 +    /* example.com is redirected, so we tell libcurl to follow redirection */
 +    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 +
-     curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/";);
++    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +    res = curl_easy_perform(curl);
 +    /* Check for errors */
 +    if(res != CURLE_OK)
 +      fprintf(stderr, "curl_easy_perform() failed: %s\\n",
 +              curl_easy_strerror(res));
 +
 +    /* always cleanup */
 +    curl_easy_cleanup(curl);
 +  }
 +  return 0;
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_VERBOSE "(3), " CURLOPT_DEBUGDATA "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DEFAULT_PROTOCOL.3
index 92f4fc253,000000000..760b180bf
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DEFAULT_PROTOCOL.3
+++ b/docs/libcurl/opts/GNURLOPT_DEFAULT_PROTOCOL.3
@@@ -1,82 -1,0 +1,82 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DEFAULT_PROTOCOL 3 "18 Aug 2015" "libcurl 7.45.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
 +scheme name
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEFAULT_PROTOCOL, char
 +*protocol);
 +.SH DESCRIPTION
 +This option tells libcurl to use \fIprotocol\fP if the URL is missing a scheme
 +name.
 +
 +Use one of these protocol (scheme) names:
 +
 +dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3,
 +pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
 +
 +An unknown or unsupported protocol causes error
 +\fICURLE_UNSUPPORTED_PROTOCOL\fP when libcurl parses a schemeless URL. Parsing
 +happens when \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP is
 +called. The protocols supported by libcurl will vary depending on how it was
 +built. Use \fIcurl_version_info(3)\fP if you need a list of protocol names
 +supported by the build of libcurl that you are using.
 +
 +This option does not change the default proxy protocol (http).
 +
 +Without this option libcurl would make a guess based on the host, see
 +\fICURLOPT_URL(3)\fP for details.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL (make a guess based on the host)
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  /* set a URL without a scheme */
 +  curl_easy_setopt(curl, CURLOPT_URL, "example.com");
 +
 +  /* set the default protocol (scheme) for schemeless URLs */
 +  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
 +
 +  /* Perform the request */
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.45.0
 +.SH RETURN VALUE
 +CURLE_OK if the option is supported.
 +
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +
 +CURLE_UNKNOWN_OPTION if the option is not supported.
 +.SH "SEE ALSO"
 +.BR CURLOPT_URL "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DIRLISTONLY.3
index 8ecb04fe2,000000000..81722df09
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DIRLISTONLY.3
+++ b/docs/libcurl/opts/GNURLOPT_DIRLISTONLY.3
@@@ -1,73 -1,0 +1,73 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DIRLISTONLY 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DIRLISTONLY, long listonly);
 +.SH DESCRIPTION
 +For FTP and SFTP based URLs a parameter set to 1 tells the library to list the
 +names of files in a directory, rather than performing a full directory listing
 +that would normally include file sizes, dates etc.
 +
 +For POP3 a parameter of 1 tells the library to list the email message or
 +messages on the POP3 server. This can be used to change the default behaviour
 +of libcurl, when combined with a URL that contains a message ID, to perform a
 +"scan listing" which can then be used to determine the size of an email.
 +
 +Note: For FTP this causes a NLST command to be sent to the FTP server.  Beware
 +that some FTP servers list only files in their response to NLST; they might 
not
 +include subdirectories and symbolic links.
 +
 +Setting this option to 1 also implies a directory listing even if the URL
 +doesn't end with a slash, which otherwise is necessary.
 +
 +Do NOT use this option if you also use \fICURLOPT_WILDCARDMATCH(3)\fP as it
 +will effectively break that feature then.
 +.SH DEFAULT
 +0, disabled
 +.SH PROTOCOLS
 +FTP, SFTP and POP3
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/dir/";);
 +
 +  /* list only */
 +  curl_easy_setopt(curl, CURLOPT_DIRLISTONLY, 1L);
 +
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option was known as CURLOPT_FTPLISTONLY up to 7.16.4. POP3 is supported
 +since 7.21.5.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_CUSTOMREQUEST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DISALLOW_USERNAME_IN_URL.3
index a70e95d1a,000000000..46e1ffba4
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DISALLOW_USERNAME_IN_URL.3
+++ b/docs/libcurl/opts/GNURLOPT_DISALLOW_USERNAME_IN_URL.3
@@@ -1,56 -1,0 +1,56 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DISALLOW_USERNAME_IN_URL 3 "30 May 2018" "libcurl 7.61.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DISALLOW_USERNAME_IN_URL, 
long disallow);
 +.SH DESCRIPTION
 +A long parameter set to 1 tells the library to not allow URLs that include a
 +username.
 +.SH DEFAULT
 +0 (disabled) - user names are allowed by default.
 +.SH PROTOCOLS
 +Several
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_DISALLOW_USERNAME_IN_URL, 1L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in libcurl 7.61.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +
 +curl_easy_perform() will return CURLE_LOGIN_DENIED if this option is enabled
 +and a URL containing a username is specified.
 +.SH "SEE ALSO"
 +.BR libcurl-security "(3), ", CURLOPT_PROTOCOLS "(3)"
diff --cc docs/libcurl/opts/GNURLOPT_DNS_CACHE_TIMEOUT.3
index a05134089,000000000..9f41a67dd
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_CACHE_TIMEOUT.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_CACHE_TIMEOUT.3
@@@ -1,73 -1,0 +1,73 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_CACHE_TIMEOUT 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_CACHE_TIMEOUT, long age);
 +.SH DESCRIPTION
 +Pass a long, this sets the timeout in seconds. Name resolves will be kept in
 +memory and used for this number of seconds. Set to zero to completely disable
 +caching, or set to -1 to make the cached entries remain forever. By default,
 +libcurl caches this info for 60 seconds.
 +
 +The name resolve functions of various libc implementations don't re-read name
 +server information unless explicitly told so (for example, by calling
 +\fIres_init(3)\fP). This may cause libcurl to keep using the older server even
 +if DHCP has updated the server info, and this may look like a DNS cache issue
 +to the casual libcurl-app user.
 +
 +Note that DNS entries have a "TTL" property but libcurl doesn't use that. This
 +DNS cache timeout is entirely speculative that a name will resolve to the same
 +address for a certain small amount of time into the future.
 +.SH DEFAULT
 +60
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +
 +  /* only reuse addresses for a very short time */
 +  curl_easy_setopt(curl, CURLOPT_DNS_CACHE_TIMEOUT, 2L);
 +
 +  ret = curl_easy_perform(curl);
 +
 +  /* in this second request, the cache will not be used if more than
 +     two seconds have passed since the previous name resolve */
 +  ret = curl_easy_perform(curl);
 +
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_USE_GLOBAL_CACHE "(3), " CURLOPT_DNS_SERVERS "(3), "
 +.BR CURLOPT_RESOLVE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_INTERFACE.3
index 9d3426326,000000000..5ab359014
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_INTERFACE.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_INTERFACE.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_INTERFACE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname);
 +.SH DESCRIPTION
 +Pass a char * as parameter. Set the name of the network interface that the DNS
 +resolver should bind to. This must be an interface name (not an address). Set
 +this option to NULL to use the default setting (don't bind to a specific
 +interface).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +.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_URL, "https://example.com/foo.bin";);
 +  curl_easy_setopt(curl, CURLOPT_DNS_INTERFACE, "eth0");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.33.0. This option also requires that libcurl was built with a
 +resolver backend that supports this operation. The c-ares backend is the only
 +such one.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
 +or CURLE_NOT_BUILT_IN if support was disabled at compile-time.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_SERVERS "(3), " CURLOPT_DNS_LOCAL_IP4 "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP4.3
index df1578f9b,000000000..def010fee
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP4.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP4.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_LOCAL_IP4 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP4, char *address);
 +.SH DESCRIPTION
 +Set the local IPv4 \fIaddress\fP that the resolver should bind to. The
 +argument should be of type char * and contain a single numerical IPv4 address
 +as a string.  Set this option to NULL to use the default setting (don't bind
 +to a specific IP address).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +  curl_easy_setopt(curl, CURLOPT_DNS_LOCAL_IP4, "192.168.0.14");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option requires that libcurl was built with a resolver backend that
 +supports this operation. The c-ares backend is the only such one.
 +
 +Added in 7.33.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
 +CURLE_NOT_BUILT_IN if support was disabled at compile-time, or
 +CURLE_BAD_FUNCTION_ARGUMENT when given a bad address.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_INTERFACE "(3), " CURLOPT_DNS_LOCAL_IP6 "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP6.3
index 3e11d2a68,000000000..6bf9d6590
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP6.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_LOCAL_IP6.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_LOCAL_IP6 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP6, char *address);
 +.SH DESCRIPTION
 +Set the local IPv6 \fIaddress\fP that the resolver should bind to. The
 +argument should be of type char * and contain a single IPv6 address as a
 +string.  Set this option to NULL to use the default setting (don't bind to a
 +specific IP address).
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +  curl_easy_setopt(curl, CURLOPT_DNS_LOCAL_IP6, "fe80::a9ff:fe46:b619");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option requires that libcurl was built with a resolver backend that
 +supports this operation. The c-ares backend is the only such one.
 +
 +Added in 7.33.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
 +CURLE_NOT_BUILT_IN if support was disabled at compile-time, or
 +CURLE_BAD_FUNCTION_ARGUMENT when given a bad address.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_INTERFACE "(3), " CURLOPT_DNS_LOCAL_IP4 "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_SERVERS.3
index 51cc3e7b3,000000000..4c21b40fd
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_SERVERS.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_SERVERS.3
@@@ -1,67 -1,0 +1,67 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_SERVERS 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DNS_SERVERS \- set preferred DNS servers
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SERVERS, char *servers);
 +.SH DESCRIPTION
 +Pass a char * that is the list of DNS servers to be used instead of the system
 +default.  The format of the dns servers option is:
 +
 +host[:port][,host[:port]]...
 +
 +For example:
 +
 +192.168.1.100,192.168.1.101,3.4.5.6
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL - use system default
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin";);
 +  curl_easy_setopt(curl, CURLOPT_DNS_SERVERS, 
"192.168.1.100:53,192.168.1.101");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +This option requires that libcurl was built with a resolver backend that
 +supports this operation. The c-ares backend is the only such one.
 +
 +Added in 7.24.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not,
 +CURLE_NOT_BUILT_IN if support was disabled at compile-time,
 +CURLE_BAD_FUNCTION_ARGUMENT when given an invalid server list, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_LOCAL_IP4 "(3), " CURLOPT_DNS_CACHE_TIMEOUT "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_SHUFFLE_ADDRESSES.3
index c8528fe2a,000000000..f729ed397
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_SHUFFLE_ADDRESSES.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_SHUFFLE_ADDRESSES.3
@@@ -1,69 -1,0 +1,69 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_SHUFFLE_ADDRESSES 3 "3 March 2018" "libcurl 7.60.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns 
more than one
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SHUFFLE_ADDRESSES, long 
onoff);
 +.fi
 +.SH DESCRIPTION
 +When a name is resolved and more than one IP address is returned, shuffle the
 +order of all returned addresses so that they will be used in a random order.
 +This is similar to the ordering behavior of gethostbyname which is no longer
 +used on most platforms.
 +
 +Addresses will not be reshuffled if a name resolution is completed using the
 +DNS cache. \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP can be used together with this
 +option to reduce DNS cache timeout or disable caching entirely if frequent
 +reshuffling is needed.
 +
 +Since the addresses returned will be reordered randomly, their order will not
 +be in accordance with RFC 3484 or any other deterministic order that may be
 +generated by the system's name resolution implementation. This may have
 +performance impacts and may cause IPv4 to be used before IPv6 or vice versa.
 +.SH DEFAULT
 +0 (disabled)
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_DNS_SHUFFLE_ADDRESSES, 1L);
 +
 +  curl_easy_perform(curl);
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.60.0
 +.SH RETURN VALUE
 +CURLE_OK or an error such as CURLE_UNKNOWN_OPTION.
 +.SH "SEE ALSO"
 +.BR CURLOPT_DNS_CACHE_TIMEOUT "(3), " CURLOPT_IPRESOLVE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DNS_USE_GLOBAL_CACHE.3
index 6b81d42cd,000000000..25ce68d8e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DNS_USE_GLOBAL_CACHE.3
+++ b/docs/libcurl/opts/GNURLOPT_DNS_USE_GLOBAL_CACHE.3
@@@ -1,62 -1,0 +1,62 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DNS_USE_GLOBAL_CACHE 3 "17 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_USE_GLOBAL_CACHE,
 +                          long enable);
 +.SH DESCRIPTION
- Has no function since 7.62.0. Do note use!
++Has no function since 7.62.0. Do not use!
 +
 +Pass a long. If the \fIenable\fP value is 1, it tells curl to use a global DNS
 +cache that will survive between easy handle creations and deletions. This is
 +not thread-safe and this will use a global variable.
 +
 +\fBWARNING:\fP this option is considered obsolete. Stop using it. Switch over
 +to using the share interface instead! See \fICURLOPT_SHARE(3)\fP and
 +\fIcurl_share_init(3)\fP.
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  CURLcode ret;
 +  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/";);
 +  /* switch off the use of a global, thread unsafe, cache */
 +  curl_easy_setopt(curl, CURLOPT_DNS_USE_GLOBAL_CACHE, 0L);
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Deprecated since 7.62.0. Has no function.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_SHARE "(3), " CURLOPT_DNS_CACHE_TIMEOUT "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_DOH_URL.3
index 2af19959c,000000000..ffbddad1c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_DOH_URL.3
+++ b/docs/libcurl/opts/GNURLOPT_DOH_URL.3
@@@ -1,71 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_DOH_URL 3 "18 Jun 2018" "libcurl 7.62.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DOH_URL, char *URL);
 +.SH DESCRIPTION
 +Pass in a pointer to a \fIURL\fP for the DOH server to use for name
 +resolving. The parameter should be a char * to a null-terminated string which
 +must be URL-encoded in the following format: "https://host:port/path";. It MUST
 +specify a HTTPS URL.
 +
 +libcurl doesn't validate the syntax or use this variable until the transfer is
 +issued. Even if you set a crazy value here, \fIcurl_easy_setopt(3)\fP will
 +still return \fICURLE_OK\fP.
 +
 +curl sends POST requests to the given DNS-over-HTTPS URL.
 +
 +To find the DOH server itself, which might be specified using a name, libcurl
 +will use the default name lookup function. You can bootstrap that by providing
 +the address for the DOH server with \fICURLOPT_RESOLVE(3)\fP.
 +
 +Disable DOH use again by setting this option to NULL.
 +.SH DEFAULT
 +NULL - there is no default DOH URL. If this option isn't set, libcurl will use
 +the default name resolver.
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_DOH_URL, "https://dns.example.com";);
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.62.0
 +.SH RETURN VALUE
 +Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was insufficient
 +heap space.
 +
 +Note that \fIcurl_easy_setopt(3)\fP won't actually parse the given string so
 +given a bad DOH URL, curl will not detect a problem until it tries to resolve
 +a name with it.
 +.SH "SEE ALSO"
 +.BR CURLOPT_VERBOSE "(3), " CURLOPT_RESOLVE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_EGDSOCKET.3
index 466091c5c,000000000..d5cbf870e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_EGDSOCKET.3
+++ b/docs/libcurl/opts/GNURLOPT_EGDSOCKET.3
@@@ -1,56 -1,0 +1,56 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_EGDSOCKET 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_EGDSOCKET \- set EGD socket path
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EGDSOCKET, char *path);
 +.SH DESCRIPTION
 +Pass a char * to the null-terminated path name to the Entropy Gathering Daemon
 +socket. It will be used to seed the random engine for SSL.
 +
 +The application does not have to keep the string around after setting this
 +option.
 +.SH DEFAULT
 +NULL
 +.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/";);
 +  curl_easy_setopt(curl, CURLOPT_EGDSOCKET, "/var/egd.socket");
 +  ret = curl_easy_perform(curl);
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +If built TLS enabled. Only the OpenSSL and GnuTLS backends will use this.
 +.SH RETURN VALUE
 +Returns CURLE_OK if TLS is supported, CURLE_UNKNOWN_OPTION if not, or
 +CURLE_OUT_OF_MEMORY if there was insufficient heap space.
 +.SH "SEE ALSO"
 +.BR CURLOPT_RANDOM_FILE "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_ERRORBUFFER.3
index caf21ba21,000000000..b8a7523f7
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_ERRORBUFFER.3
+++ b/docs/libcurl/opts/GNURLOPT_ERRORBUFFER.3
@@@ -1,92 -1,0 +1,92 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_ERRORBUFFER 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_ERRORBUFFER \- set error buffer for error messages
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ERRORBUFFER, char *buf);
 +.SH DESCRIPTION
 +Pass a char * to a buffer that libcurl \fBmay\fP store human readable error
 +messages on failures or problems. This may be more helpful than just the
 +return code from \fIcurl_easy_perform(3)\fP and related functions. The buffer
 +\fBmust be at least CURL_ERROR_SIZE bytes big\fP.
 +
 +You must keep the associated buffer available until libcurl no longer needs
 +it. Failing to do so will cause very odd behavior or even crashes. libcurl
 +will need it until you call \fIcurl_easy_cleanup(3)\fP or you set the same
 +option again to use a different pointer.
 +
 +Do not rely on the contents of the buffer unless an error code was returned.
 +Since 7.60.0 libcurl will initialize the contents of the error buffer to an
 +empty string before performing the transfer. For earlier versions if an error
 +code was returned but there was no error detail then the buffer is untouched.
 +
 +Consider \fICURLOPT_VERBOSE(3)\fP and \fICURLOPT_DEBUGFUNCTION(3)\fP to better
 +debug and trace why errors happen.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  CURLcode res;
 +  char errbuf[CURL_ERROR_SIZE];
 +
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* provide a buffer to store errors in */
 +  curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
 +
 +  /* set the error buffer as empty before performing a request */
 +  errbuf[0] = 0;
 +
 +  /* perform the request */
 +  res = curl_easy_perform(curl);
 +
 +  /* if the request did not complete correctly, show the error
 +  information. if no detailed error information was written to errbuf
 +  show the more generic information from curl_easy_strerror instead.
 +  */
 +  if(res != CURLE_OK) {
 +    size_t len = strlen(errbuf);
 +    fprintf(stderr, "\\nlibcurl: (%d) ", res);
 +    if(len)
 +      fprintf(stderr, "%s%s", errbuf,
 +              ((errbuf[len - 1] != '\\n') ? "\\n" : ""));
 +    else
 +      fprintf(stderr, "%s\\n", curl_easy_strerror(res));
 +  }
 +}
 +.fi
 +.SH AVAILABILITY
 +Always
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR CURLOPT_DEBUGFUNCTION "(3), " CURLOPT_VERBOSE "(3), "
 +.BR curl_easy_strerror "(3), " curl_multi_strerror "(3), "
 +.BR curl_share_strerror "(3) "
diff --cc docs/libcurl/opts/GNURLOPT_EXPECT_100_TIMEOUT_MS.3
index ce0dbcf64,000000000..596f44c92
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_EXPECT_100_TIMEOUT_MS.3
+++ b/docs/libcurl/opts/GNURLOPT_EXPECT_100_TIMEOUT_MS.3
@@@ -1,59 -1,0 +1,59 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_EXPECT_100_TIMEOUT_MS 3 "19 Jun 2014" "libcurl 7.37.0" 
"curl_easy_setopt options"
 +.SH NAME
 +CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EXPECT_100_TIMEOUT_MS,
 +                          long milliseconds);
 +.SH DESCRIPTION
 +Pass a long to tell libcurl the number of \fImilliseconds\fP to wait for a
 +server response with the HTTP status 100 (Continue), 417 (Expectation Failed)
 +or similar after sending an HTTP request containing an Expect: 100-continue
 +header. If this times out before a response is received, the request body is
 +sent anyway.
 +.SH DEFAULT
 +1000 milliseconds
 +.SH PROTOCOLS
 +HTTP
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
-   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
++  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com";);
 +
 +  /* wait 3 seconds for 100-continue */
 +  curl_easy_setopt(curl, CURLOPT_EXPECT_100_TIMEOUT_MS, 3000L);
 +
 +  curl_easy_perform(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.36.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_POST "(3), " CURLOPT_HTTPPOST "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_FAILONERROR.3
index 2e9662c0e,000000000..241f1f37f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_FAILONERROR.3
+++ b/docs/libcurl/opts/GNURLOPT_FAILONERROR.3
@@@ -1,67 -1,0 +1,67 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FAILONERROR 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_FAILONERROR \- request failure on HTTP response >= 400
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FAILONERROR, long fail);
 +.SH DESCRIPTION
 +A long parameter set to 1 tells the library to fail the request if the HTTP
 +code returned is equal to or larger than 400. The default action would be to
 +return the page normally, ignoring that code.
 +
 +This method is not fail-safe and there are occasions where non-successful
 +response codes will slip through, especially when authentication is involved
 +(response codes 401 and 407).
 +
 +You might get some amounts of headers transferred before this situation is
 +detected, like when a "100-continue" is received as a response to a POST/PUT
 +and a 401 or 407 is received immediately afterwards.
 +
 +When this option is used and an error is detected, it will cause the
 +connection to get closed and \fICURLE_HTTP_RETURNED_ERROR\fP is returned.
 +.SH DEFAULT
 +0, do not fail on error
 +.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_FAILONERROR, 1L);
 +  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 enabled, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_HTTP200ALIASES "(3), " CURLOPT_KEEP_SENDING_ON_ERROR "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_FILETIME.3
index fa74147fc,000000000..bdb5a1b7f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_FILETIME.3
+++ b/docs/libcurl/opts/GNURLOPT_FILETIME.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FILETIME 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_FILETIME \- get the modification time of the remote resource
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FILETIME, long gettime);
 +.SH DESCRIPTION
 +Pass a long. If it is 1, libcurl will attempt to get the modification time of
 +the remote document in this operation. This requires that the remote server
 +sends the time or replies to a time querying command. The
 +\fIcurl_easy_getinfo(3)\fP function with the \fICURLINFO_FILETIME(3)\fP
 +argument can be used after a transfer to extract the received time (if any).
 +.SH DEFAULT
 +0
 +.SH PROTOCOLS
 +HTTP, FTP, SFTP, FILE
 +.SH EXAMPLE
 +.nf
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, url);
 +  /* Ask for filetime */
 +  curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
 +  res = curl_easy_perform(curl);
 +  if(CURLE_OK == res) {
 +    res = curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime);
 +    if((CURLE_OK == res) && (filetime >= 0)) {
 +      time_t file_time = (time_t)filetime;
 +      printf("filetime %s: %s", filename, ctime(&file_time));
 +    }
 +  }
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
 +Always, for SFTP since 7.49.0
 +.SH RETURN VALUE
 +Returns CURLE_OK
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_FNMATCH_DATA.3
index 37c5db51d,000000000..eb1b8bf48
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_FNMATCH_DATA.3
+++ b/docs/libcurl/opts/GNURLOPT_FNMATCH_DATA.3
@@@ -1,64 -1,0 +1,64 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * you should have received as part of this distribution. The terms
- .\" * are also available at https://curl.haxx.se/docs/copyright.html.
++.\" * are also available at https://curl.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_FNMATCH_DATA 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_FNMATCH_DATA \- custom pointer to fnmatch callback
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FNMATCH_DATA,
 +                          void *pointer);
 +.SH DESCRIPTION
 +Pass a pointer that will be untouched by libcurl and passed as the ptr
 +argument to the \fICURLOPT_FNMATCH_FUNCTION(3)\fP.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +FTP
 +.SH EXAMPLE
 +.nf
 +static int my_fnmatch(void *clientp,
 +                      const char *pattern, const char *string)
 +{
 +  struct local_stuff *data = (struct local_stuff *)clientp;
 +  if(string_match(pattern, string))
 +    return CURL_FNMATCHFUNC_MATCH;
 +  else
 +    return CURL_FNMATCHFUNC_NOMATCH;
 +}
 +
 +{
 +  struct local_stuff local_data;
 +  curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com/file*";);
 +  curl_easy_setopt(curl, CURLOPT_WILDCARDMATCH, 1L);
 +  curl_easy_setopt(curl, CURLOPT_FNMATCH_FUNCTION, my_fnmatch);
 +  curl_easy_setopt(curl, CURLOPT_FNMATCH_DATA, &local_data);
 +}
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_FNMATCH_FUNCTION "(3), " CURLOPT_WILDCARDMATCH "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_FNMATCH_FUNCTION.3
index 1783f8c3f,000000000..99f3d0a00
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_FNMATCH_FUNCTION.3
+++ b/docs/libcurl/opts/GNURLOPT_FNMATCH_FUNCTION.3
@@@ -1,74 -1,0 +1,74 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
 +.\" *
 +.\" * This software is licensed as described in the file COPYING, which
 +.\" * yo