diff options
-rw-r--r-- | main/main.c | 7 | ||||
-rw-r--r-- | main/output.c | 8 | ||||
-rw-r--r-- | main/php_output.h | 3 |
3 files changed, 12 insertions, 6 deletions
diff --git a/main/main.c b/main/main.c index 30698a5925..83c8633c69 100644 --- a/main/main.c +++ b/main/main.c @@ -752,7 +752,12 @@ static void php_error_cb(int type, const char *error_filename, const uint error_ efree(log_buffer); } if (PG(display_errors) - && ((!PG(during_request_startup) && PG(display_startup_errors)) || module_initialized)) { + && ((module_initialized && !PG(during_request_startup)) + || (PG(display_startup_errors) + && (OG(php_body_write)==php_default_output_func || OG(php_body_write)==php_ub_body_write_no_header || OG(php_body_write)==php_ub_body_write) + ) + ) + ) { if (PG(xmlrpc_errors)) { php_printf("<?xml version=\"1.0\"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>%ld</int></value></member><member><name>faultString</name><value><string>%s:%s in %s on line %d</string></value></member></struct></value></fault></methodResponse>", PG(xmlrpc_error_number), error_type_str, buffer, error_filename, error_lineno); diff --git a/main/output.c b/main/output.c index ff3e3a49b5..7505066196 100644 --- a/main/output.c +++ b/main/output.c @@ -32,8 +32,6 @@ #define OB_DEFAULT_HANDLER_NAME "default output handler" /* output functions */ -static int php_ub_body_write(const char *str, uint str_length TSRMLS_DC); -static int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_DC); static int php_b_body_write(const char *str, uint str_length TSRMLS_DC); static int php_ob_init(uint initial_size, uint block_size, zval *output_handler, uint chunk_size, zend_bool erase TSRMLS_DC); @@ -49,7 +47,7 @@ php_output_globals output_globals; #endif /* {{{ php_default_output_func */ -static inline int php_default_output_func(const char *str, uint str_len TSRMLS_DC) +PHPAPI int php_default_output_func(const char *str, uint str_len TSRMLS_DC) { fwrite(str, 1, str_len, stderr); return str_len; @@ -675,7 +673,7 @@ static int php_b_body_write(const char *str, uint str_length TSRMLS_DC) /* {{{ php_ub_body_write_no_header */ -static int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_DC) +PHPAPI int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_DC) { int result; @@ -695,7 +693,7 @@ static int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_D /* {{{ php_ub_body_write */ -static int php_ub_body_write(const char *str, uint str_length TSRMLS_DC) +PHPAPI int php_ub_body_write(const char *str, uint str_length TSRMLS_DC) { int result = 0; diff --git a/main/php_output.h b/main/php_output.h index a1e6c81c1f..591b386779 100644 --- a/main/php_output.h +++ b/main/php_output.h @@ -28,6 +28,9 @@ PHPAPI void php_output_startup(void); PHPAPI void php_output_activate(TSRMLS_D); PHPAPI void php_output_set_status(zend_bool status TSRMLS_DC); PHPAPI void php_output_register_constants(TSRMLS_D); +PHPAPI int php_default_output_func(const char *str, uint str_len TSRMLS_DC); +PHPAPI int php_ub_body_write(const char *str, uint str_length TSRMLS_DC); +PHPAPI int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_DC); PHPAPI int php_body_write(const char *str, uint str_length TSRMLS_DC); PHPAPI int php_header_write(const char *str, uint str_length TSRMLS_DC); PHPAPI int php_start_ob_buffer(zval *output_handler, uint chunk_size, zend_bool erase TSRMLS_DC); |