Skip to content

Commit

Permalink
Introduce a special wp_die handler for XMLRPC requests to ensure we s…
Browse files Browse the repository at this point in the history
…end an XML response.

Props koke for the original patch. See #16748.

git-svn-id: http://svn.automattic.com/wordpress/trunk@17643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
  • Loading branch information
westi committed Apr 17, 2011
1 parent 9c0a5cd commit eed3596
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
36 changes: 36 additions & 0 deletions wp-includes/functions.php
Expand Up @@ -2854,6 +2854,42 @@ function _default_wp_die_handler( $message, $title = '', $args = array() ) {
die();
}

/**
* Kill WordPress execution and display XML message with error message.
*
* This is the handler for wp_die when processing XMLRPC requests.
*
* @since 3.2.0
* @access private
*
* @param string $message Error message.
* @param string $title Error title.
* @param string|array $args Optional arguements to control behaviour.
*/
function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) {
global $wp_xmlrpc_server;
$defaults = array( 'response' => 500 );

$r = wp_parse_args($args, $defaults);

if ( $wp_xmlrpc_server ) {
$error = new IXR_Error( $r['response'] , $message);
$wp_xmlrpc_server->output( $error->getXml() );
}
die();
}

/**
* Filter to enable special wp_die handler for xmlrpc requests.
*
* @since 3.2.0
* @access private
*/
function _xmlrpc_wp_die_filter() {
return '_xmlrpc_wp_die_handler';
}


/**
* Retrieve the WordPress home page URL.
*
Expand Down
3 changes: 3 additions & 0 deletions xmlrpc.php
Expand Up @@ -98,6 +98,9 @@ function logIO($io,$msg) {
if ( isset($HTTP_RAW_POST_DATA) )
logIO("I", $HTTP_RAW_POST_DATA);

// Make sure wp_die output is XML
add_filter( 'wp_die_handler', '_xmlrpc_wp_die_filter' );

// Allow for a plugin to insert a different class to handle requests.
$wp_xmlrpc_server_class = apply_filters('wp_xmlrpc_server_class', 'wp_xmlrpc_server');
$wp_xmlrpc_server = new $wp_xmlrpc_server_class;
Expand Down

0 comments on commit eed3596

Please sign in to comment.