Commit Graph

5554 Commits

Author SHA1 Message Date
Daniel Stenberg
485c9ba50a
docs: the websockets symbols are added in 7.86.0
Nothing else

Closes #9459
2022-09-09 17:11:58 +02:00
Daniel Stenberg
c616259bd1
EXPERIMENTAL.md: add WebSockets 2022-09-09 15:11:15 +02:00
Daniel Stenberg
eebfa3279d
curl_ws_meta: initial implementation 2022-09-09 15:11:14 +02:00
Daniel Stenberg
07cb887ed3
curl_ws_meta.3: added docs 2022-09-09 15:11:14 +02:00
Daniel Stenberg
664249d095
ws: initial websockets support
Closes #8995
2022-09-09 15:11:14 +02:00
Daniel Stenberg
6698e6ca24
docs/WebSockets.md: docs 2022-09-09 15:11:13 +02:00
Daniel Stenberg
f703cf971c
urlapi: leaner with fewer allocs
Slightly faster with more robust code. Uses fewer and smaller mallocs.

- remove two fields from the URL handle struct
- reduce copies and allocs
- use dynbuf buffers more instead of custom malloc + copies
- uses dynbuf to build the host name in reduces serial alloc+free within
  the same function.
- move dedotdotify into urlapi.c and make it static, not strdup the input
  and optimize it by checking for . and / before using strncmp
- remove a few strlen() calls
- add Curl_dyn_setlen() that can "trim" an existing dynbuf

Closes #9408
2022-09-07 10:21:45 +02:00
Daniel Stenberg
fa26f15b19
CURLOPT_PROXY_SSLCERT_BLOB.3: this is for HTTPS proxies
The 'protocols' listed were previously wrong.

Reported-by: ProceduralMan on github
Fixes #9434
Closes #9435
2022-09-06 09:55:23 +02:00
Daniel Stenberg
5162ba0562
curl_easy_pause.3: unpausing is as fast as possible
Reported-by: ssdbest on github
Fixes #9410
Closes #9430
2022-09-05 17:34:49 +02:00
Daniel Stenberg
ad9383bd7d
CURLOPT_DNS_INTERFACE.3: mention it works for almost all protocols
Except file.

Reported-by: ProceduralMan on github
Fixes #9427
Closes #9428
2022-09-05 08:36:06 +02:00
Daniel Stenberg
472f1cbe7e
NPN: remove support for and use of
Next Protocol Negotiation is a TLS extension that was created and used
for agreeing to use the SPDY protocol (the precursor to HTTP/2) for
HTTPS. In the early days of HTTP/2, before the spec was finalized and
shipped, the protocol could be enabled using this extension with some
servers.

curl supports the NPN extension with some TLS backends since then, with
a command line option `--npn` and in libcurl with
`CURLOPT_SSL_ENABLE_NPN`.

HTTP/2 proper is made to use the ALPN (Application-Layer Protocol
Negotiation) extension and the NPN extension has no purposes
anymore. The HTTP/2 spec was published in May 2015.

Today, use of NPN in the wild should be extremely rare and most likely
totally extinct. Chrome removed NPN support in Chrome 51, shipped in
June 2016. Removed in Firefox 53, April 2017.

Closes #9307
2022-09-05 07:39:02 +02:00
Samuel Henrique
7e6140cb93
docs: remove mentions of deprecated '--without-openssl' config parameter
Closes #9415
2022-09-02 14:46:05 +02:00
Samuel Henrique
464ff5a610
manpages: Fix spelling of "allows to" -> "allows one to"
References:
 https://salsa.debian.org/lintian/lintian/-/blob/master/tags/t/typo-in-manual-page.tag
 https://english.stackexchange.com/questions/60271/grammatical-complements-for-allow/60285#60285

Closes #9419
2022-09-02 14:45:01 +02:00
Samuel Henrique
5c095a4435
CURLOPT_WILDCARDMATCH.3: Fix backslash escaping under single quotes
Lintian (on Debian) has been complaining about this for a while but
 I didn't bother initially as the groff parser that we use is not
 affected by this.

 But I have now noticed that the online manpage is affected by it:
 https://curl.se/libcurl/c/CURLOPT_WILDCARDMATCH.html

 (I'm using double quotes for quoting-only down below)

 The section that should be parsed as "'\'" ends up being parsed as
 "'´".

 This is due to roffit not parsing "'\\'" correctly, which is fine
 as the "correct" way of writing "'\'" is "'\e'" instead.

 Note that this fix is not enough to fix the online manpage at
 curl's website, as roffit seems to parse it wrongly either way.

 My intent is to at least fix the manpage so that roffit can
 be changed to parse "'\e'" correctly (although I suggest making
 roffit parse both ways correctly, since that's what groff does).

 More details at:
 https://bugs.debian.org/966803
 930b18e4b2/tags/a/acute-accent-in-manual-page.tag

Closes #9418
2022-09-02 14:43:32 +02:00
Viktor Szakats
c9061f242b
misc: spelling fixes
Found using codespell 2.2.1.

Also delete the redundant protocol designator from an archive.org URL.

Reviewed-by: Daniel Stenberg
Closes #9403
2022-08-31 14:31:01 +00:00
Daniel Stenberg
9b2f89b9ba
THANKS: add contributors from the 7.85.0 release 2022-08-31 08:09:21 +02:00
Jacob Tolar
74af81ca03
cert.d: clarify that escape character works for file paths
Closes #9349
2022-08-27 23:25:32 +02:00
rcombs
07f80f968d
multi: use a pipe instead of a socketpair on apple platforms
Sockets may be shut down by the kernel when the app is moved to the
background, but pipes are not.

Removed from KNOWN_BUGS

Fixes #6132
Closes #9368
2022-08-25 17:43:08 +02:00
Daniel Stenberg
cf6e9ce80b
CURLOPT_BUFFERSIZE.3: add upload buffersize to see also
Closes #9354
2022-08-23 14:54:55 +02:00
Fabian Fischer
75ca89856c
HTTP3.md: add missing autoreconf command for building with wolfssl
Closes #9353
2022-08-23 14:17:20 +02:00
Daniel Stenberg
fdbcd39488
docs/cmdline-opts: remove \& escapes from all .d files
gen.pl escapes them itself now
2022-08-23 13:43:10 +02:00
Daniel Stenberg
567693196a
docs/cmdline-opts/gen.pl: encode leading single and double quotes
As "(aq" and "(dq" to prevent them from implying a meaning in the nroff
output. This removes the need for using \& escapes in the .d files'
description parts.

Closes #9352
2022-08-23 13:43:10 +02:00
Daniel Stenberg
5357686fdf
examples/curlx.c: remove
This example is a bit convoluted to use as an example, combined with the
special license for it makes it unsuitable.

Closes #9330
2022-08-18 00:00:12 +02:00
Daniel Stenberg
2ef3a001f5
DEPRECATE.md: push the NSS deprecation date forward one year to 2023
URL: https://curl.se/mail/lib-2022-08/0016.html
2022-08-17 10:07:13 +02:00
Jay Satiro
ebe3fdb0e3 KNOWN_BUGS: Windows Unicode builds use homedir in current locale
Bug: https://github.com/curl/curl/pull/7252
Reported-by: dEajL3kA@users.noreply.github.com

Ref: https://github.com/curl/curl/pull/7281

Closes https://github.com/curl/curl/pull/9305
2022-08-16 11:30:47 -04:00
Daniel Stenberg
20d083572a
curl_multi_perform.3: minor language fix
Closes #9316
2022-08-15 10:00:40 +02:00
Viktor Szakats
5fd7cd7302
Makefile.m32: allow -nghttp3/-ngtcp2 without -ssl [ci skip]
Before this patch `-nghttp3`/`-ngtcp2` had an effect only when `-ssl`
was also enabled. `-ssl` meaning OpenSSL (and its forks). After
8a13be227e nghttp3/ngtcp2 can also be
used together with wolfSSL. This patch adds the ability to enable
`-nghttp3`/`-ngtcp2` independently from `-ssl` (OpenSSL), allowing to
use it with wolfSSL or other, future TLS backends.

Before this patch, it was fine to enable `-nghttp3`/`-ngtcp2`
unconditionally. After this patch, this is no longer the case, and now
it's the user's responsibility to enable `-nghttp3`/`-ngtcp2` only
together with a compatible TLS backend.

When using a TLS backend other than OpenSSL, the TLS-specific ngtcp2
library must be configured manually, e.g.:
  `export CURL_LDFLAG_EXTRAS=-lngtcp2_crypto_wolfssl`

(or via `NGTCP2_LIBS`)

Closes #9314
2022-08-15 02:49:59 +00:00
Stefan Eissing
8a13be227e
quic: add support via wolfSSL
- based on ngtcp2 PR https://github.com/ngtcp2/ngtcp2/pull/505
- configure adapted to build against ngtcp2 wolfssl crypto lib
- quic code added for creation of WOLFSSL* instances

Closes #9290
2022-08-15 00:48:55 +02:00
Daniel Stenberg
440fb67755
KNOWN_BUGS: FTPS directory listing hangs on Windows with Schannel
Closes #9161
2022-08-13 00:32:12 +02:00
Daniel Stenberg
5554e45405
KNOWN_BUGS: CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel
Closes #8741
2022-08-13 00:27:57 +02:00
Daniel Stenberg
46d1b95e69
KNOWN_BUGS: libssh blocking and infinite loop problem
Closes #8632
2022-08-13 00:25:31 +02:00
Emanuele Torre
2f0056680f
docs/cmdline-opts: fix example and categories for --form-escape
The example was missing a "--form" argument
I also replaced "--form" with "-F" to shorten the line a bit since it
was already very long.

And I also moved --form-escape from the "post" category to the "upload"
category (this is what I originally wanted to fix, before also noticing
the mistake in the example).

Closes #9298
2022-08-12 08:39:03 +02:00
Nick Banks
29b8e67f69
HTTP3.md: update to msh3 v0.4.0
Closes #9297
2022-08-11 23:40:14 +02:00
Jay Satiro
586cfc3c2c KNOWN_BUGS: long paths are not fully supported on Windows
Bug: https://github.com/curl/curl/issues/8361
Reported-by: Gisle Vanem

Closes https://github.com/curl/curl/pull/9288
2022-08-11 03:37:25 -04:00
Daniel Stenberg
09f1e58cfe
KNOWN_BUGS: Negotiate authentication against Hadoop HDFS
Closes #8264
2022-08-08 16:45:51 +02:00
Daniel Stenberg
ba2ccf368e
KNOWN_BUGS: cmake build is not thread-safe
The cmake build does not check for and verify presence of a working
Atomic type, which then makes curl_global_init() to not build
thread-safe on non-Windows platforms.

Closes https://github.com/curl/curl/issues/8973
Closes https://github.com/curl/curl/pull/8982
2022-08-08 16:00:17 +02:00
Daniel Stenberg
b6dd849fa3
CURLINFO_SPEED_UPLOAD/DOWNLOAD.3: fix examples
Reported-by: jvvprasad78 on github
Assisted-by: Jay Satiro
Fixes #9239
Closes #9241
2022-08-07 14:25:55 +02:00
Daniel Stenberg
ba670b318c
CURLOPT_CONNECT_ONLY.3: clarify multi API use
Reported-by: Maxim Ivanov
Fixes #9244
Closes #9262
2022-08-07 14:07:23 +02:00
Emil Engler
ce8031d369
docs: add dns category to --resolve
This commit adds the dns category to the --resolve command line option,
because it can be interpreted as both: a low-level connection option and
an option related to the resolving of a hostname.

It is also not common for dns options to belong to the connection
category and vice versa.  --ipv4 and --ipv6 are both good examples.

Closes #9229
2022-08-06 17:05:48 +02:00
Wyatt O'Day
8beff43559 schannel: Add TLS 1.3 support
- Support TLS 1.3 as the default max TLS version for Windows Server 2022
  and Windows 11.

- Support specifying TLS 1.3 ciphers via existing option
  CURLOPT_TLS13_CIPHERS (tool: --tls13-ciphers).

Closes https://github.com/curl/curl/pull/8419
2022-08-02 13:54:31 -04:00
Emil Engler
92179353e5 cmdline-opts/gen.pl: improve performance
On some systems, the gen.pl script takes nearly two minutes for the
generation of the main-page, which is a completely unacceptable time.

The slow performance has two causes:
1. Use of a regex locale operator
2. Useless invokations of loops

The commit addresses the first issue by replacing the "\W" wiht
[^a-zA-Z0-9_], which is, according to regex101.com, functionally
equivalent to the previous operation, except that it is obviously
limited to ASCII only, which is fine, as the curl project is
English-only anyway.

The second issue is being addressed by only running the loop if the line
contains a "--" in it. The loop may be completeley removed in the
future.

Co-authored-by: Emanuele Torre <torreemanuele6@gmail.com>

See #8299
Fixes #9230
Closes #9232
2022-08-02 17:10:03 +02:00
Daniel Stenberg
209ffd7d8e docs/cmdline: mark fail and fail-with-body as mutually exclusive
Reported-by: Andreas Sommer
Fixes #9221
Closes #9222
2022-08-02 17:08:21 +02:00
Marco Kamner
263409cf24
docs: remove him/her/he/she from documentation
Closes #9208
2022-07-27 13:52:53 +02:00
Daniel Stenberg
f7e14fee68
tool_getparam: make --doh-url "" switch it off
A possible future addition could be to parse the URL first too to verify
that it is valid before trying to use it.

Assisted-by: Jay Satiro
Closes #9207
2022-07-27 10:56:13 +02:00
rzrymiak
e28edb6678
BUGS.md: improve language
Closes #9205
2022-07-26 11:18:54 +02:00
Daniel Stenberg
a88dbe410f
curl_multi_timeout.3: clarify usage
Fixes #9155
Closes #9157
Reported-by: jvvprasad78 on github
2022-07-17 23:27:55 +02:00
Viktor Szakats
1d5b7b7009
Makefile.m32: add CURL_RC and CURL_STRIP variables [ci skip]
They allow to override the hardcoded values for the `windres` and `strip`
tools, complementing the existing set of `CURL_{CC,AR,RANLIB}` variables.

`CURL_RC` comes handy when using LLVM tools with `CROSSPREFIX=llvm-` and
`CURL_CC=clang` set on current latest debian:unstable or earlier, where
`llvm-windres` is missing, and a `CURL_RC=<triplet>-windres` fixes it.
Hopefully this will be fixed in the llvm package. FWIW `llvm-windres`
does exist in Homebrew llvm, MSYS2 llvm and llvm-mingw.

Reviewed-by: Daniel Stenberg
Closes #9132
2022-07-10 22:28:14 +00:00
Jay Satiro
eab25898b3 docs: explain curl_easy_escape/unescape curl handle is ignored
26101421 (precedes 7.82.0) removed character conversion support used by
very old legacy operating systems and since then the curl handle passed
to curl_easy_escape/unescape is always ignored.

Bug: https://github.com/curl/curl/discussions/9115
Reported-by: Ted Lyngmo

Closes https://github.com/curl/curl/pull/9121
2022-07-10 02:59:58 -04:00
Brad Forschinger
91824e2c4b
netrc.d: remove spurious quote
Closes #9111
2022-07-06 11:29:16 +02:00
Viktor Szakats
190caa9ce2
Makefile.m32: add NGTCP2_LIBS option [ci skip]
Makefile.m32's ngtcp2 has its two libs hardwired for OpenSSL.
Add `NGTCP2_LIBS` envvar to override them with a custom list,
making it possible to use BoringSSL, or any other backend.

Closes #9109
2022-07-06 09:22:42 +00:00