curl/tests
Graham Campbell 820c014578 cfilters: fix event-based connection shutdown
- Adjust pollset during connection shutdown.

- Separate the FIRSTSOCKET and SECONDSOCKET check so that one being in
  connect or shutdown no longer adds poll events for the other.

- Fix shutdown state evaluation (as detailed below).

- Add a unit test for Curl_conn_adjust_pollset.

- Add a client for event testing.

- Test that shutdown sockets stay with the socket callback until done.

The pollset predicate now reads the connection's own shutdown state
rather than going through data->conn, and the EXPIRE_SHUTDOWN arming in
cshutdn_perform() works again: next_expire_ms started at 0 and could
never be set, so a peer that never sends a close_notify would still park
its connection forever, timeout or not.

Reported-by: pszemus@users.noreply.github.com

Fixes https://github.com/curl/curl/issues/22282
Closes https://github.com/curl/curl/pull/22304
2026-07-17 04:00:56 -04:00
..
certs TLS: drop support for TLS-SRP 2026-07-04 12:20:20 +02:00
cmake scripts: use end-of-options marker in cd, mkdir, mv, sha256sum commands 2026-06-25 11:32:36 +02:00
data cfilters: fix event-based connection shutdown 2026-07-17 04:00:56 -04:00
http cfilters: fix event-based connection shutdown 2026-07-17 04:00:56 -04:00
libtest cfilters: fix event-based connection shutdown 2026-07-17 04:00:56 -04:00
server hostip: only cache negative resolves for authoritative answers 2026-07-13 11:27:16 +02:00
tunit
unit cfilters: fix event-based connection shutdown 2026-07-17 04:00:56 -04:00
.gitignore
allversions.pm tidy-up: syntax and code nits 2026-06-26 15:45:24 +02:00
appveyor.pm
azure.pm
CMakeLists.txt cmake: fix not to build tunits when BUILD_CURL_EXE=OFF 2026-06-26 21:12:35 +02:00
config.in
configurehelp.pm.in
devtest.pl
dictserver.py
directories.pm
ech_combos.py
ech_tests.sh scripts: use end-of-options marker in cd, mkdir, mv, sha256sum commands 2026-06-25 11:32:36 +02:00
ftpserver.pl runtests: flush cached test parts when (re)loading a file 2026-07-15 16:36:36 -07:00
getpart.pm runtests: flush cached test parts when (re)loading a file 2026-07-15 16:36:36 -07:00
globalconfig.pm
http-server.pl
http2-server.pl
http3-server.pl
Makefile.am tidy-up: syntax and code nits 2026-06-26 15:45:24 +02:00
memanalyze.pl
memanalyzer.pm
negtelnetserver.py
nghttpx.conf
pathhelp.pm
processhelp.pm
requirements.txt
rtspserver.pl
runner.pm runtests: flush cached test parts when (re)loading a file 2026-07-15 16:36:36 -07:00
runtests.pl ssls: fix potential memory leak on import 2026-07-15 22:18:04 +02:00
secureserver.pl tidy-up: typos, comment nits 2026-07-11 13:55:45 +02:00
serverhelp.pm TLS: drop support for TLS-SRP 2026-07-04 12:20:20 +02:00
servers.pm TLS: drop support for TLS-SRP 2026-07-04 12:20:20 +02:00
smbserver.py
sshhelp.pm
sshserver.pl
test745.pl
test971.pl
test1119.pl
test1135.pl
test1139.pl tidy-up: docs, comments, typos, whitespace 2026-06-26 11:36:09 +02:00
test1140.pl tidy-up: docs, comments, typos, whitespace 2026-06-26 11:36:09 +02:00
test1165.pl TLS: drop support for TLS-SRP 2026-07-04 12:20:20 +02:00
test1167.pl
test1173.pl
test1175.pl
test1177.pl TLS: drop support for TLS-SRP 2026-07-04 12:20:20 +02:00
test1222.pl
test1275.pl
test1276.pl
test1477.pl
test1486.pl
test1488.pl
test1544.pl
test1707.pl tidy-up: syntax and code nits 2026-06-26 15:45:24 +02:00
testcurl.pl
testutil.pm tidy-up: syntax and code nits 2026-06-26 15:45:24 +02:00
tftpserver.pl
util.py
valgrind.pm
valgrind.supp