From 578f9dffa607de1da2aa181b49be583f27f3bf28 Mon Sep 17 00:00:00 2001
From: rxu <rxu@mail.ru>
Date: Tue, 21 Jun 2011 00:21:42 +0800
Subject: [PATCH 1/2] [ticket/10226] Allow mysqli connections via local
 sockets/pipes

PHPBB3-10226
---
 phpBB/includes/db/mysqli.php | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php
index dcf8727e18..1901847c0f 100644
--- a/phpBB/includes/db/mysqli.php
+++ b/phpBB/includes/db/mysqli.php
@@ -43,7 +43,23 @@ class dbal_mysqli extends dbal
 		$this->dbname = $database;
 		$port = (!$port) ? NULL : $port;
 
-		$this->db_connect_id = @mysqli_connect($this->server, $this->user, $sqlpassword, $this->dbname, $port);
+		// If port is set and it is not numeric, most likely mysqli socket is set.
+		// Try to map it to the $socket parameter.
+		$socket = NULL;
+		if ($port)
+		{
+			if (preg_match('#^[0-9]+$#', $port))
+			{
+				$port = (int) $port;
+			}
+			else
+			{
+				$socket = $port;
+				$port = NULL;
+			}
+		}
+
+		$this->db_connect_id = @mysqli_connect($this->server, $this->user, $sqlpassword, $this->dbname, $port, $socket);
 
 		if ($this->db_connect_id && $this->dbname != '')
 		{

From 18fb3d86cdac01c2dd1469982a51526fa1480b42 Mon Sep 17 00:00:00 2001
From: rxu <rxu@mail.ru>
Date: Tue, 21 Jun 2011 22:03:19 +0800
Subject: [PATCH 2/2] [ticket/10226] Use is_numeric() instead of preg_replace()

PHPBB3-10226
---
 phpBB/includes/db/mysqli.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php
index 1901847c0f..46c2f9210b 100644
--- a/phpBB/includes/db/mysqli.php
+++ b/phpBB/includes/db/mysqli.php
@@ -48,7 +48,7 @@ class dbal_mysqli extends dbal
 		$socket = NULL;
 		if ($port)
 		{
-			if (preg_match('#^[0-9]+$#', $port))
+			if (is_numeric($port))
 			{
 				$port = (int) $port;
 			}