Martineznovo has uploaded a new change for review.
https://gerrit.wikimedia.org/r/136638
Change subject: Make MySQLi work with non-standard socket
......................................................................
Make MySQLi work with non-standard socket
MySQLi needs to specify the socket location as a parameter, and not as part
of the hostname.
Split the socket out of the hostname if it contains *one* colon (IPv6 safe)
after checking for the port number.
Bug: 65998
Change-Id: I66ee34e1029bc1630669bde4272d0eae9d3fd9f1
---
M includes/db/DatabaseMysqli.php
1 file changed, 10 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/38/136638/1
diff --git a/includes/db/DatabaseMysqli.php b/includes/db/DatabaseMysqli.php
index 8c9b06c..7c55a45 100644
--- a/includes/db/DatabaseMysqli.php
+++ b/includes/db/DatabaseMysqli.php
@@ -58,14 +58,22 @@
}
// Other than mysql_connect, mysqli_real_connect expects an
explicit port
- // parameter. So we need to parse the port out of $realServer
+ // and socket parameters. So we need to parse the port and
socket out of
+ // $realServer
$port = null;
+ $socket = null;
$hostAndPort = IP::splitHostAndPort( $realServer );
if ( $hostAndPort ) {
$realServer = $hostAndPort[0];
if ( $hostAndPort[1] ) {
$port = $hostAndPort[1];
}
+ } else if ( substr_count( $realServer, ':' ) == 1 ) {
+ // If we have a colon and something that's not a port
number
+ // inside the hostname, assume it's the socket location
+ $hostAndSocket = explode( ':', $realServer );
+ $realServer = $hostAndSocket[0];
+ $socket = $hostAndSocket[1];
}
$connFlags = 0;
@@ -94,7 +102,7 @@
usleep( 1000 );
}
if ( $mysqli->real_connect( $realServer, $this->mUser,
- $this->mPassword, $this->mDBname, $port, null,
$connFlags )
+ $this->mPassword, $this->mDBname, $port,
$socket, $connFlags )
) {
return $mysqli;
}
--
To view, visit https://gerrit.wikimedia.org/r/136638
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I66ee34e1029bc1630669bde4272d0eae9d3fd9f1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Martineznovo <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits