From 8085f7d52905e5fc05b355770418dc84f9404a70 Mon Sep 17 00:00:00 2001 From: nacin Date: Wed, 16 Nov 2011 07:23:15 +0000 Subject: [PATCH] Revert update changes that snuck in with [19311]. see #19255, see #18876. git-svn-id: http://svn.automattic.com/wordpress/trunk@19312 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/update.php | 88 ++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 50 deletions(-) diff --git a/wp-includes/update.php b/wp-includes/update.php index 79b10becbb..f832dc2850 100644 --- a/wp-includes/update.php +++ b/wp-includes/update.php @@ -143,37 +143,31 @@ function wp_update_plugins() { $new_option = new stdClass; $new_option->last_checked = time(); + // Check for updated every 60 minutes if hitting update pages; else, check every 12 hours. + $timeout = in_array( current_filter(), array( 'load-plugins.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200; + $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); - // Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. - $filter = current_filter(); - if ( 'load-update-core.php' != $filter ) { - $timeout = 'load-plugins.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200; - $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); + $plugin_changed = false; + foreach ( $plugins as $file => $p ) { + $new_option->checked[ $file ] = $p['Version']; - if ( $time_not_changed ) { - $plugin_changed = false; - foreach ( $plugins as $file => $p ) { - $new_option->checked[ $file ] = $p['Version']; - - if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) - $plugin_changed = true; + if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) + $plugin_changed = true; + } + + if ( isset ( $current->response ) && is_array( $current->response ) ) { + foreach ( $current->response as $plugin_file => $update_details ) { + if ( ! isset($plugins[ $plugin_file ]) ) { + $plugin_changed = true; + break; } - - if ( isset ( $current->response ) && is_array( $current->response ) ) { - foreach ( $current->response as $plugin_file => $update_details ) { - if ( ! isset($plugins[ $plugin_file ]) ) { - $plugin_changed = true; - break; - } - } - } - - // Bail if we've checked recently and if nothing has changed - if ( ! $plugin_changed ) - return false; } } + // Bail if we've checked in the last 12 hours and if nothing has changed + if ( $time_not_changed && !$plugin_changed ) + return false; + // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); @@ -228,6 +222,10 @@ function wp_update_themes() { if ( ! is_object($last_update) ) $last_update = new stdClass; + // Check for updated every 60 minutes if hitting update pages; else, check every 12 hours. + $timeout = in_array( current_filter(), array( 'load-themes.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200; + $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked ); + $themes = array(); $checked = array(); $exclude_fields = array('Template Files', 'Stylesheet Files', 'Status', 'Theme Root', 'Theme Root URI', 'Template Dir', 'Stylesheet Dir', 'Description', 'Tags', 'Screenshot'); @@ -248,36 +246,26 @@ function wp_update_themes() { } } - // Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. - $filter = current_filter(); - if ( 'load-update-core.php' != $filter ) { - $timeout = 'load-themes.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200; - $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked ); + $theme_changed = false; + foreach ( $checked as $slug => $v ) { + $update_request->checked[ $slug ] = $v; - if ( $time_not_changed ) { - $theme_changed = false; - foreach ( $checked as $slug => $v ) { - $update_request->checked[ $slug ] = $v; - - if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) - $theme_changed = true; + if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) + $theme_changed = true; + } + + if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { + foreach ( $last_update->response as $slug => $update_details ) { + if ( ! isset($checked[ $slug ]) ) { + $theme_changed = true; + break; } - - if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { - foreach ( $last_update->response as $slug => $update_details ) { - if ( ! isset($checked[ $slug ]) ) { - $theme_changed = true; - break; - } - } - } - - // Bail if we've checked recently and if nothing has changed - if ( ! $theme_changed ) - return false; } } + if ( $time_not_changed && !$theme_changed ) + return false; + // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update );