summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* speedcheck: exclude paused transfersbagder/paused-speedcheckDaniel Stenberg2020-12-222-0/+7
| | | | | | | | | | Paused transfers should not be stopped due to slow speed even when CURLOPT_LOW_SPEED_LIMIT is set. Additionally, the slow speed timer is now reset when the transfer is unpaused - as otherwise it would easily just trigger immediately after unpausing. Reported-by: Harry Sintonen Fixes #6358
* RELEASE-NOTES: syncedDaniel Stenberg2020-12-211-7/+27
|
* cmdline-opts/gen.pl: return hard on errorsDaniel Stenberg2020-12-211-2/+4
| | | | | | ... as the warnings tend to go unnoticed otherwise! Closes #6354
* examples/libtest: add .checksrc to distDaniel Stenberg2020-12-212-3/+3
| | | | | | | ... so that (auto)builds from tarballs also get the correct instructions. Fixes #6176 Closes #6353
* test: verify new --write-out variablesDaniel Stenberg2020-12-213-2/+51
| | | | Extended test 1029 and added 1188
* test970: adapted to the new internal order of variablesDaniel Stenberg2020-12-211-1/+1
|
* curl: add variables to --write-outDaniel Stenberg2020-12-217-104/+128
| | | | | | | | | | | | | | | | | | | | | In particular, these ones can help a user to create its own error message when one or transfers fail. writeout: add 'onerror', 'url', 'urlnum', 'exitcode', 'errormsg' onerror - lets a user only show the rest on non-zero exit codes url - the input URL used for this transfer urlnum - the numerical URL counter (0 indexed) for this transfer exitcode - the numerical exit code for the transfer errormsg - obvious Reported-by: Earnestly on github Fixes #6199 Closes #6207
* tests: add very simple AWS HTTP v4 Signature testMatthias Gatto2020-12-214-2/+136
| | | | Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
* docs: add AWS HTTP v4 SignatureMatthias Gatto2020-12-217-0/+102
|
* tool: add AWS HTTP v4 Signature supportMatthias Gatto2020-12-215-0/+12
| | | | Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
* http: Make the call to v4 signatureMatthias Gatto2020-12-213-1/+27
| | | | | | This patch allow to call the v4 signature introduce in previous commit Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
* http: introduce AWS HTTP v4 SignatureMatthias Gatto2020-12-216-0/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Outscale: https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request GCP (I didn't test that this code work with GCP though): https://cloud.google.com/storage/docs/access-control/signing-urls-manually most of the code is in lib/http_v4_signature.c Information require by the algorithm: - The URL - Current time - some prefix that are append to some of the signature parameters. The data extracted from the URL are: the URI, the region, the host and the API type example: https://api.eu-west-2.outscale.com/api/latest/ReadNets ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ^ ^ ^ / \ URI API type region Small description of the algorithm: - make canonical header using content type, the host, and the date - hash the post data - make canonical_request using custom request, the URI, the get data, the canonical header, the signed header and post data hash - hash canonical_request - make str_to_sign using one of the prefix pass in parameter, the date, the credential scope and the canonical_request hash - compute hmac from date, using secret key as key. - compute hmac from region, using above hmac as key - compute hmac from api_type, using above hmac as key - compute hmac from request_type, using above hmac as key - compute hmac from str_to_sign using above hmac as key - create Authorization header using above hmac, prefix pass in parameter, the date, and above hash Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> Closes #5703
* http: add hmac support for sha256Matthias Gatto2020-12-212-0/+23
| | | | | | | | | | | | It seems current hmac implementation use md5 for the hash, V4 signature require sha256, so I've added the needed struct in this commit. I've added the functions that do the hmac in v4 signature file as a static function ,in the next patch of the serie, because it's used only by this file. Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com>
* connect: on linux, enable reporting of all ICMP errors on UDP socketsCristian Rodríguez2020-12-211-0/+14
| | | | | | | | | | | | The linux kernel does not report all ICMP errors back to userspace due to historical reasons. IP*_RECVERR sockopt must be turned on to have the correct behaviour which is to pass all ICMP errors to userspace. See https://bugzilla.kernel.org/show_bug.cgi?id=202355 Closes #6341
* curl: add --create-file-mode [mode]Daniel Stenberg2020-12-2110-4/+49
| | | | | | | | This option sets the (octal) mode to use for the remote file when one is created, using the SFTP, SCP or FILE protocols. When not set, the default is 0644. Closes #6244
* c-hyper: fix compiler warningsDaniel Stenberg2020-12-201-7/+6
| | | | | | | | | Identified by clang on windows. Reported-by: Gisle Vanem Bug: 58974d25d8173aec154e593ed9d866da566c9811 Closes #6351
* KNOWN_BUGS: Remote recursive folder creation with SFTPDaniel Stenberg2020-12-201-0/+9
| | | | Closes #5204
* badsymbols.pl: Add verbose mode -vJay Satiro2020-12-201-1/+20
| | | | | | | | | | | | | Use -v as the first option to enable verbose mode which will show source input, extracted symbol and line info. For example: Source: ./../include/curl/typecheck-gcc.h Symbol: curlcheck_socket_info(info) Line #423: #define curlcheck_socket_info(info) \ Ref: https://curl.se/mail/lib-2020-12/0084.html Closes https://github.com/curl/curl/pull/6349
* KNOWN_BUGS: Secure Transport disabling hostname validation also disables SNIJay Satiro2020-12-201-0/+15
| | | | | | | | | | | | | That behavior is a limitation of Apple's Secure Transport. Reported-by: Cory Benfield Reported-by: Ian Spence Confirmed-by: Nick Zitzmann Ref: https://github.com/curl/curl/issues/998 Closes https://github.com/curl/curl/issues/6347 Closes https://github.com/curl/curl/pull/6348
* TODO: alt-svc should fallback if alt-svc doesn't workDaniel Stenberg2020-12-181-0/+8
| | | | Closes #4908
* travis: restrict the openssl3 job to only run https and ftps testsDaniel Stenberg2020-12-181-1/+1
| | | | | | | ... as it runs too long otherwise and the other tests are verified in other builds anyway. Closes #6345
* build: repair http disabled but mqtt enabled buildDaniel Stenberg2020-12-182-13/+15
| | | | | | ... as the mqtt code reuses the "method" originally used for HTTP. Closes #6344
* cookie: avoid the C1001 internal compiler error with MSVC 14Jon Wilkes2020-12-181-0/+9
| | | | | Fixes #6112 Closes #6135
* RELEASE-NOTES: syncedDaniel Stenberg2020-12-181-4/+22
|
* mqtt: handle POST/PUBLISH without a set POSTFIELDSIZEDaniel Stenberg2020-12-188-4/+191
| | | | | | | | | Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28735 Added test 1916 and 1917 to verify. Closes #6338
* travis: add CI job for Hyper buildDaniel Stenberg2020-12-182-0/+19
|
* tests: updated tests for HyperDaniel Stenberg2020-12-1810-5/+73
|
* lib: introduce c-hyper for using HyperDaniel Stenberg2020-12-187-1105/+2441
| | | | ... as an alternative HTTP backend within libcurl.
* tool_setopt: provide helper output in debug buildsDaniel Stenberg2020-12-181-1/+6
| | | | ... for when setopt() returns error.
* setopt: adjust to Hyper and disabled HTTP buildsDaniel Stenberg2020-12-181-1/+3
|
* rtsp: disable if Hyper is usedDaniel Stenberg2020-12-182-2/+6
|
* getinfo: build with disabled HTTP supportDaniel Stenberg2020-12-181-0/+2
|
* version: include hyper versionDaniel Stenberg2020-12-183-5/+24
|
* docs: add HYPER.mdDaniel Stenberg2020-12-182-0/+48
|
* configure: add --with-hyperDaniel Stenberg2020-12-181-4/+98
| | | | | | As the first (optional) HTTP backend alternative instead of native Close #6110
* test1522: add debug tracingDaniel Stenberg2020-12-172-12/+22
| | | | | | | I used this to track down some issues and I figured I could just as well keep this extra logging in here for future needs. Closes #6331
* http: show the request as headers even when split-sendingDaniel Stenberg2020-12-174-7/+45
| | | | | | | | | | When the initial request isn't possible to send in its entirety, the remainder of request would be delivered to the debug callback as data and would wrongly be counted internally as body-bytes sent. Extended test 1295 to verify. Closes #6328
* multi: when erroring in TOOFAST state, act as for PERFORMDaniel Stenberg2020-12-171-1/+9
| | | | | | | | | | | | | When failing in TOOFAST, the multi_done() wasn't called so the same cleanup and handling wasn't done like when it fails in PERFORM, which in the case of FTP could mean that the control connection wouldn't be marked as "dead" for the CURLE_ABORTED_BY_CALLBACK case. Which caused ftp_disconnect() to use it to send "QUIT", which could end up waiting for a response a long time before giving up! Reported-by: Tomas Berger Fixes #6333 Closes #6337
* cmake: enable gophers correctly in curl-configDaniel Stenberg2020-12-171-0/+1
| | | | Closes #6336
* test1198/9: add two mqtt publish tests without payload lengthsDaniel Stenberg2020-12-173-1/+110
| | | | Closes #6335
* tests/mqttd: extract the client id from the correct offsetbagder/mqttdDaniel Stenberg2020-12-171-1/+1
| | | | Closes #6334
* TODO: Prevent terminal injection when writing to terminalDaniel Stenberg2020-12-161-0/+10
| | | | Closes #6150
* Revert "CI/github: work-around for brew breakage on macOS"Daniel Stenberg2020-12-161-12/+6
| | | | | | | | This reverts commit 4cbb17a2cbbbe6337142d39479e21c3990b9c22f. ... as the work-around now causes failures. Closes #6332
* examples: remove superfluous asterisk usesDaniel Stenberg2020-12-163-6/+6
| | | | ... for function pointers. Breaks in ancient compilers.
* RELEASE-NOTES: syncedDaniel Stenberg2020-12-162-10/+41
|
* test1272: fix line endingDaniel Stenberg2020-12-151-1/+1
| | | | Follow-up to f24784f9143
* URL-SYNTAX: add gophers detailsDaniel Stenberg2020-12-151-7/+8
|
* test1272: test gophersDaniel Stenberg2020-12-152-1/+41
|
* runtests: add support for gophers, gopher over TLSDaniel Stenberg2020-12-153-11/+53
|
* gopher: Implement secure gopher protocol.parazyd2020-12-155-0/+62
| | | | | | | | | | | | | | | | | | This commit introduces a "gophers" handler inside the gopher protocol if USE_SSL is defined. This protocol is no different than the usual gopher prococol, with the added TLS encapsulation upon connecting. The protocol has been adopted in the gopher community, and many people have enabled TLS in their gopher daemons like geomyidae(8), and clients, like clic(1) and hurl(1). I have not implemented test units for this protocol because my knowledge of Perl is sub-par. However, for someone more knowledgeable it might be fairly trivial, because the same test that tests the plain gopher protocol can be used for "gophers" just by adding a TLS listener. Signed-off-by: parazyd <parazyd@dyne.org> Closes #6208