Commit Graph

6199 Commits

Author SHA1 Message Date
Daniel Stenberg
1ccf1cd993
scripts/managen: the new name and home for the manpage generator
It was previously docs/cmdline-opts/gen.pl

Closes #13089
2024-03-08 17:05:08 +01:00
Daniel Stenberg
39173f66e5
VULN-DISCLOSURE-POLICY.md: update detail about CVE requests
curl is a CNA now

Closes #13088
2024-03-08 13:16:27 +01:00
Daniel Stenberg
71681376d8
docs/cmdline-opts: drop the curl.1 from the dist tarball
Since it is no longer needed for building tool_hugehelp.c and all the
docs is available in readable markdown format in the tarball, the peeps
that don't want to build the manpage still do good.

Removing it also fixes the complexity of out-of-tree builds when the
curl.1 exists in the source tree.
2024-03-08 08:48:32 +01:00
Daniel Stenberg
cf3b60e9aa
KNOWN_BUGS: POP3 issue when reading small chunks
Closes #12063
2024-03-07 17:40:29 +01:00
Stefan Eissing
a89be3cdff
docs/cmdline-opts/.gitignore: ignore curl.txt
Closes #13076
2024-03-07 10:27:27 +01:00
Daniel Stenberg
1347cf255b
GIT-INFO: convert to markdown
Closes #13074
2024-03-07 09:43:33 +01:00
Richard Levitte
296e855d36
cmake: fix libcurl.pc and curl-config library specifications
Letting CMake figure out where libraries are located gives you full
paths. When generating libcurl.pc and curl-config, getting libraries as
full paths is unusual when one expects to get a list of -l<libname>.

To meet expectations, an effort is made to convert the full paths into
-l<libname>, possibly with -L<libdir> before it.

Fixes #6169
Fixes #12748
Closes #12930
2024-03-07 09:19:11 +01:00
Daniel Stenberg
923f7f8ce5
paramhlp: fix CRLF-stripping files with "-d @file"
All CR and LF bytes should be stripped, as documented, and all other
bytes are inluded in the data. Starting now, it also excludes null bytes
as they would otherwise also cut the data short.

Reported-by: Simon K
Fixes #13063
Closes #13064
2024-03-07 08:14:45 +01:00
Jay Satiro
2ea178ace7 KNOWN_BUGS: FTPS server compatibility on Windows with Schannel
- Remove "2.12 FTPS with Schannel times out file list operation"

- Remove "7.12 FTPS directory listing hangs on Windows with Schannel"

- Add "7.12 FTPS server compatibility on Windows with Schannel"

This change adds a more generic bug description that explains FTPS with
the latest curl and Schannel is not widely used and may have more bugs
than other TLS backends.

The two removed FTPS Schannel bugs can't be reproduced any longer and
were likely fixed by 24d6c288.

Ref: https://github.com/curl/curl/issues/5284
Ref: https://github.com/curl/curl/issues/9161
Ref: https://github.com/curl/curl/issues/12894

Closes https://github.com/curl/curl/pull/13032
2024-03-06 17:46:54 -05:00
Jay Satiro
48f54264c4 trace-config.md: remove the mutexed options list
- Remove the rendered manpage message that says:
  "[--trace-config] is mutually exclusive to --trace and -v, --verbose".

Actually it can be used with either of those options, which are mutually
exclusive to each other but not to --trace-config.

Ref: https://curl.se/docs/manpage.html#--trace-config

Closes https://github.com/curl/curl/pull/13031
2024-03-06 17:45:40 -05:00
Daniel Stenberg
f03c85635f
docs: ascii version of manpage without nroff
Create ASCII version of manpage without nroff

 - build src/tool_hugegelp.c from the ascii manpage
 - move the the manpage and the ascii version build to docs/cmdline-opts
 - remove all use of nroff from the build process
 - should make the build entirely reproducible (by avoiding nroff)

 - partly reverts 2620aa9 to build libcurl option man pages one by one
   in cmake because the appveyor builds got all crazy until I did

The ASCII version of the manpage

 - is built with gen.pl, just like the manpage is
 - has a right-justified column making the appearance similar to the previous
   version
 - uses a 4-space indent per level (instead of the old version's 7)
 - does not do hyphenation of words (which nroff does)

History

  We first made the curl build use nroff for building the hugehelp file in
  December 1998, for curl 5.2.

Closes #13047
2024-03-06 15:55:59 +01:00
Daniel Stenberg
4cea0982a0
TODO: remove "build HTTP/3 with OpenSSL and nghttp3 using cmake"
Follow-up to 8e741644a2
2024-03-05 17:10:03 +01:00
Tal Regev
8e741644a2
cmake: add USE_OPENSSL_QUIC support
Closes #13034
2024-03-05 17:07:57 +01:00
Viktor Szakats
a54d0bdc65
KNOWN_BUGS: fix typo
Reviewed-by: Daniel Stenberg
Closes #13051
2024-03-05 12:53:50 +00:00
Stefan Eissing
14bcea074a
lib: enhance client reader resume + rewind
- update client reader documentation
- client reader, add rewind capabilities
    - tell creader to rewind on next start
    - Curl_client_reset() will keep reader for future rewind if requested
    - add Curl_client_cleanup() for freeing all resources independent of
      rewinds
    - add Curl_client_start() to trigger rewinds
    - move rewind code from multi.c to sendf.c and make part of
      "cr-in"'s implementation
- http, move the "resume_from" handling into the client readers
    - the setup of a HTTP request is reshuffled to follow:
      * determine method, target, auth negotiation
      * install the client reader(s) for the request, including crlf
        conversions and "chunked" encoding
      * apply ranges to client reader
      * concat request headers, upgrades, cookies, etc.
      * complete request by determining Content-Length of installed
        readers in combination with method
      * send
    - add methods for client readers to
      * return the overall length they will generate (or -1 when unknown)
      * return the amount of data on the CLIENT level, so that
        expect-100 can decide if it want to apply itself
      * set a "resume_from" offset or fail if unsupported
    - struct HTTP has become largely empty now
- rename `Client_reader_*` to `Curl_creader_*`

Closes #13026
2024-03-05 13:26:05 +01:00
Daniel Stenberg
eb9166dc66
gen.pl: make the "manpageification" faster
The function that replaces occurances of "--longoption" with "-Z,
--longoption" etc with the proper highlight applied, no longer loops
over the options.

Closes #13041
2024-03-05 10:54:23 +01:00
Daniel Stenberg
6f685f04fd
CONTRIBUTE: update the section on documentation format
... since most of it is markdown now.

Closes #13046
2024-03-05 10:53:21 +01:00
Daniel Stenberg
e455490c3c
_VARIABLES.md: improve the description
Closes #13040
2024-03-04 22:43:50 +01:00
Jay Satiro
a0cbe4b867 cmdline-opts/_EXITCODES: sync with libcurl-errors
- Add error code 100 (CURLE_TOO_LARGE) to the list of error codes that
  can be returned by the curl tool.

Closes https://github.com/curl/curl/pull/13015
2024-03-02 17:59:29 -05:00
Dan Fandrich
57777a262a docs: Update minimal binary size in INSTALL.md
Include more options to reduce binary size.
2024-03-01 01:16:24 -08:00
RainRat
2cd78f525c misc: Fix typos in docs and lib
This fixes miscellaneous typos and duplicated words in the docs, lib
and test comments and a few user facing errorstrings.

Author: RainRat on Github
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Dan Fandrich <dan@coneharvesters.com>
Closes: #13019
2024-03-01 09:59:48 +01:00
Daniel Stenberg
32e0544dc8
cmdline-opts/_VERSION: provide %VERSION correctly
... so that it does not get included verbatim in the output. Fixes a
regression shipped in 8.6.0.

Also fix a format mistake in form.md

Closes #13008
2024-02-28 15:53:12 +01:00
Stefan Eissing
9369c30cd8
lib: Curl_read/Curl_write clarifications
- replace `Curl_read()`, `Curl_write()` and `Curl_nwrite()` to
  clarify when and at what level they operate
- send/recv of transfer related data is now done via
  `Curl_xfer_send()/Curl_xfer_recv()` which no longer has
  socket/socketindex as parameter. It decides on the transfer
  setup of `conn->sockfd` and `conn->writesockfd` on which
  connection filter chain to operate.
- send/recv on a specific connection filter chain is done via
  `Curl_conn_send()/Curl_conn_recv()` which get the socket index
  as parameter.
- rename `Curl_setup_transfer()` to `Curl_xfer_setup()` for
  naming consistency
- clarify that the special CURLE_AGAIN hangling to return
  `CURLE_OK` with length 0 only applies to `Curl_xfer_send()`
  and CURLE_AGAIN is returned by all other send() variants.
- fix a bug in websocket `curl_ws_recv()` that mixed up data
  when it arrived in more than a single chunk (to be made
  into a sperate PR, also)

Added as documented [in
CLIENT-READER.md](5b1f31dfba/docs/CLIENT-READERS.md).

- old `Curl_buffer_send()` completely replaced by new `Curl_req_send()`
- old `Curl_fillreadbuffer()` replaced with `Curl_client_read()`
- HTTP chunked uploads are now formatted in a client reader added when
  needed.
- FTP line-end conversions are done in a client reader added when
  needed.
- when sending requests headers, remaining buffer space is filled with
  body data for sending in "one go". This is independent of the request
  body size. Resolves #12938 as now small and large requests have the
  same code path.

Changes done to test cases:

- test513: now fails before sending request headers as this initial
  "client read" triggers the setup fault. Behaves now the same as in
  hyper build
- test547, test555, test1620: fix the length check in the lib code to
  only fail for reads *smaller* than expected. This was a bug in the
  test code that never triggered in the old implementation.

Closes #12969
2024-02-28 12:58:55 +01:00
Daniel Gustafsson
8d67c61c47 curldown: Fix email address in Copyright
The curldown conversion accidentally replaced daniel@haxx.se with
just daniel.se.  This reverts back to the proper email address in
the curldown docs as well as in a few other stray places where it
was incorrect (while unrelated to curldown).

Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Closes: #12997
2024-02-28 11:28:10 +01:00
Daniel Stenberg
b8ad95bf39
KNOWN_BUGS: IMAPS connection fails with rustls error
Closes #10457
2024-02-27 17:50:25 +01:00
Daniel Stenberg
745b99e1e8
KNOWN_BUGS: FTPS upload, FileZilla, GnuTLS and close_notify
Closes #11383
2024-02-27 17:48:18 +01:00
Daniel Stenberg
efda7eda62
KNOWN_BUGS: Implicit FTPS upload timeout
Closes #11720
2024-02-27 17:46:19 +01:00
Daniel Stenberg
9342563ef2
KNOWN_BUGS: HTTP/2 prior knowledge over proxy
Closes #12641
2024-02-27 17:44:55 +01:00
Daniel Stenberg
26bccd631b
TODO: build HTTP/3 with OpenSSL and nghttp3 using cmake
Closes #12988
2024-02-27 17:43:22 +01:00
Daniel Stenberg
01b42aa08b
TODO: Select signature algorithms
Closes #12982
2024-02-27 17:41:40 +01:00
Daniel Stenberg
f540e43b9d
examples: use present tense in comments
remove "will" and some other word fixes

Closes #13003
2024-02-27 16:19:43 +01:00
Daniel Stenberg
6e494a2390
docs: more language cleanups
- present tense
- avoid bad words

Closes #13003
2024-02-27 16:19:43 +01:00
Daniel Stenberg
2097a095c9
docs: use present tense
avoid "will", detect "will" as a bad word in the CI

Also line wrapped a bunch of paragraphs

Closes #13001
2024-02-27 09:47:21 +01:00
Daniel Stenberg
f73cb3ebd2
CURLOPT_SSL_CTX_FUNCTION.md: no promises of lifetime after return
... and cleanup other language.

Closes #12999
2024-02-27 09:04:13 +01:00
Stefan Eissing
5b41fac587
sendf: Curl_client_write(), make passed in buf const 2024-02-26 09:43:47 +01:00
kpcyrd
e3a4273c41
rustls: make curl compile with 0.12.0
Closes #12989
2024-02-26 08:59:43 +01:00
Daniel Stenberg
8d4ff40d7b
gen: make \> in input to render as plain '>' in output
Reported-by: Gisle Vanem
Fixes #12977
Closes #12978
2024-02-23 13:48:07 +01:00
Fabrice Fontaine
9b3f67e267
configure.ac: find libpsl with pkg-config
Find libpsl with pkg-config to avoid static build failures.

Ref: http://autobuild.buildroot.org/results/1fb15e1a99472c403d0d3b1a688902f32e78d002

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Closes #12947
2024-02-23 10:45:30 +01:00
Daniel Stenberg
8dbc3c7a6b
BUG-BOUNTY.md: clarify that the curl security team decides
Closes #12975
2024-02-23 10:29:45 +01:00
Daniel Stenberg
8e83b6b429
THANKS: add bug reporter from #740
Ref: https://github.com/curl/curl/issues/740
2024-02-23 10:13:03 +01:00
Daniel Stenberg
ac208ccf6f
write-out: add '%{proxy_used}'
Returns 1 if the previous transfer used a proxy, otherwise 0. Useful to
for example determine if a `NOPROXY` pattern matched the hostname or
not.

Extended test 970 and 972
2024-02-22 08:38:53 +01:00
Daniel Stenberg
cc04c73677
CURLINFO_USED_PROXY: return bool whether the proxy was used
Adds test536 to verify

Closes #12719
2024-02-22 08:38:53 +01:00
Stefan Eissing
f7e598791f
DoH: add trace configuration
- refs #12397 where it is dicussed how to en-/disable verbose output
  of DoH operations
- introducing `struct curl_trc_feat` to track a curl feature for
  tracing
- adding `data->state.feat` optionally pointing to the feature a
  transfer belongs to
- adding trace functions and verbosity checks on features
- using trace feature in DoH code
- documenting `doh` as feature for `--trace-config`

Closes #12411
2024-02-20 14:01:59 +01:00
Stefan Eissing
f0c446ab57
websocket: fix curl_ws_recv()
- when data arrived in several chunks, the collection into
  the passed buffer always started at offset 0, overwriting
  the data already there.

adding test_20_07 to verify fix

- debug environment var CURL_WS_CHUNK_SIZE can be used to
  influence the buffer chunk size used for en-/decoding.

Closes #12945
2024-02-20 13:57:58 +01:00
Daniel Stenberg
ab027d9cbc
docs: dist curl*.1 and install without perl
Drop docs/mk-ca-bundle.1 from the tarball. It can be generated at will.

Closes #12959
Fixes #12921
Reported-by: Michael Forney
2024-02-20 10:35:13 +01:00
Ramiro Garcia
36401d0d4a
MANUAL.md: fix typo
Closes #12965
2024-02-19 19:54:42 +01:00
Daniel Stenberg
5f48ba172e
BINDINGS: add mcurl, the python binding
Ref: #12956
Closes #12962
2024-02-19 17:01:00 +01:00
Daniel Stenberg
33d3153de9
mk-ca-bundle.md: cleanups and polish
Closes #12958
2024-02-19 11:42:12 +01:00
Daniel Stenberg
96af350661
libcurl-docs: cleanups
CURLMOPT_SOCKETDATA.md: fix typo
 CURLMOPT_TIMERDATA.md: fix typo
 CURLOPT_COOKIELIST.m: quote strings
 CURLOPT_PREREQFUNCTION.md: quote variable names
 CURLOPT_TCP_NODELAY.md: rephrased to please spell checker
 CURLOPT_WILDCARDMATCH.md: rephrased
 libcurl-tutorial.md: use correct option name
 curl_global_init_mem.md: quote headers
 curl_easy_getinfo.md: use correct symbol names in headers
 curl_global_trace.md: quote some headers
 curl_ws_meta.md: quote struct field names
 libcurl-env.md: quote headers
2024-02-19 11:41:12 +01:00
Karthikdasari0423
64283119fe HTTP3.md: always run nghttp3 submodule init
- For consistency change all 'build nghttp3' commands to run submodule
  init after cloning, even if the branch does not have submodules.

Follow-up to 5a4b2f93 and 4f794558.

Closes https://github.com/curl/curl/pull/12928
2024-02-18 01:59:46 -05:00