CURLMOPT_MAXCONNECTS: restore functionality

When a connection is no longer used, it is kept in the cache. If the
cache is full, the oldest idle connection is closed. If no connection is
idle, the current one is closed instead.
This commit is contained in:
Linus Nielsen Feltzing
2013-02-05 09:07:27 +01:00
parent 03577a355e
commit bd1f170a5a
5 changed files with 325 additions and 12 deletions

95
tests/data/test1506 Normal file
View File

@@ -0,0 +1,95 @@
<testcase>
<info>
<keywords>
HTTP
multi
</keywords>
</info>
# Server-side
<reply>
<data1>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data1>
<data2>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data2>
<data3>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data3>
<data4>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 47
file contents should appear once for each file
</data4>
</reply>
# Client-side
<client>
<server>
http
</server>
<tool>
lib1506
</tool>
<name>
HTTP GET connection cache limit (CURLMOPT_MAXCONNECTS)
</name>
<command>
http://%HOSTIP:%HTTPPORT/path/1506 %HOSTIP %HTTPPORT
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
GET /path/15060001 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060002 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060003 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
GET /path/15060004 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<strip>
^Host:.*
</strip>
<file name="log/stderr1506" mode="text">
* Connection #0 to host server1.example.com left intact
* Connection #1 to host server2.example.com left intact
* Connection #2 to host server3.example.com left intact
* Closing connection 0
* Connection #3 to host server4.example.com left intact
</file>
<stripfile>
$_ = '' if (($_ !~ /left intact/) && ($_ !~ /Closing connection/))
</stripfile>
</verify>
</testcase>