From 05589cad6b1394ff5248f48ab150a2edef7ccd9a Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 7 Sep 2016 22:47:37 -0700 Subject: [PATCH] Move PECL memcached class to /libs Remove IP class dependency, which is simple enough here Change-Id: I3aed6ae6747d8d2b9e75b492e5d5293ba4ce9edd --- autoload.php | 2 +- .../{ => libs}/objectcache/MemcachedPeclBagOStuff.php | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) rename includes/{ => libs}/objectcache/MemcachedPeclBagOStuff.php (96%) diff --git a/autoload.php b/autoload.php index 71f1809db9..309a7d0b55 100644 --- a/autoload.php +++ b/autoload.php @@ -910,7 +910,7 @@ $wgAutoloadLocalClasses = [ 'MemcLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MemcLockManager.php', 'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php', 'MemcachedClient' => __DIR__ . '/includes/libs/objectcache/MemcachedClient.php', - 'MemcachedPeclBagOStuff' => __DIR__ . '/includes/objectcache/MemcachedPeclBagOStuff.php', + 'MemcachedPeclBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPeclBagOStuff.php', 'MemcachedPhpBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPhpBagOStuff.php', 'MemoizedCallable' => __DIR__ . '/includes/libs/MemoizedCallable.php', 'MemoryFileBackend' => __DIR__ . '/includes/filebackend/MemoryFileBackend.php', diff --git a/includes/objectcache/MemcachedPeclBagOStuff.php b/includes/libs/objectcache/MemcachedPeclBagOStuff.php similarity index 96% rename from includes/objectcache/MemcachedPeclBagOStuff.php rename to includes/libs/objectcache/MemcachedPeclBagOStuff.php index aefda7994c..5983c1b825 100644 --- a/includes/objectcache/MemcachedPeclBagOStuff.php +++ b/includes/libs/objectcache/MemcachedPeclBagOStuff.php @@ -115,7 +115,13 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff { } $servers = []; foreach ( $params['servers'] as $host ) { - $servers[] = IP::splitHostAndPort( $host ); // (ip, port) + if ( preg_match( '/^\[(.+)\]:(\d+)$/', $host, $m ) ) { + $servers[] = [ $m[1], (int)$m[2] ]; // (ip, port) + } elseif ( preg_match( '/^([^:]+):(\d+)$/', $host, $m ) ) { + $servers[] = [ $m[1], (int)$m[2] ]; // (ip or path, port) + } else { + $servers[] = [ $host, false ]; // (ip or path, port) + } } $this->client->addServers( $servers ); } -- 2.20.1