protected static function attempt_phoromatic_server_auto_discover(&$phoromatic_servers) { foreach ($phoromatic_servers as &$archived_server) { pts_client::$pts_logger && pts_client::$pts_logger->log('Attempting to auto-discover Phoromatic Server on: ' . $archived_server['ip'] . ': ' . $archived_server['http_port']); $server_response = phoromatic::upload_to_remote_server(array('r' => 'ping'), $archived_server['ip'], $archived_server['http_port']); $server_response = json_decode($server_response, true); if ($server_response && isset($server_response['phoromatic']['account_id'])) { self::$server_address = $archived_server['ip']; self::$server_http_port = $archived_server['http_port']; self::$account_id = $server_response['phoromatic']['account_id']; return true; } } return false; }