diff --git a/lib/SimpleSAML/Memcache.php b/lib/SimpleSAML/Memcache.php index 94c439c7694d3b536db0319b7f57a67e810721ad..d6f1e51622ec45430bf2233231b8a3fd1e42cbac 100644 --- a/lib/SimpleSAML/Memcache.php +++ b/lib/SimpleSAML/Memcache.php @@ -207,8 +207,17 @@ class SimpleSAML_Memcache ); } + // check if we are told to use a socket + $socket = false; + if (strpos($hostname, 'unix:///') === 0) { + $socket = true; + } + // check if the user has specified a port number - if (array_key_exists('port', $server)) { + if ($socket) { + // force port to be 0 for sockets + $port = 0; + } elseif (array_key_exists('port', $server)) { // get the port number from the array, and validate it $port = (int) $server['port']; if (($port <= 0) || ($port > 65535)) {