jenkins-bot has submitted this change and it was merged. Change subject: Better logging, simplify getWikiInfo ......................................................................
Better logging, simplify getWikiInfo * getWikiInfo() now always includes cluster domain * protocol is included in zero.log * better opera-related slot error reporting Change-Id: I99311c59175f778e92bab242e87a343d27ec518a --- M includes/PageRendering.php M includes/ZeroSpecialPage.php 2 files changed, 25 insertions(+), 19 deletions(-) Approvals: Yurik: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/PageRendering.php b/includes/PageRendering.php index 87e43d5..a1ce08d 100644 --- a/includes/PageRendering.php +++ b/includes/PageRendering.php @@ -609,13 +609,12 @@ private $config = false; /** - * @param bool $includeClusterDomain if true, includes "org" as the last value - * @return array with three values - language code (en), subdomain (m), and site (wikipedia) + * @return array with three values - language code (en), subdomain (m), site (wikipedia), cluster domain (org) */ - public function getWikiInfo( $includeClusterDomain = false ) { + public function getWikiInfo() { static $info = null; if ( $info === null ) { - global $wgConf, $wgDBname; + global $wgConf, $wgDBname, $wgZeroBannerClusterDomain; list( $site, $langCode ) = $wgConf->siteFromDB( $wgDBname ); if ( $langCode === '' || $langCode === 'test' ) { $langCode = 'en'; // Useful for debugging, should never be the case in production @@ -623,14 +622,10 @@ if ( !$site ) { $site = 'wikipedia'; } - $info = array( $langCode, $this->isZeroSubdomain ? 'zero' : 'm', $site ); + $subdomain = $this->isZeroSubdomain ? 'zero' : 'm'; + $info = array( $langCode, $subdomain, $site, $wgZeroBannerClusterDomain ); } - $result = $info; - if ( $includeClusterDomain ) { - global $wgZeroBannerClusterDomain; - $result[] = $wgZeroBannerClusterDomain; - } - return $result; + return $info; } /** @@ -797,7 +792,7 @@ * @return string */ public function getStartPageUrl( $langCode = null, $flags = 0 ) { - $info = $this->getWikiInfo( true ); + $info = $this->getWikiInfo(); if ( $langCode !== null ) { $info[0] = $langCode; } @@ -898,10 +893,11 @@ array_walk( $dbg, function ( & $v, $k ) { $v = is_string( $k ) ? $k . '=' . FormatJson::encode( $v ) : $v; } ); } else { - $dbg = (array) $dbg; + $dbg = (array)$dbg; $dbg[] = $request->getIP(); } - $dbg[] = implode( '.', $this->getWikiInfo( true ) ); + $host = implode( '.', $this->getWikiInfo() ); + $dbg[] = ( $request->getHeader( 'X-Forwarded-Proto' ) ?: 'http' ) . '://' . $host; $dbg[] = $request->getRawQueryString(); $dbg = implode( "\t", $dbg ); @@ -1026,8 +1022,18 @@ $forwardedByOpera = $req->getHeader( 'X-Forwarded-By' ) === 'Opera'; $slot = $req->getHeader( 'X-OPERAMINI-ROUTE' ); if ( !$forwardedByOpera && $slot ) { - // Opera has marked it with a slot, but we didn't recognize it as opera traffic - $warn['not-opera-slot'] = $req->getHeader( 'X-Forwarded-For' ); + if ( $req->getHeader( 'X-Forwarded-By2' ) === 'Opera' ) { + if ( $configId2 ) { + // Opera traffic, and opera has marked it with a slot, but we are not marking as zero + $warn['opera-slot-not-zero'] = $configId2; + } else { + // Opera traffic, and opera has marked it with a slot, but we don't know who this is + $warn['opera-slot-unknown'] = $req->getHeader( 'X-Forwarded-For' ); + } + } else { + // Opera has marked it with a slot, but we didn't recognize it as opera traffic + $warn['not-opera-slot2'] = $req->getHeader( 'X-Forwarded-For' ); + } } elseif ( $forwardedByOpera ) { if ( !$slot && $isZeroTraffic ) { // We think it has been zero-rated, but opera has not marked it with a slot diff --git a/includes/ZeroSpecialPage.php b/includes/ZeroSpecialPage.php index ed40d9a..516b905 100644 --- a/includes/ZeroSpecialPage.php +++ b/includes/ZeroSpecialPage.php @@ -7,7 +7,6 @@ use MobileContext; use WebRequest; use Xml; -use ZeroBanner\PageRendering; /** * Default startup page for ZeroBanner extension that shows the list of available languages. @@ -212,6 +211,7 @@ $hrTag = Html::element( 'hr' ); $config = $state->getZeroConfig(); + /** @var \SkinMinerva $skin - Assuming this is a mobile skin */ $skin = $this->getContext()->getSkin(); $dir = $skin->getLanguage()->isRTL() ? 'rtl' : 'ltr'; $lang = $skin->getLanguage()->getCode(); @@ -338,7 +338,7 @@ $this->getOutput()->enableClientCache( false ); $req = $this->getRequest(); - $host = implode( '.', $state->getWikiInfo( true ) ); + $host = implode( '.', $state->getWikiInfo() ); $bannerText = $this->msg( 'zero-sorry', $host )->text() . '<br />'; $ip = $req->getIP(); @@ -447,7 +447,7 @@ $banner = self::createImageBanner( $config->background(), $config->foreground(), $text ); $errors = !$banner; } elseif ( $state->isZeroSubdomain() ) { - $host = implode( '.', $state->getWikiInfo( true ) ); + $host = implode( '.', $state->getWikiInfo() ); $bannerText = $this->msg( 'zero-sorry', $host )->text() . "\n\n"; $ip = $request->getIP(); -- To view, visit https://gerrit.wikimedia.org/r/148907 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I99311c59175f778e92bab242e87a343d27ec518a Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/extensions/ZeroBanner Gerrit-Branch: master Gerrit-Owner: Yurik <yu...@wikimedia.org> Gerrit-Reviewer: Dr0ptp4kt <ab...@wikimedia.org> Gerrit-Reviewer: Yurik <yu...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits