ZF-9404: Problem with Duplicate content-length Header in Http/Socket.php (Line 423)
Description
If I Request a file producing duplicate content-length header I get an error message:
Fatal error: Unsupported operand types in /pathtozendframework/Zend/Http/Client/Adapter/Socket.php on line 423
code there:
for ($read_to = $current_pos + $headers['content-length'];
$read_to > $current_pos;
$current_pos = ftell($this->socket)) {
Problem is the $headers['content-length'] which in this case is an Array.
The Server URL Requested:
http://gerth.de/shop/mp3.asp/…
The Request Header looks like this:
HTTP/1.1 200 OK Connection: close Date: Thu, 11 Mar 2010 15:03:34 GMT Server: Microsoft-IIS/6.0 P3P: CP="CAO PSA OUR" X-Powered-By: ASP.NET Content-Disposition: inline; filename=01_Chevette.mp3 Content-Length: 174652 Content-Length: 174652 Content-Type: audio/mpeg3 Expires: Thu, 11 Mar 2010 15:03:33 GMT Set-Cookie: ASPSESSIONIDQQBQCATQ=CCLFNMPAOEPDMEDEOMFMDDCJ; path=/ Cache-control: private
Comments
Posted by Eutychus (eutychus) on 2010-03-11T07:47:39.000+0000
Maybe you could use first Element of Array
Or prefer using the Fallback way testing for array in condition above.
// Else, if we got the content-length header, read this number of bytes } elseif (isset($headers['content-length']) && !is_array($header['content-length'])) {
Posted by Shahar Evron (shahar) on 2010-04-06T04:43:30.000+0000
Fixed in r. 21777, fix merged to 1.10 release branch