+
+ HTTP_LOG_WRITE(file, ident, message);
+ HTTP_LOG_WRITE(HTTP_G(log).composite, ident, message);
+}
+/* }}} */
+
+static void http_ob_blackhole(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC)
+{
+ *handled_output = ecalloc(1,1);
+ *handled_output_len = 0;
+}
+
+/* {{{ STATUS http_exit(int, char*, char*) */
+STATUS _http_exit_ex(int status, char *header, char *body, zend_bool send_header TSRMLS_DC)
+{
+ if ( (send_header && (SUCCESS != http_send_status_header(status, header))) ||
+ (!send_header && status && (SUCCESS != http_send_status(status)))) {
+ http_error_ex(HE_WARNING, HTTP_E_HEADER, "Failed to exit with status/header: %d - %s", status, header ? header : "");
+ STR_FREE(header);
+ STR_FREE(body);
+ return FAILURE;
+ }
+
+ php_end_ob_buffers(0 TSRMLS_CC);
+ if (php_header(TSRMLS_C) && body) {
+ PHPWRITE(body, strlen(body));
+ }
+