From c6f0a3804dda31ae91cd5cadc1562d841d1fd2cb Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Tue, 14 Aug 2018 18:44:40 -0700 Subject: [PATCH] Make ExternalStoreDB "wiki" context override the server "dbname" field This is all that is needed for b/c and going beyond that can break foreign wiki (domain) external store access if matching per-wiki DB names *are* used for external store. Follow up to 92e4ace7eae61. Bug: T200471 Change-Id: I877139ff659f542da04d4d8f5ef3297dbfcfd734 --- includes/externalstore/ExternalStoreDB.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/includes/externalstore/ExternalStoreDB.php b/includes/externalstore/ExternalStoreDB.php index 6ed5047947..22a2d2bc8e 100644 --- a/includes/externalstore/ExternalStoreDB.php +++ b/includes/externalstore/ExternalStoreDB.php @@ -166,6 +166,10 @@ class ExternalStoreDB extends ExternalStoreMedium { * @return string|bool Database domain ID or false */ private function getDomainId( array $server ) { + if ( isset( $this->params['wiki'] ) ) { + return $this->params['wiki']; // explicit domain + } + if ( isset( $server['dbname'] ) ) { // T200471: for b/c, treat any "dbname" field as forcing which database to use. // MediaWiki/LoadBalancer previously did not enforce any concept of a local DB @@ -181,7 +185,7 @@ class ExternalStoreDB extends ExternalStoreMedium { return $domain->getId(); } - return $this->params['wiki'] ?? false; // local domain unless explictly given + return false; // local LB domain } /** -- 2.20.1