dmitry Fri Jun 15 09:20:53 2007 UTC Modified files: /php-src/main main.c Log: HTTP 500 is sent to browser in case of PHP error instead of blank page http://cvs.php.net/viewvc.cgi/php-src/main/main.c?r1=1.731&r2=1.732&diff_format=u Index: php-src/main/main.c diff -u php-src/main/main.c:1.731 php-src/main/main.c:1.732 --- php-src/main/main.c:1.731 Fri Jun 15 07:32:17 2007 +++ php-src/main/main.c Fri Jun 15 09:20:53 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: main.c,v 1.731 2007/06/15 07:32:17 dmitry Exp $ */ +/* $Id: main.c,v 1.732 2007/06/15 09:20:53 dmitry Exp $ */ /* {{{ includes */ @@ -931,17 +931,28 @@ /* no break - intentionally */ case E_ERROR: case E_RECOVERABLE_ERROR: - /* case E_PARSE: the parser would return 1 (failure), we can bail out nicely */ + case E_PARSE: case E_COMPILE_ERROR: case E_USER_ERROR: EG(exit_status) = 255; if (module_initialized) { - /* restore memory limit */ - zend_set_memory_limit(PG(memory_limit)); - efree(buffer); - zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC); - zend_bailout(); - return; + if (!SG(headers_sent) && + SG(sapi_headers).http_response_code == 200) { + sapi_header_line ctr = {0}; + + ctr.line = "HTTP/1.0 500 Internal Server Error"; + ctr.line_len = strlen(ctr.line); + sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC); + } + /* the parser would return 1 (failure), we can bail out nicely */ + if (type != E_PARSE) { + /* restore memory limit */ + zend_set_memory_limit(PG(memory_limit)); + efree(buffer); + zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC); + zend_bailout(); + return; + } } break; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php