diff --git a/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php b/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php index 89b1f8126..fda12f778 100644 --- a/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php +++ b/src/Elasticsearch/ConnectionPool/SniffingConnectionPool.php @@ -128,13 +128,13 @@ private function sniffConnection(Connection $connection) private function parseClusterState($transportSchema, $nodeInfo) { - $pattern = '/\/([^:]*):([0-9]+)\]/'; + $pattern = '/([^:]*):([0-9]+)/'; $schemaAddress = $transportSchema . '_address'; $hosts = array(); foreach ($nodeInfo['nodes'] as $node) { - if (isset($node[$schemaAddress]) === true) { - if (preg_match($pattern, $node[$schemaAddress], $match) === 1) { + if (isset($node['http']) === true && isset($node['http']['publish_address']) === true) { + + if (preg_match($pattern, $node['http']['publish_address'], $match) === 1) { $hosts[] = array( 'host' => $match[1], 'port' => (int) $match[2],