ID:               41378
 Updated by:       [EMAIL PROTECTED]
 Reported By:      anight at eyelinkmedia dot com
-Status:           Open
+Status:           Assigned
 Bug Type:         HTTP related
 Operating System: any
 PHP Version:      5.2.2
 Assigned To:      dmitry


Previous Comments:
------------------------------------------------------------------------

[2007-05-12 18:56:49] anight at eyelinkmedia dot com

proposed patch:

--- sapi/cgi/cgi_main.c 2007-02-16 14:47:20.000000000 +0300
+++ sapi/cgi/cgi_main.c 2007-05-11 16:48:37.000000000 +0400
@@ -329,8 +329,22 @@
                        }

                } else {
+                       if (SG(sapi_headers).http_status_line) {
+                               char *ptr;
+                               for (ptr =
SG(sapi_headers).http_status_line; *ptr; ptr++) {
+                                       if (*ptr == ' ' && *(ptr + 1)
!= ' ' && *(ptr + 1) != 0) {
+                                               len = snprintf(buf,
SAPI_CGI_MAX_HEADER_LENGTH,
+                                                       "Status:
%s\r\n", ptr + 1);
+                                               if (len >
SAPI_CGI_MAX_HEADER_LENGTH) {
+                                                       len =
SAPI_CGI_MAX_HEADER_LENGTH;
+                                               }
+                                               goto done;
+                                       }
+                               }
+                       }
                        len = sprintf(buf, "Status: %d\r\n",
SG(sapi_headers).http_response_code);
                }
+done:

                PHPWRITE_H(buf, len);
        }

------------------------------------------------------------------------

[2007-05-12 18:52:51] anight at eyelinkmedia dot com

Description:
------------
Right now there is no way to set application-defined "Reason-Phrase"
(as defined in rfc2616) along with Status-Code in a Status-Line of http
response for fastcgi sapi. This affects php-4.4.7 too (fastcgi module
based on same code).

Fastcgi specs says:
http://www.fastcgi.com/devkit/doc/fcgi-spec.html
6.1 Role Protocols
[skipped]
Role protocols do not support the non-parsed header feature of CGI.
FastCGI 
applications set response status using the Status and Location CGI
headers.

As I understand, the only way to specify Reason-Phrase is to pass it
via Status: header. This header itself will not reach a client, because
it is only valid within fastcgi protocol.


Reproduce code:
---------------
<? header("HTTP/1.0 404 Not Found"); ?>

Expected result:
----------------
web server respond with "HTTP/1.1 404 Not Found" status line.

Actual result:
--------------
web server respond with "HTTP/1.1 404" status line.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=41378&edit=1

Reply via email to