summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/main.c7
-rw-r--r--main/output.c8
-rw-r--r--main/php_output.h3
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);