diff options
Diffstat (limited to 'phpBB/includes/db/postgres.php')
| -rw-r--r-- | phpBB/includes/db/postgres.php | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php index b3139b3d79..4360c790a1 100644 --- a/phpBB/includes/db/postgres.php +++ b/phpBB/includes/db/postgres.php @@ -46,7 +46,10 @@ class dbal_postgres extends dbal  		if ($sqlserver)  		{ -			if (strpos($sqlserver, ':') !== false) +			// $sqlserver can carry a port separated by : for compatibility reasons +			// If $sqlserver has more than one : it's probably an IPv6 address. +			// In this case we only allow passing a port via the $port variable. +			if (substr_count($sqlserver, ':') === 1)  			{  				list($sqlserver, $port) = explode(':', $sqlserver);  			} @@ -105,13 +108,14 @@ class dbal_postgres extends dbal  	/**  	* Version information about used database  	* @param bool $raw if true, only return the fetched sql_server_version +	* @param bool $use_cache If true, it is safe to retrieve the value from the cache  	* @return string sql server version  	*/ -	function sql_server_info($raw = false) +	function sql_server_info($raw = false, $use_cache = true)  	{  		global $cache; -		if (empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false) +		if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('pgsql_version')) === false)  		{  			$query_id = @pg_query($this->db_connect_id, 'SELECT VERSION() AS version');  			$row = @pg_fetch_assoc($query_id, null); @@ -119,7 +123,7 @@ class dbal_postgres extends dbal  			$this->sql_server_version = (!empty($row['version'])) ? trim(substr($row['version'], 10)) : 0; -			if (!empty($cache)) +			if (!empty($cache) && $use_cache)  			{  				$cache->put('pgsql_version', $this->sql_server_version);  			} | 
