curl_multi_remove_handle() don't block terminating c-ares requests

Added Curl_resolver_kill() for all three resolver modes, which only
blocks when necessary, along with test 1592 to confirm
curl_multi_remove_handle() doesn't block unless it must.

Closes #3428
Fixes #3371
This commit is contained in:
Brad Spencer 2018-12-14 17:18:22 -04:00 committed by Daniel Stenberg
parent ebe658c1e5
commit 84a30d0a41
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 225 additions and 21 deletions

37
tests/data/test1592 Normal file
View file

@ -0,0 +1,37 @@
<testcase>
<info>
<keywords>
HTTP
multi
resolve
speedcheck
</keywords>
</info>
# Client-side
<client>
<server>
none
</server>
<tool>
lib1592
</tool>
<name>
HTTP request, remove handle while resolving, don't block
</name>
<command>
http://a-site-never-accessed.example.org/1592
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<valgrind>
disable
</valgrind>
<errorcode>
0
</errorcode>
</verify>
</testcase>