mirror of
https://github.com/curl/curl.git
synced 2026-08-25 16:53:33 +03:00
ngtcp2: share common functionality
Share common functions/structs between ngtcp2 HTTP/3 and the proxy version. Fix bugs in proxy implementation when it comes to stream and pollset handling and transfer lifetimes. Curl_multi_xfer_sockbuf_borrow: work without multi When a connection gets shutdown by a share, the easy handle used is share->admin and it does not have a multi handle. In that case let Curl_multi_xfer_sockbuf_borrow() allocate a buffer to be freed on release. This happens when a TLS filter sends its last notify through a HTTP/3 proxy tunnel. Closes #21871
This commit is contained in:
parent
4fcf9c8f59
commit
f924489b25
43 changed files with 3254 additions and 4970 deletions
|
|
@ -214,3 +214,16 @@ class TestEyeballs:
|
|||
r.check_exit_code(0)
|
||||
r.check_response(count=1, http_status=200)
|
||||
assert r.stats[0]['http_version'] == '2'
|
||||
|
||||
# h3 download using --connect-to IPv6 address
|
||||
@pytest.mark.skipif(condition=not Env.have_h3(), reason="missing HTTP/3 support")
|
||||
@pytest.mark.skipif(condition=not Env.curl_has_feature('IPv6'), reason="no IPv6")
|
||||
def test_06_25_h3_connect_to(self, env: Env, httpd, nghttpx):
|
||||
curl = CurlClient(env=env, force_resolv=False)
|
||||
urln = f'https://{env.authority_for(env.domain1, "h3")}/data.json'
|
||||
r = curl.http_download(urls=[urln], extra_args=[
|
||||
'--http3-only', '--connect-to',
|
||||
f'{env.authority_for(env.domain1, "h3")}:[::1]:{env.https_port}'
|
||||
])
|
||||
r.check_response(count=1, http_status=200)
|
||||
assert r.stats[0]['http_version'] == '3'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue