Commit Graph

31964 Commits

Author SHA1 Message Date
Daniel Stenberg
6afac4f992
libcurl-opts: mention pipelining less
libcurl has not supported HTTP pipelining since many years. Remove a few
(more) mentions of the feature.

Closes #13254
2024-04-01 14:41:52 +02:00
Daniel McCarney
5a50cb5a18
m4: reposition USE_RUSTLS="yes" for pkg-config
It's necessary to set this var to "yes" _after_ AC_DEFINE and AC_SUBST
in order for a later `test` to pass so that `check_for_ca_bundle=1` ends
up being set. This is in turn required for the default CA certificate
bundle to be set when building w/ rustls & pkg-config.

Reported-by: Matt Jolly
Fixes #13248
Closes #13251
2024-03-31 23:22:17 +02:00
Daniel Stenberg
5418812d34
maketgz: put docs/RELEASE-TOOL.md into the tarball
Generated with scripts/release-tools.sh

The script lists the exact Debian package names and version numbers for
the tools that are used to generate the tarball.

Closes #13239
2024-03-31 21:27:13 +02:00
Daniel Stenberg
afdd112916
cd2nroff/manage: use UTC when SOURCE_DATE_EPOCH is set
Make them independent of the TZ setting. Also set a date string like
YYYY-MM-DD to avoid a local month name in the date.

Reported-by: Carlos Henrique Lima Melara
Fixes #13242
Closes #13243
2024-03-31 21:25:44 +02:00
Daniel Stenberg
e7caf09c04
RELEASE-NOTES: synced 2024-03-31 16:35:08 +02:00
Daniel Stenberg
271896ab33
docs/MAIL-ETIQUETTE: convert to markdown
To render nicer. To get spellchecked.

Closes #13247
2024-03-31 15:32:27 +02:00
Daniel Stenberg
86d33001e4
reuse: add copyright + license info to individual docs/*.md files
Instead of use 'docs/*.md' in dep5. For clarity and avoiding a wide-
matching wildcard.

+ Remove mention of old files from .reuse/dep5
+ add info to .github/dependabot.yml
+ make scripts/copyright.pl warn on non-matching patterns

Closes #13245
2024-03-31 12:01:18 +02:00
Daniel Stenberg
315373334b
test470: warn about unicode quote character read from config file
Idea-by: Emanuele Torre
2024-03-31 12:00:03 +02:00
Daniel Stenberg
95af421b78
test469: verify warning when argument has unicode quote 2024-03-31 12:00:03 +02:00
Daniel Stenberg
94db8e5c27
tool_getparam: output warning for leading unicode quote character
... in the option argument.

Typically this is a mistake done when copying example command lines from
online documentation using the wrong quote character.

Presumably there are also other potential quote characters that might be
used, and this check is done without even knowing that unicode is used!

Reported-by: Sanjay Pujare
Fixes #13214
Closes #13215
2024-03-31 11:59:54 +02:00
Daniel Stenberg
aba8043075
tool: follow-up getenv fix
Remove a double free. Change the IPFS env use to a plain getenv() simply
because coverity gets confused.

Follow-up to 9126b141c9
Closes #13241
2024-03-31 11:04:00 +02:00
Daniel Stenberg
6a43d0d742
idn: make Curl_idnconvert_hostname() use Curl_idn_decode()
In the name of less code duplication

Closes #13236
2024-03-31 11:02:44 +02:00
Daniel Stenberg
e54a66aa6c
curl-confopts.m4: define CARES_NO_DEPRECATED when c-ares is used
Starting in 1.28.0 c-ares added deprecation warnings for some API calls
libcurl uses.

Closes #13240
2024-03-31 11:01:28 +02:00
Daniel Stenberg
3208360845
vquic: use CURL_FORMAT_CURL_OFF_T for 64 bit printf output
Reported-by: Keitagit-kun on github
Fixes #13224
Closes #13231
2024-03-31 10:59:55 +02:00
Daniel Stenberg
56935a7dad
openldap: create ldap URLs correctly for IPv6 addresses
Reported-by: Sergio Durigan Junior
Fixes #13228
Closes #13235
2024-03-30 22:50:26 +01:00
Daniel Stenberg
9126b141c9
curl: use curl_getenv instead of the curlx_ version
The curlx one was once introduced when we still considered dropping the
libcurl function at some point. To reduce confusion and to make it
easier to understand when curl_free() should be used, use the actual
libcurl function call directly instead.

Closes #13230
2024-03-30 22:45:47 +01:00
Evgeny Grin
4a98db3786
curl_sha512_256: do not use workaround for NetBSD when not needed
Assisted-by: riastradh on github
Assisted-by: Michael Kaufmann
Closes #13225
2024-03-30 22:44:22 +01:00
Matt Jolly
9c42098370
m4: fix rustls pkg-config codepath
The previous pkg-config code would successfully detect rustls but did
not set all appropriate variables and call the right macros to properly
configure cURL.

Reported-by: kpcyrd on github
Fixes #13200
Closes #13202
2024-03-30 22:42:05 +01:00
Daniel McCarney
5b1a88e2c0
deps: update librustls 0.12.0 -> 0.13.0
This commit updates the optional rustls-ffi librustls dependency from
0.12.0 to 0.13.0. This version is based on the latest available rustls
release (0.23.4).

The breaking API changes from 0.12.0 to 0.13.0 are in API surface unused
by curl, so this is an in-place update without any code changes.

The `RUSTLS.md` documentation is updated to reflect the new version in
use, and to clarify that `cbindgen` isn't required to build `librustls`
- it's only used by developers to update the vendored `rustls.h` header
file maintained upstream.

Closes #13238
2024-03-30 22:39:42 +01:00
Daniel Stenberg
a41cd15bec
RELEASE-NOTES: synced 2024-03-28 16:30:18 +01:00
Daniel Stenberg
5564751f27
tool_xattr: "guess" URL scheme if none is provided
... when figuring out the source URL to store.

Reported-by: Dagfinn Ilmari Mannsåker
Fixes #13205
Closes #13221
2024-03-28 16:28:23 +01:00
Daniel Stenberg
a15de6f785
tool_xattr: in debug builds, act normally if CURL_FAKE_XATTR is not set
Closes #13220
2024-03-28 16:26:15 +01:00
Stefan Eissing
b30d694a02
content_encoding: brotli and others, pass through 0-length writes
- curl's transfer handling may write 0-length chunks at the end of the
  download with an EOS flag. (HTTP/2 does this commonly)

- content encoders need to pass-through such a write and not count this
  as error in case they are finished decoding

Fixes #13209
Fixes #13212
Closes #13219
2024-03-28 16:21:20 +01:00
Tobias Stoeckmann
6f32048200
libssh2: set length to 0 if strdup failed
Internally, libssh2 dereferences the NULL pointer if length is non-zero.
The callback function cannot return the error condition, so at least
prevent subsequent crash.

Closes #13213
2024-03-28 11:21:44 +01:00
Daniel Stenberg
4ad9d29705
RELEASE-PROCEDURE: mention an initial working build
This is the step that was not done and caused the 8.7.0 mishap (it
lacked the correctly generated hugehelp file).

Remove the mention of the copyright script as this is verified by a CI
job these days: the REUSE one.

Closes #13216
2024-03-28 10:17:43 +01:00
Paul Howarth
c77bdf17f7
curl_sha512_255: fix detection of OpenSSL 1.1.1 or later
Use the same OPENSSL_VERSION_NUMBER comparison as in lib/vtls/openssl.c.

Closes #13208
2024-03-28 09:19:08 +01:00
Robert Moreton
d82869d7a5
cf-socket: remove references to l_ip, l_port
Fixes #13210
Closes #13211
2024-03-28 08:51:19 +01:00
Daniel Stenberg
c247827a8a
openssl: do not set SSL_MODE_RELEASE_BUFFERS
While it might save some memory, it causes OpenSSL to instead do a huge
amount of allocations.

Ref: #13136
Closes #13203
2024-03-28 08:48:51 +01:00
Daniel Stenberg
2efc111ea4
curl: make --help adapt to the terminal width
Instead of assuming and working with 80 colums, try figuring out what
width is actually used.

Ref: #13141

Closes #13171
2024-03-27 14:12:26 +01:00
Daniel Stenberg
97c417ae28
RELEASE-NOTES: synced
and bump to 8.7.2 for now
2024-03-27 12:47:56 +01:00
Daniel Stenberg
978790298c
configure: make --disable-docs imply --disable-manual
Because when the docs is not built, the necesary curl.txt file is not
present so then the manual cannot get built.

Reported-by: Harry Sintonen
Closes #13191
2024-03-27 12:43:46 +01:00
Chris Webb
4b42cda3df
cmdline-docs: fix make install with configure --disable-docs
make -C docs/cmdline-opts install depends on all-am, which in turn
depends on $(MANS), unconditionally defined to be $(man_MANS).

As with CLEANFILES, only add curl.1 to man_MANS when BUILD_DOCS is true
so we don't try to build curl.1 unnecessarily.

Closes #13198
2024-03-27 12:43:00 +01:00
Daniel Stenberg
de7b3e8921
RELEASE-PROCEDURE: remove old release dates, add new pending ones 2024-03-27 08:11:20 +01:00
Daniel Stenberg
72cf468d45
RELEASE-NOTES: synced
curl 8.7.0 release
2024-03-27 07:46:15 +01:00
Daniel Stenberg
b447a77502
THANKS: new contributors from the 8.7.0 release 2024-03-27 07:46:15 +01:00
Daniel Stenberg
1b2978403f
CURLOPT_POSTFIELDS.md: used for MQTT as well
Closes #13189
2024-03-26 14:09:06 +01:00
Daniel Stenberg
47da1f289c
http: remove stale comment about rewindbeforesend
... because that struct field exists no more.

Follow-up to 14bcea074a.

Closes #13187
2024-03-26 08:40:58 +01:00
Daniel Stenberg
57656835ec
DISTROS: add document with distro pointers
Lots of organizations distribute curl packages to end users. This is a
collection of pointers to where to learn more about curl on and with
each distro.

Assisted-by: Alan Coopersmith
Assisted-by: Andrew Kaster
Assisted-by: Andy Fiddaman
Assisted-by: Arjan van de Ven
Assisted-by: Brian Clemens
Assisted-by: chrysos349 on github
Assisted-by: Dan Fandrich
Assisted-by: Dan McDonald
Assisted-by: Gaelan Steele
Assisted-by: graywolf on github
Assisted-by: Jan Macku
Assisted-by: John Marshall
Assisted-by: Jonathan Perkin
Assisted-by: Kevin Daudt
Assisted-by: Marcus Müller
Assisted-by: Michał Górny
Assisted-by: Outvi V
Assisted-by: Ross Burton
Assisted-by: Sean Molenaar
Assisted-by: Till Wegmüller
Assisted-by: Viktor Szakats
Assisted-by: Winni Neessen

Closes #13178
2024-03-26 00:26:55 +01:00
Fabian Keil
0aaea582e0
wolfSSL: do not call the stub function wolfSSL_BIO_set_init()
Calling the function isn't necessary and causes the build
to fail when wolfSSL has been compiled with NO_WOLFSSL_STUB:

     Making all in opts
       CCLD     curl
     ld: error: undefined symbol: wolfSSL_BIO_set_init
     >>> referenced by wolfssl.c:235 (vtls/wolfssl.c:235)
     >>>               libcurl_la-wolfssl.o:(wolfssl_bio_cf_create) in archive ../lib/.libs/libcurl.a
     cc: error: linker command failed with exit code 1 (use -v to see invocation)
     *** Error code 1

Closes #13164
2024-03-25 13:29:46 +01:00
Daniel Stenberg
fe9f68fa61
cmdline-opts: shorter help texts
In an effort to increase the readability of the "--help all" output on
narrow (80 column) terminals.

Co-authored-by: Jay Satiro

Closes #13169
2024-03-25 13:05:24 +01:00
Matt Jolly
647e86a3ef
curl-rustls.m4: add pkg-config support to rustls detection
Based on the existing openssl pkg-config detection, this commit tries to
use pkg-config to find `rustls` then falls back to the current approach
if that fails.

We use the following logic:

- if no path is provided, just use pkg-config, if it's not there we have
  a problem!
- if a path is provided, try pkg-config
  + if pkg-config fails, try and find rustls directly

Closes #13179
2024-03-25 10:16:50 +01:00
Mohammadreza Hendiani
b564a5f5d5
TODO: update 13.11 with more information
Closes #13173
2024-03-25 10:09:06 +01:00
Daniel Stenberg
e3fe020089
docs/libcurl: generate PROTOCOLS from meta-data
Remove the PROTOCOLS section from the source files completely and
instead generate them based on the header data in the curldown files.

It also generates TLS backend information for options marked for TLS as
protocol.

Closes #13175
2024-03-23 18:13:03 +01:00
Daniel Stenberg
7bc61bf469
CURLMOPT_MAX*: mention what happens if changed mid-transfer
For CURLMOPT_MAXCONNECTS and CURLMOPT_MAX_HOST_CONNECTIONS

Ref: #13158
Closes #13176
2024-03-23 11:31:36 +01:00
Daniel Stenberg
c5775007d3
docs/libcurl: add TLS backend info for all TLS options
All man pages that are listed to be for TLS now must also specify
exactly what TLS backends the option works for, or use All if they all
work.

cd2nroff makes sure this is done and that the listed backends exist.

Closes #13168
2024-03-22 14:07:55 +01:00
Daniel Stenberg
3ff3c0925d
docs/libcurl: cleanups
- CURLINFO_TLS_SESSION.md: remove mention of NSS
- CURLINFO_TLS_SSL_PTR.md: remove NSS leftover
- CURLOPT_CAINFO.md: drop mention of backends not supporting this
- CURLOPT_CAPATH.md: wolfSSL also supports this

Closes #13166
2024-03-21 22:36:27 +01:00
Daniel Stenberg
b935fd4a07
docs: make each libcurl man specify protocol(s)
The mandatory header now has a mandatory list of protocols for which the
manpage is relevant.

Most man pages already has a "PROTOCOLS" section, but this introduces a
stricter way to specify the relevant protocols.

cd2nroff verifies that at least one protocol is mentioned (which can be
`*`).

This information is not used just yet, but A) the PROTOCOLS section can
now instead get generated and get a unified wording across all manpages
and B) this allows us to more reliably filter/search for protocol
specific manpages/options.

Closes #13166
2024-03-21 15:27:06 +01:00
Stefan Eissing
98f67a6145
http2, http3: only return CURLE_PARTIAL_FILE when bytes were received
- should resolve spurious pytest failures when stream were reset
  right after response header were received

Clsoes #13151
2024-03-21 09:36:23 +01:00
Stefan Eissing
0f08b43557
http: separate response parsing from response action
- move code that triggers on end-of-response into separate function from
  parsing
- simplify some headp/headerlen usage
- add `httpversion` to SingleRequest to indicate the version of the
  current response

Closes #13134
2024-03-21 09:34:40 +01:00
Daniel Stenberg
0c820427f2
http2: remove the third (unused) argument from http2_data_done()
Closes #13154
2024-03-21 09:32:27 +01:00