Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Curl.7.73.0 #4

Open
wants to merge 6,516 commits into
base: main
Choose a base branch
from
Open

Curl.7.73.0 #4

wants to merge 6,516 commits into from

Conversation

wmacaluso
Copy link

No description provided.

bagder and others added 30 commits August 24, 2020 19:21
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 curl#5848
Works with --create-dirs and with -J

Add test 3008, 3009, 3011, 3012 and 3013 to verify.

Closes curl#5637
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 curl#5760
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 curl#5509
Prepares curl#5707
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 curl#5262 and curl#5492
Closes curl#5707
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 curl#5397
Reverts curl#5632
Closes curl#5634
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 curl#5634
Guidance-by: Tatsuhiro Tsujikawa

Closes curl#5864
When this error code was introduced in b6a53ff, it was
forgotten to be added in the errors array and doh_strerror function.

Closes curl#5863
Currently the file tests/libtest/lib3010 is not getting
ignored by git. This fixes it by adding the 3XXX area to
the according .gitignore file.

Closes curl#5859
The get_cert_location function allocates memory only on success.
Previously get_cert_location was able to allocate memory and return
error. It wasn't obvious and in this case the memory wasn't
released.

Fixes curl#5855
Closes curl#5860
... to completely disable the use of socketpair

Closes curl#5850
OpenSSL undefines the conflicting symbols but BoringSSL does not so we
must do it ourselves.

Reported-by: Samuel Tranchet
Assisted-by: Javier Blazquez

Ref: https://bugs.chromium.org/p/boringssl/issues/detail?id=371
Ref: https://github.com/openssl/openssl/blob/OpenSSL_1_1_1g/include/openssl/ossl_typ.h#L66-L73

Fixes curl#5669
Closes curl#5857
 const struct curl_easyoption *curl_easy_option_by_name(const char *name);

 const struct curl_easyoption *curl_easy_option_by_id (CURLoption id);

 const struct curl_easyoption *
 curl_easy_option_next(const struct curl_easyoption *prev);

The purpose is to provide detailed enough information to allow for
example libcurl bindings to get option information at run-time about
what easy options that exist and what arguments they expect.

Assisted-by: Jeroen Ooms
Closes curl#5365
To allow disabling of the curl_easy_option APIs in a build.

Closes curl#5365
... by insiting on it matching "^curl-".
The address of that variable never gets changed, only the data in it so
why not make it a "char * const"?

Closes curl#5866
The custom script isn't necessary anymore - but remains for simplicity
and just invokes autoreconf.

Closes curl#5853
As reported by man(1) when invoked as:

  man --warnings -E UTF-8 -l -Tutf8 -Z <file> >/dev/null

Closes curl#5846
Signed-off-by: Dan Kenigsberg <danken@redhat.com>

Closes curl#5876
USE_TLS_SRP will be true if *any* selected TLS backend can use SRP

HAVE_OPENSSL_SRP is defined when OpenSSL can use it

HAVE_GNUTLS_SRP is defined when GnuTLS can use it

Clarify in the curl_verison_info docs that CURL_VERSION_TLSAUTH_SRP is
set if at least one of the supported backends offers SRP.

Reported-by: Stefan Strogin
Fixes curl#5865
Closes curl#5870
bagder and others added 29 commits October 14, 2020 07:50
... and remove the objnames scripts they tested. They're not used for
anything anymore so testing them serves no purpose!

Reported-by: Marc Hörsken
Fixes curl#6080
Closes curl#6081
With gcc 10 on mingw we otherwise get this warning:

 error: ISO C does not support the 'I' printf flag [-Werror=format=]

Fixes curl#6079
Closes curl#6082
Started over for the journey to next release.
Assisted-by: Daniel Stenberg
Reported-by: Tom G. Christensen

Fixes curl#6069
Closes curl#6071
... and clean it up a bit.

Closes curl#6067
... and make TESTFAIL stand out a little better by adding newlines
before and after.

Reported-by: Marc Hörsken
Issue: curl#6052
Closes curl#6053
It supposes when people specify the libdir/includedir they do it to
change where under prefix/exec_prefix it should be, not to make it
independent of prefix/exec_prefix.

Closes curl#6061
... when asked to with CURLU_URLENCODE.

Extended test 1560 to verify.
Reported-by: Dietmar Hauser
Fixes curl#6086
Closes curl#6087
... and fix a few occurances

Closes curl#6088
* fix two build errors due to mismatch between function
  declarations and their definitions
* silence two mismatched signs warnings via casts

Approved-by: Daniel Stenberg
Closes curl#6093
Follow-up to 68a5132

Use a new separate define that is the combination of both
HAVE_OPENSSL_SRP and USE_TLS_SRP: USE_OPENSSL_SRP

Bug: https://curl.haxx.se/mail/lib-2020-10/0037.html

Closes curl#6094
Install curl binaries into MinGW bin folder and use that
for the tests in order to avoid libtool wrapper binaries.

The libtool wrapper binaries (not scripts) on Windows seem
to be one of the possible causes for the following issues:

1. Process output can be lost in the wrapper process chain.
2. Killing the wrapper process does not kill the actual one.

Derived from curl#5904
Closes curl#6049
Reported-by: Basuke Suzuki
Fixes curl#6097
This fixes the OS400 build and also an incorrect entry for
CURLINFO_APPCONNECT_TIME_T where it was treated as
CURLINFO_STARTTRANSFER_TIME_T.

Reported-by: Jon Rumsey

Fixes curl#6083
Closes curl#6084
... and make sure 'make checksrc' in the root dir also verifies the
packages/OS400 sources.

Closes curl#6085
... to make sure such tests are run with valgrind. Suppress the zstd
valgrind warnings we get with version 1.3.3 on Ubuntu 18.04 (for debug
and non-debug builds).

Closes curl#6105
... so that curl-config gets correct and makes test 1014 happy!

Ref: curl#6074
Closes curl#6108
This allows the build to enable IDN properly and it makes test 1014
happier.

Ref: curl#6074
Closes curl#6108
... to make them easier to refer to and address separately and
one-by-one.
Base automatically changed from master to main March 11, 2021 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet