Mantis - Quercus
Viewing Issue Advanced Details
3319 minor always 02-04-09 16:23 02-04-09 19:55
koreth  
nam  
normal  
closed  
fixed  
none    
none 4.0.0  
0003319: stream_context_create / fopen doesn't send multiple header lines
The fix for bug 3317 addressed the mangling of the Content-Type: line but the header is still wrong. The test script again:

<?php
$server_addr = 'http://api.facebook.com/restserver.php'; [^]
$user_agent = 'test client';
$content = 'abcdefg';
$content_length = strlen($content);
$context = array('http' =>
                   array('method' => 'POST',
                         'user_agent' => $user_agent,
                         'header' => "Content-Type: text/plain\r\n" .
                                     "Content-Length: $content_length",
                         'content' => $content));
$context_id = stream_context_create($context);
$sock = fopen($server_addr, 'r', false, $context_id);
fclose($sock);

PHP sends the following header:

Content-Type: text/plain
Content-Length: 7
Host: api.facebook.com
User-Agent: test client

Quercus now sends:

Host: api.facebook.com
User-Agent: test client
content-type: text/plain

Note the Content-Length line is missing. Also, there is an extra space before the content type (probably not as important since I think the RFCs say whitespace is supposed to be ignored there) and the header field name is folded to lower case (not supposed to be significant and I don't think it matters for our specific use case, but maybe some web server might care.)

Notes
(0003804)
nam   
02-04-09 19:55   
php/164p

fixed whitespace
fixed Content-Length

Header names are case insensitive as per rfc2616-sec4. However, we may want to fix it for compatibility.