On Fri, 22 Nov 2002, Edin Kadribasic wrote:
> On Fri, 22 Nov 2002, Sascha Schumann wrote:
>
> > > + if (rfc2616_headers && SG(sapi_headers).http_status_line) {
> > > + len = sprintf(buf, "%s\r\n", SG(sapi_headers).http_status_line);
> >
> > So, if the user specifies that he wants to have
> > rfc2616_headers, but http_status_line is not set, he gets the
> > Status: line nevertheless?
>
> What should the correct behavior be. Send no default header (sending
> status: amounts to this for a server that does not support it)? Send
> "HTTP/1.0 200 OK"?
The attached patch looks promising and restores the pre-4.3
behaviour for the standard status 200 case. It also
continues to provide a solution for non-200 status codes.
- Sascha
Index: cgi_main.c
===================================================================
RCS file: /repository/php4/sapi/cgi/cgi_main.c,v
retrieving revision 1.194
diff -u -r1.194 cgi_main.c
--- cgi_main.c 22 Nov 2002 10:15:47 -0000 1.194
+++ cgi_main.c 22 Nov 2002 10:52:38 -0000
@@ -238,7 +238,6 @@
static int sapi_cgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
{
char buf[1024];
- int len;
sapi_header_struct *h;
zend_llist_position pos;
long rfc2616_headers = 0;
@@ -252,13 +251,15 @@
rfc2616_headers = 0;
}
- if (rfc2616_headers && SG(sapi_headers).http_status_line) {
- len = sprintf(buf, "%s\r\n", SG(sapi_headers).http_status_line);
- } else {
- len = sprintf(buf, "Status: %d\r\n",
SG(sapi_headers).http_response_code);
- }
+ if (SG(sapi_headers).http_response_code != 200) {
+ int len;
+
+ len = sprintf(buf,
+ rfc2616_headers ? "HTTP/1.0 %d Code\r\n" : "Status:
+%d\r\n",
+ SG(sapi_headers).http_response_code);
- PHPWRITE_H(buf, len);
+ PHPWRITE_H(buf, len);
+ }
if (SG(sapi_headers).send_default_content_type) {
char *hd;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php