summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* multi: expand pre-check for socket readinessMarc Hoersken2020-08-251-38/+34
| | | | | | | | | | | | Check readiness of all sockets before waiting on them to avoid locking in case the one-time event FD_WRITE was already consumed by a previous wait operation. More information about WinSock network events: https://docs.microsoft.com/en-us/windows/win32/api/ winsock2/nf-winsock2-wsaeventselect#return-value Closes #5634
* multi: implement wait using winsock eventsrcombs2020-08-252-6/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids using a pair of TCP ports to provide wakeup functionality for every multi instance on Windows, where socketpair() is emulated using a TCP socket on loopback which could in turn lead to socket resource exhaustion. A previous version of this patch failed to account for how in WinSock, FD_WRITE is set only once when writing becomes possible and not again until after a send has failed due to the buffer filling. This contrasts to how FD_READ and FD_OOB continue to be set until the conditions they refer to no longer apply. This meant that if a user wrote some data to a socket, but not enough data to completely fill its send buffer, then waited on that socket to become writable, we'd erroneously stall until their configured timeout rather than returning immediately. This version of the patch addresses that issue by checking each socket we're waiting on to become writable with select() before the wait, and zeroing the timeout if it's already writable. Assisted-by: Marc Hörsken Reviewed-by: Marcel Raad Reviewed-by: Daniel Stenberg Tested-by: Gergely Nagy Tested-by: Rasmus Melchior Jacobsen Tested-by: Tomas Berger Replaces #5397 Reverts #5632 Closes #5634
* select: reduce duplication of Curl_poll in Curl_socket_checkMarc Hoersken2020-08-251-90/+16
| | | | | | | | | | | Change Curl_socket_check to use select-fallback in Curl_poll instead of implementing it in Curl_socket_check and Curl_poll. Reviewed-by: Daniel Stenberg Reviewed-by: Jay Satiro Replaces #5262 and #5492 Closes #5707
* select: fix poll-based check not detecting connect failureMarc Hoersken2020-08-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This commit changes Curl_socket_check to use POLLPRI to check for connect failure on the write socket, because POLLPRI maps to fds_err. This is in line with select(2). The select-based socket check correctly checks for connect failures by adding the write socket also to fds_err. The poll-based implementation (which internally can itself fallback to select again) did not previously check for connect failure by using POLLPRI with the write socket. See the follow up commit to this for more information. This commit makes sure connect failures can be detected and handled if HAVE_POLL_FINE is defined, eg. on msys2-devel. Reviewed-by: Daniel Stenberg Reviewed-by: Jay Satiro Replaces #5509 Prepares #5707
* select.h: make socket validation macros test for INVALID_SOCKETMarc Hoersken2020-08-251-2/+13
| | | | | | | | | | | With Winsock the valid range is [0..INVALID_SOCKET-1] according to https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2 Reviewed-by: Jay Satiro Reviewed-by: Marcel Raad Reviewed-by: Daniel Stenberg Closes #5760
* docs: --output-dir is added in 7.73.0, nothing elseDaniel Stenberg2020-08-242-2/+2
| | | | Follow-up to 5620d2cc78c0
* curl: add --output-dirDaniel Stenberg2020-08-2417-24/+381
| | | | | | | | Works with --create-dirs and with -J Add test 3008, 3009, 3011, 3012 and 3013 to verify. Closes #5637
* configure: fix pkg-config detecting wolfsslDaniel Stenberg2020-08-241-2/+6
| | | | | | | | When amending the include path with "/wolfssl", this now properly strips off all whitespace from the path variable! Previously this would lead to pkg-config builds creating bad command lines. Closes #5848
* sftp: add the option CURLKHSTAT_FINE_REPLACEMichael Musset2020-08-244-4/+20
| | | | | | Replace the old fingerprint of the host with a new. Closes #5685
* RELEASE-NOTES: syncedDaniel Stenberg2020-08-242-9/+30
| | | | The next release is now to become 7.73.0
* checksrc: verify do-while and spaces between the bracesDaniel Stenberg2020-08-242-5/+15
| | | | | | Updated mprintf.c to comply Closes #5845
* curl: support XDG_CONFIG_HOME to find .curlrcDaniel Stenberg2020-08-247-12/+120
| | | | | | | | | Added test433 to verify. Updated documentation. Reviewed-by: Jay Satiro Suggested-by: Eli Schwartz Fixes #5829 Closes #5837
* etag: save and use the full received contentsDaniel Stenberg2020-08-2410-52/+88
| | | | | | | | | ... which makes it support weak tags and non-standard etags too! Added test case 347 to verify blank incoming ETag: Fixes #5610 Closes #5833
* setopt: if the buffer exists, refuse the new BUFFERSIZEDaniel Stenberg2020-08-241-11/+3
| | | | | | | | The buffer only exists during transfer and then we shouldn't change the size (the setopt is not documented to work then). Reported-by: Harry Sintonen Closes #5842
* sftp: add new quote commands 'atime' and 'mtime'COFFEETALES2020-08-244-3/+79
| | | | Closes #5810
* CURLE_PROXY: new error codeDaniel Stenberg2020-08-2415-95/+318
| | | | | | | | | | | | Failures clearly returned from a (SOCKS) proxy now causes this return code. Previously the situation was not very clear as what would be returned and when. In addition: when this error code is returned, an application can use CURLINFO_PROXY_ERROR to query libcurl for the detailed error, which then returns a value from the new 'CURLproxycode' enum. Closes #5770
* runtests: make cleardir() erase dot files tooDaniel Stenberg2020-08-231-1/+1
| | | | | | Because test cases might use dot files. Closes #5838
* KNOWN_BUGS: 'no_proxy' string-matches IPv6 numerical addresesDaniel Stenberg2020-08-233-1/+17
| | | | | | | | | Also: the current behavior is now documented in the curl.1 and CURLOPT_NOPROXY.3 man pages. Reported-by: Andrew Barnes Closes #5745 Closes #5841
* Makefile.m32: add ability to override zstd libs [ci skip]Viktor Szakats2020-08-223-3/+18
| | | | | | | | | | Similarly to brotli, where this was already possible. E.g. it allows to link zstd statically to libcurl.dll. Ref: https://github.com/curl/curl-for-win/issues/12 Ref: https://github.com/curl/curl-for-win/commit/d9b266afd2e5d3f5604483010ef62340b5918c89 Closes https://github.com/curl/curl/pull/5840
* runtests: avoid 'fail to start' repeated messages in attempt loopsDaniel Stenberg2020-08-211-14/+13
| | | | Closes #5834
* runtests: clear pid variables when failing to start a serverDaniel Stenberg2020-08-211-58/+28
| | | | | | | | | ... as otherwise the parent doesn't detect the failure and believe it actually worked to start. Reported-by: Christian Weisgerber Bug: https://curl.haxx.se/mail/lib-2020-08/0018.html Closes #5834
* TODO: Virtual external socketsDaniel Stenberg2020-08-211-0/+10
| | | | Closes #5835
* dist: add missing CMake Find modules to the distributionDon2020-08-211-0/+3
| | | | Closes #5836
* RELEASE-NOTES: syncedDaniel Stenberg2020-08-192-222/+11
| | | | ... and version bumped to 7.72.1
* tls: provide the CApath verbose log on its own lineDaniel Stenberg2020-08-194-30/+20
| | | | | | | | | ... not newline separated from the previous line. This makes it output asterisk prefixed properly like other verbose putput! Reported-by: jmdavitt on github Fixes #5826 Closes #5827
* RELEASE-NOTES: syncedcurl-7_72_0Daniel Stenberg2020-08-191-15/+37
| | | | The curl 7.72.0 release
* THANKS: add names from curl 7.72.0 releaseDaniel Stenberg2020-08-191-0/+29
|
* KNOWN_BUGS: Schannel TLS 1.2 handshake bug in old Windows versionsJay Satiro2020-08-181-0/+9
| | | | | | Reported-by: plujon@users.noreply.github.com Closes https://github.com/curl/curl/issues/5488
* Curl_easy: remember last connection by id, not by pointerDaniel Stenberg2020-08-175-17/+18
| | | | | | | | | CVE-2020-8231 Bug: https://curl.haxx.se/docs/CVE-2020-8231.html Reported-by: Marc Aldorasi Closes #5824
* examples/rtsp.c: correct the copyright yearDaniel Stenberg2020-08-171-1/+1
|
* RELEASE-PROCEDURE.md: add more future release datesDaniel Stenberg2020-08-171-4/+6
|
* docs: change "web site" to "website"H3RSKO2020-08-1714-32/+32
| | | | | | | | | According to wikipedia: While "web site" was the original spelling, this variant has become rarely used, and "website" has become the standard spelling Closes #5822
* CMake: don't complain about missing nroffBevan Weiss2020-08-161-1/+4
| | | | | | | | | The curl_nroff_check() was always being called, and complaining if *NROFF wasn't found, even when not making the manual. Only check for nroff (and complain) if actually making the manual Closes #5817
* libtest/Makefile.am: add -no-undefined for libstubgss for CygwinBrian Inglis2020-08-161-1/+4
| | | | | | | | | | | | copy the LDFLAGS approach for adding same option with `libhostname` in `libtest/Makefile.am`: - init `libstubgss_la_LDFLAGS_EXTRA` variable, - add option to variable inside conditional, - use variable in `libstubgss_la_LDFLAGS` Fixes #5819 Closes #5820
* docs: clarify MAX_SEND/RECV_SPEED functionalityDaniel Stenberg2020-08-152-4/+17
| | | | | | | | | ... in particular what happens if the maximum speed limit is set to a value that's smaller than the transfer buffer size in use. Reported-by: Tomas Berger Fixes #5788 Closes #5813
* test1140: compare stdoutDaniel Stenberg2020-08-152-5/+13
| | | | | | To make problems more immediately obvious when tests fail. Closes #5814
* asyn-ares: correct some bad commentsDaniel Stenberg2020-08-151-4/+4
| | | | Closes #5812
* docs: Add video link to docs/CONTRIBUTE.mdEmil Engler2020-08-141-0/+3
| | | | Closes #5811
* curl-config: ignore REQUIRE_LIB_DEPS in --libs outputDaniel Stenberg2020-08-141-1/+1
| | | | | | | | | | Fixes a curl-config issue on cygwin by making sure REQUIRE_LIB_DEPS is not considered for the --libs output. Reported-by: ramsay-jones on github Assisted-by: Brian Inglis and Ken Brown Fixes #5793 Closes #5808
* copyright: update/correct the year range on a few filesDaniel Stenberg2020-08-146-6/+6
|
* scripts/copyright.pl: ignore .muse filesDaniel Stenberg2020-08-141-0/+1
|
* multi: Remove 10-year old out-commented codeEmil Engler2020-08-121-13/+0
| | | | | | The code hasn't been touched since 2010-08-18 Closes #5805
* KNOWN_BUGS: A shared connection cache is not thread-safeDaniel Stenberg2020-08-122-4/+13
| | | | | Closes #4915 Closes #5802
* CONTRIBUTE: extend git commit message descriptionDaniel Stenberg2020-08-121-0/+10
| | | | | | In particular how the first line works. Closes #5803
* RELEASE-NOTES: syncedDaniel Stenberg2020-08-111-8/+21
|
* transfer: move retrycount from connect struct to easy handleStefan Yohansson2020-08-102-3/+6
| | | | | | | | | | This flag was applied to the connection struct that is released on retry. These changes move the retry counter into Curl_easy struct that lives across retries and retains the new connection. Reported-by: Cherish98 on github Fixes #5794 Closes #5800
* libssh2: s/ssherr/sftperr/Daniel Stenberg2020-08-101-1/+1
| | | | | | | | | | | The debug output used ssherr instead of sftperr which not only outputs the wrong error code but also casues a warning on Windows. Follow-up to 7370b4e39f1 Reported-by: Gisle Vanem Bug: https://github.com/curl/curl/commit/7370b4e39f1390e701f5b68d910c619151daf72b#r41334700 Closes #5799
* ftp: don't do ssl_shutdown instead of ssl_closeDaniel Stenberg2020-08-102-3/+4
| | | | | | | | | | | | | The shutdown function is for downgrading a connection from TLS to plain, and this is not requested here. Have ssl_close reset the TLS connection state. This partially reverts commit f002c850d98d Reported-by: Rasmus Melchior Jacobsen Reported-by: Denis Goleshchikhin Fixes #5797
* CI/azure: fix test outcome values and use latest API versionMarc Hoersken2020-08-091-6/+6
| | | | | | | This makes sure that tests ignored or skipped are not shown just in the category "Other", but with their correct state. Closes #5796
* CI/azure: show runtime stats to investigate slownessMarc Hoersken2020-08-091-15/+15
| | | | | | Also avoid naming conflict of TFLAGS env and tflags variables. Closes #5776