From 1918e828da30978d7b858217bd3f4fd02447191f Mon Sep 17 00:00:00 2001
From: Andrew Nacin <nacin@git.wordpress.org>
Date: Mon, 14 Oct 2013 23:32:47 +0000
Subject: [PATCH] Automatic updates: Include error data in the follow-up API
 request.

props dd32.
see #22704.


git-svn-id: https://develop.svn.wordpress.org/trunk@25781 602fd350-edb4-49c9-b593-d223f7449a82
---
 src/wp-admin/includes/class-wp-upgrader.php |  4 ++++
 src/wp-includes/update.php                  | 10 ++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/wp-admin/includes/class-wp-upgrader.php b/src/wp-admin/includes/class-wp-upgrader.php
index 4ffe3aa006..b6cfa9bdfd 100644
--- a/src/wp-admin/includes/class-wp-upgrader.php
+++ b/src/wp-admin/includes/class-wp-upgrader.php
@@ -1747,12 +1747,16 @@ class WP_Automatic_Upgrader {
 			$core_update_result = self::upgrade( 'core', $core_update );
 			delete_site_transient( 'update_core' );
 			$extra_update_stats['success'] = is_wp_error( $core_update_result ) ? $core_update_result->get_error_code() : true;
+			$extra_update_stats['error_data'] = is_wp_error( $core_update_result ) ? $core_update_result->get_error_data() : '';
 			if ( is_wp_error( $core_update_result ) && 'rollback_was_required' == $core_update_result->get_error_code() ) {
 				$rollback_data = $core_update_result->get_error_data();
 				$extra_update_stats['success'] = is_wp_error( $rollback_data['update'] ) ? $rollback_data['update']->get_error_code() : $rollback_data['update'];
+				$extra_update_stats['error_data'] = is_wp_error( $rollback_data['update'] ) ? $rollback_data['update']->get_error_data() : '';
 				$extra_update_stats['rollback'] = is_wp_error( $rollback_data['rollback'] ) ? $rollback_data['rollback']->get_error_code() : true; // If it's not a WP_Error, the rollback was successful.
+				$extra_update_stats['rollback_data'] = is_wp_error( $rollback_data['rollback'] ) ? $rollback_data['rollback']->get_error_data() : '';
 			}
 			$extra_update_stats['fs_method'] = $GLOBALS['wp_filesystem']->method;
+			$extra_update_stats['fs_method_forced'] = defined( 'FS_METHOD' ) || has_filter( 'fs_method' );
 			$extra_update_stats['time_taken'] = ( time() - $start_time );
 			$extra_update_stats['attempted'] = $core_update->version;
 		}
diff --git a/src/wp-includes/update.php b/src/wp-includes/update.php
index b6aed5db23..c0eaf1b753 100644
--- a/src/wp-includes/update.php
+++ b/src/wp-includes/update.php
@@ -86,8 +86,12 @@ function wp_version_check( $extra_stats = array() ) {
 		'multisite_enabled' => $multisite_enabled,
 	);
 
+	$post_body = array(
+		'translations' => json_encode( $translations ),
+	);
+
 	if ( $extra_stats )
-		$query = array_merge( $query, $extra_stats );
+		$post_body = array_merge( $post_body, $extra_stats );
 
 	$url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' );
 	if ( wp_http_supports( array( 'ssl' ) ) )
@@ -100,9 +104,7 @@ function wp_version_check( $extra_stats = array() ) {
 			'wp_install' => $wp_install,
 			'wp_blog' => home_url( '/' )
 		),
-		'body' => array(
-			'translations' => json_encode( $translations ),
-		),
+		'body' => $post_body,
 	);
 
 	$response = wp_remote_post( $url, $options );