mirror of
https://github.com/curl/curl.git
synced 2026-04-13 00:31:41 +08:00
When a multiplex connection (h2/h3) is shutdown by the server, the reported number of parallel transfers allowed drops to 0. Determine that when the last transfer is done and terminate the connection instead of keeping it in the cache. We detect the drop to 0 also when we try to reuse such a connection, but if we know this at the time the last transfer is done, we better terminate it right away. Have a consistent trace logging to this with the connections current hostname and port. Adjust test expectations to carry port numbers. Closes #17884
104 lines
2.0 KiB
Plaintext
104 lines
2.0 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
HTTP/3
|
|
multi
|
|
verbose logs
|
|
</keywords>
|
|
</info>
|
|
|
|
# Server-side
|
|
<reply>
|
|
<data1 crlf="yes">
|
|
HTTP/1.1 200 OK
|
|
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
|
Server: server.example.com
|
|
Content-Length: 47
|
|
|
|
file contents should appear once for each file
|
|
</data1>
|
|
<data2>
|
|
HTTP/1.1 200 OK
|
|
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
|
Server: server.example.com
|
|
Content-Length: 47
|
|
|
|
file contents should appear once for each file
|
|
</data2>
|
|
<data3>
|
|
HTTP/1.1 200 OK
|
|
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
|
Server: server.example.com
|
|
Content-Length: 47
|
|
|
|
file contents should appear once for each file
|
|
</data3>
|
|
<data4>
|
|
HTTP/1.1 200 OK
|
|
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
|
Server: server.example.com
|
|
Content-Length: 47
|
|
|
|
file contents should appear once for each file
|
|
</data4>
|
|
</reply>
|
|
|
|
# Client-side
|
|
<client>
|
|
<features>
|
|
http/3
|
|
</features>
|
|
<server>
|
|
http/3
|
|
</server>
|
|
<tool>
|
|
lib%TESTNUMBER
|
|
</tool>
|
|
<name>
|
|
HTTP GET multiple over HTTP/3
|
|
</name>
|
|
<command>
|
|
https://%HOSTIP:%HTTP3PORT/path/%TESTNUMBER %HOSTIP %HTTP3PORT %CERTDIR/certs/test-ca.cacert
|
|
</command>
|
|
</client>
|
|
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<protocol crlf="yes">
|
|
GET https://localhost:%HTTP3PORT/path/%TESTNUMBER0001 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Via: 3 nghttpx
|
|
|
|
GET https://localhost:%HTTP3PORT/path/%TESTNUMBER0002 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Via: 3 nghttpx
|
|
|
|
GET https://localhost:%HTTP3PORT/path/%TESTNUMBER0003 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Via: 3 nghttpx
|
|
|
|
GET https://localhost:%HTTP3PORT/path/%TESTNUMBER0004 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Via: 3 nghttpx
|
|
|
|
</protocol>
|
|
<strip>
|
|
^Host:.*
|
|
</strip>
|
|
<file name="%LOGDIR/stderr%TESTNUMBER" mode="text">
|
|
== Info: Connection #0 to host localhost:%HTTP3PORT left intact
|
|
== Info: Connection #0 to host localhost:%HTTP3PORT left intact
|
|
== Info: Connection #0 to host localhost:%HTTP3PORT left intact
|
|
== Info: Connection #0 to host localhost:%HTTP3PORT left intact
|
|
</file>
|
|
<stripfile>
|
|
$_ = '' if(($_ !~ /left intact/) && ($_ !~ /Closing connection/))
|
|
</stripfile>
|
|
</verify>
|
|
</testcase>
|