Skip to content

HTTP/1.1 connection reuse not seeming to work #4499

@kinnison

Description

@kinnison

I did this

I have a multi-handle into which I add easy handles duphandle()d from a common configured handle. I make a request to localhost, which completes as a keepalive response requesting authentication. From that I get * Connection #1 to host localhost left intact. The easy handle
is thence cleaned up, but the multi handle persists.

Then my client attempts to make another request to the same place and instead of it reusing that connection it ends up attempting to make a fresh connection. I get * Found bundle for host localhost: 0x556e73066cf0 [can pipeline] and * Hostname localhost was found in DNS cache but eventually * Connected to localhost (127.0.0.1) port 2345 (#2)

I expected the following

I expected to see connection 1 reused.

curl/libcurl version

somniloquy% curl -V                                                                                                                                              
curl 7.64.0 (x86_64-pc-linux-gnu) libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Release-Date: 2019-02-06
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL 
somniloquy%                                                                                                                                                      

operating system

Debian/Buster

Additional notes

The code driving cURL can be found at https://git.netsurf-browser.org/netsurf.git/tree/content/fetchers/curl.c though I appreciate that's a lot of code to look through, if you want me to point you at particular parts, just let me know.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions