$target = $specialPage->getRedirect( $subpage );
// target can also be true. We let that case fall through to normal processing.
if ( $target instanceof Title ) {
- $query = $specialPage->getRedirectQuery() ?: [];
+ $query = $specialPage->getRedirectQuery( $subpage ) ?: [];
$request = new DerivativeRequest( $this->context->getRequest(), $query );
$request->setRequestURL( $this->context->getRequest()->getRequestURL() );
$this->context->setRequest( $request );
if ( $request->getVal( 'action', 'view' ) != 'view'
|| $request->wasPosted()
- || ( $request->getVal( 'title' ) !== null
+ || ( $request->getCheck( 'title' )
&& $title->getPrefixedDBkey() == $request->getVal( 'title' ) )
|| count( $request->getValueNames( [ 'action', 'title' ] ) )
|| !Hooks::run( 'TestCanonicalRedirect', [ $request, $title, $output ] )
if ( !$ignoreRedirect && ( $target || $page->isRedirect() ) ) {
// Is the target already set by an extension?
$target = $target ?: $page->followRedirect();
- if ( is_string( $target ) ) {
- if ( !$this->config->get( 'DisableHardRedirects' ) ) {
- // we'll need to redirect
- return $target;
- }
+ if ( is_string( $target ) && !$this->config->get( 'DisableHardRedirects' ) ) {
+ // we'll need to redirect
+ return $target;
}
if ( is_object( $target ) ) {
// Rewrite environment to redirected article
}
# Let CDN cache things if we can purge them.
- if ( $this->config->get( 'UseSquid' ) &&
+ if ( $this->config->get( 'UseCdn' ) &&
in_array(
// Use PROTO_INTERNAL because that's what getCdnUrls() uses
wfExpandUrl( $request->getRequestURL(), PROTO_INTERNAL ),
$requestTitle->getCdnUrls()
)
) {
- $output->setCdnMaxage( $this->config->get( 'SquidMaxage' ) );
+ $output->setCdnMaxage( $this->config->get( 'CdnMaxAge' ) );
}
$action->show();
wfDebug( __METHOD__ . ': primary transaction round committed' );
// Run updates that need to block the user or affect output (this is the last chance)
- DeferredUpdates::doUpdates( 'enqueue', DeferredUpdates::PRESEND );
+ DeferredUpdates::doUpdates( 'run', DeferredUpdates::PRESEND );
wfDebug( __METHOD__ . ': pre-send deferred updates completed' );
// T214471: persist the session to avoid race conditions on subsequent requests
$request->getSession()->save();
) {
if ( $config->get( 'StatsdServer' ) && $stats->hasData() ) {
try {
- $statsdServer = explode( ':', $config->get( 'StatsdServer' ) );
+ $statsdServer = explode( ':', $config->get( 'StatsdServer' ), 2 );
$statsdHost = $statsdServer[0];
$statsdPort = $statsdServer[1] ?? 8125;
$statsdSender = new SocketSender( $statsdHost, $statsdPort );