Displaying search results for multiple wikis
[lhc/web/wiklou.git] / includes / Block.php
index c5a16fc..5dee23e 100644 (file)
@@ -452,7 +452,7 @@ class Block {
         * Insert a block into the block table. Will fail if there is a conflicting
         * block (same name and options) already in the database.
         *
-        * @param DatabaseBase $dbw If you have one available
+        * @param IDatabase $dbw If you have one available
         * @return bool|array False on failure, assoc array on success:
         *      ('id' => block ID, 'autoIds' => array of autoblock IDs)
         */
@@ -556,7 +556,7 @@ class Block {
 
        /**
         * Get an array suitable for passing to $dbw->insert() or $dbw->update()
-        * @param DatabaseBase $db
+        * @param IDatabase $db
         * @return array
         */
        protected function getDatabaseArray( $db = null ) {
@@ -679,16 +679,17 @@ class Block {
         * @return bool
         */
        public static function isWhitelistedFromAutoblocks( $ip ) {
-               global $wgMemc;
-
                // Try to get the autoblock_whitelist from the cache, as it's faster
                // than getting the msg raw and explode()'ing it.
-               $key = wfMemcKey( 'ipb', 'autoblock', 'whitelist' );
-               $lines = $wgMemc->get( $key );
-               if ( !$lines ) {
-                       $lines = explode( "\n", wfMessage( 'autoblock_whitelist' )->inContentLanguage()->plain() );
-                       $wgMemc->set( $key, $lines, 3600 * 24 );
-               }
+
+               $lines = ObjectCache::getMainWANInstance()->getWithSetCallback(
+                       wfMemcKey( 'ipb', 'autoblock', 'whitelist' ),
+                       86400,
+                       function () {
+                               return explode( "\n",
+                                       wfMessage( 'autoblock_whitelist' )->inContentLanguage()->plain() );
+                       }
+               );
 
                wfDebug( "Checking the autoblock whitelist..\n" );