To allow replacing `&` characters in `tests/data/test*` files for
XML-compliance.
Also:
- document `%GT`, `%LT`
Follow-up to de49cc89ab#19470Closes#19824
Eliminate a heap buffer in both `win32_idn_to_ascii()` and
`win32_ascii_to_idn()`, by replacing it with stack buffer. The maximum
size is fixed in these cases, and small enough to fit there.
Also reuse length returned by the UTF-8 to wchar conversion, allowing
to drop `wcslen()` call in both functions, and allowing to call
the wchar to UTF-8 conversion API `WideCharToMultiByte()` with the known
length, saving length calculations within that API too.
Ref: https://github.com/curl/curl/pull/19748#issuecomment-3592015200Closes#19798
Address issues listed in #19770:
- allow for ngttpx to successfully shut down on last attempt that might
extend beyond the finish timestamp
- timeline checks: allos `time_starttransfer` to appear anywhere in
the timeline as a slow client might seen response data before setting
the other counters
- dump logs on test_05_02 as it was not reproduced locally
Fixes#19970Closes#19783
A fix for the tests that took the longest:
- test_05: make the server close the HTTP/1.1 connection when
simulating an error during a download. This eliminates waiting
for a keepalive timeout
- test_02: pause tests with slightly smaller documents, eliminate
special setup for HTTP/2. We test stream window handling now
elsewhere already
- cli_hx_download: run look in 500ms steps instead of 1sec, resuming
paused tranfers earlier.
Closes#19809
Instead of buffering response body data until it is received by the
transfer loop, write the response data directly to the client.
Use a connection wide scratch buffer to get the response body from
quiche. Eliminates need for maintaining individual buffers for each
stream.
Fixes#19803
Reported-by: Stanislav Fort
Closes#19806
add the debug log before freeing the memory, otherwise another thread
might allocate and log it before the free is logged.
Follow-up to a7bebd8502Closes#19787
Protect modification to the `membuf` by different threads
via a mutex. This ensure that index updates are correct and
that data gets written in order.
Closes#19785
Use the already detected `gssapi/gssapi_krb5.h` MIT Kerberos header
to pull in `gssapi_ext.h`, which in turn sets `GSS_C_CHANNEL_BOUND_FLAG`
if supported. Channel binding is present in MIT Kerberos 1.19+.
Also:
- lib: de-duplicate GSS-API header includes.
- vauth: de-duplicate `urldata.h` includes.
- drop interim feature macro in favor of the native GSS one.
Assisted-by: Max Faxälv
Reported-by: Max Faxälv
Bug: https://github.com/curl/curl/pull/19164#issuecomment-3551687025
Follow-up to 8616e5aada#19164Closes#19603Closes#19760
Follow-up to c1e3a760b. The previous update missed an addition that also
can wrap and cause confusion. Fixing this by calling
Curl_pgrsSetDownloadSize() after the overflow check.
Reported-by: Deniz Parlak
Closes#19774
The macro is present in all supported Windows toolchains.
It's present in mingw-w64 v3+, and in MS SDK 6.0A+ (maybe earlier).
Also:
- restrict this logic to `USE_WINSOCK` (was: `_WIN32`), to exclude
alternate socket libraries (i.e. lwIP). lwIP supports `IPV6_V6ONLY`
since its 2.0.0 (2016-11-10) release and it's disabled by default,
unlike in Winsock.
Ref: e65202f825
- delete interim setter function/dummy macro `set_ipv6_v6only()`.
Follow-up to a28f5f68b9#18010
Follow-up to ca3f6decb9#10975Closes#19769
Before this patch it added Windows-specific casts. In unity builds this
also affected other source files.
`setsockopt()` is called without special casts in other places in
the code, and passing a non-const char ptr to a const char ptr arg also
should work.
Basic compile test with mingw-w64 confirms. In case of issues, a cast to
`curl_socklen_t` can be used, or do the special case in an `#if` branch.
Also: merge Windows-specific guards for `SET_RCVTIMEO()`.
Follow-up to 639d052e44#3155
Follow-up to 04cb15ae9dCloses#19768
To avoid potentially executing a different Perl than used by the rest
of the build and tests.
Also to be more portable by not relying on shebang support, though these
particular tests require POSIX shell anyway.
Closes#19767
Move check logic from postchecks to `test613.pl`.
To make these test data files XML-compliant.
Also to avoid POSIX/bash-shellisms in postcheck.
Closes#19766