The code at line 374:
list ( $node, $port ) = explode(‘:’, $server);
splits the string ‘unix:///tmp/memcached.socket:0’ into ‘unix’ and ‘///tmp/memcached.socket:0’
It then compares ‘///tmp/memcached.socket:0’ to a numerical port number (which is not true) and so sets the port to ‘11211’ and then tries to connect to ‘unix:11211’, which fails.
🙁
The revised code here:
list ( $host, $node, $port ) = explode(‘:’, $server);
if ( $host == “unix” )
{ $node = “unix:” . $node; }
else
{ $port = $node;
$node = $host; }
fixes it for socket connections to Memcache.
TCP connections to Memcache should remain unaffected – but I haven’t tested that.