auto-pausing on verify callback retry

When an application install its own OpenSSL verify callback and
that callback invokes `SSL_set_retry_verify()`, the transfer is
automatically paused and does not progress the connect attempt
any further until unpaused via `curl_easy_pause().

Added test758 to verify.

Original PR by @Natris
Reporting on libcurl mailing list
This commit is contained in:
Stefan Eissing 2025-08-14 14:12:54 +02:00
parent c24d4be057
commit c5afc28952
No known key found for this signature in database
7 changed files with 557 additions and 7 deletions

View file

@ -108,7 +108,7 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \
test727 test728 test729 test730 test731 test732 test733 test734 test735 \
test736 test737 test738 test739 test740 test741 test742 test743 test744 \
test745 test746 test747 test748 test749 test750 test751 test752 test753 \
test754 test755 test756 test757 \
test754 test755 test756 test757 test758 \
test780 test781 test782 test783 test784 test785 test786 test787 test788 \
test789 test790 test791 test792 test793 test794 test796 test797 \
\

53
tests/data/test758 Normal file
View file

@ -0,0 +1,53 @@
<testcase>
<info>
<keywords>
multi
HTTPS
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6007
Connection: close
Content-Type: text/html
Funny-head: yesyes
-foo-
%repeat[1000 x foobar]%
</data>
</reply>
<features>
OpenSSL
</features>
# Client-side
<client>
<server>
https
</server>
<tool>
lib%TESTNUMBER
</tool>
<name>
multi_socket interface transfer with callbacks returning error
</name>
<command>
https://localhost:%HTTPSPORT/file%TESTNUMBER
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
</protocol>
</verify>
</testcase>