From 9db190c7e736ec8d063187d4241b59feaf7dc2d1 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 22 Jun 2011 11:28:20 +0200 Subject: update to MediaWiki 1.17.0 --- includes/ChangesFeed.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'includes/ChangesFeed.php') diff --git a/includes/ChangesFeed.php b/includes/ChangesFeed.php index bc50fe02..f07b6505 100644 --- a/includes/ChangesFeed.php +++ b/includes/ChangesFeed.php @@ -27,8 +27,8 @@ class ChangesFeed { * @return ChannelFeed subclass or false on failure */ public function getFeedObject( $title, $description ) { - global $wgSitename, $wgContLanguageCode, $wgFeedClasses, $wgTitle; - $feedTitle = "$wgSitename - {$title} [$wgContLanguageCode]"; + global $wgSitename, $wgLanguageCode, $wgFeedClasses, $wgTitle; + $feedTitle = "$wgSitename - {$title} [$wgLanguageCode]"; if( !isset($wgFeedClasses[$this->format] ) ) return false; return new $wgFeedClasses[$this->format]( @@ -45,18 +45,17 @@ class ChangesFeed { * @return null or true */ public function execute( $feed, $rows, $lastmod, $opts ) { - global $messageMemc, $wgFeedCacheTimeout; - global $wgSitename, $wgLang; + global $wgLang, $wgRenderHashAppend; if ( !FeedUtils::checkFeedOutput( $this->format ) ) { return; } - $timekey = wfMemcKey( $this->type, $this->format, 'timestamp' ); - $optionsHash = md5( serialize( $opts->getAllValues() ) ); + $optionsHash = md5( serialize( $opts->getAllValues() ) ) . $wgRenderHashAppend; + $timekey = wfMemcKey( $this->type, $this->format, $wgLang->getCode(), $optionsHash, 'timestamp' ); $key = wfMemcKey( $this->type, $this->format, $wgLang->getCode(), $optionsHash ); - FeedUtils::checkPurge($timekey, $key); + FeedUtils::checkPurge( $timekey, $key ); /* * Bumping around loading up diffs can be pretty slow, so where @@ -102,7 +101,8 @@ class ChangesFeed { * @return feed's content on cache hit or false on cache miss */ public function loadFromCache( $lastmod, $timekey, $key ) { - global $wgFeedCacheTimeout, $messageMemc; + global $wgFeedCacheTimeout, $wgOut, $messageMemc; + $feedLastmod = $messageMemc->get( $timekey ); if( ( $wgFeedCacheTimeout > 0 ) && $feedLastmod ) { @@ -119,6 +119,9 @@ class ChangesFeed { if( $feedAge < $wgFeedCacheTimeout || $feedLastmodUnix > $lastmodUnix) { wfDebug( "RC: loading feed from cache ($key; $feedLastmod; $lastmod)...\n" ); + if ( $feedLastmodUnix < $lastmodUnix ) { + $wgOut->setLastModified( $feedLastmod ); // bug 21916 + } return $messageMemc->get( $key ); } else { wfDebug( "RC: cached feed timestamp check failed ($feedLastmod; $lastmod)\n" ); -- cgit v1.2.3-54-g00ecf