Commit dcad74e4 authored by Sam Hemelryk's avatar Sam Hemelryk
Browse files

Merge branch 'MDL-25910_20_wip_mysqlsocket' of git://github.com/skodak/moodle

parents e5654cad 3c1293fe
......@@ -50,9 +50,12 @@ $CFG->dboptions = array(
// used? set to 'false' for the most stable
// setting, 'true' can improve performance
// sometimes
'dbsocket' => false, // should connection via UNIX socket be
// used? if you set it to 'true' here,
// set dbhost to 'localhost'
'dbsocket' => false, // should connection via UNIX socket be used?
// if you set it to 'true' or custom path
// here set dbhost to 'localhost',
// (please note mysql is always using socket
// if dbhost is 'localhost' - if you need
// local port connection use '127.0.0.1')
'dbport' => '', // the TCP port number to use when connecting
// to the server. keep empty string for the
// default port
......
......@@ -264,15 +264,21 @@ class mysqli_native_moodle_database extends moodle_database {
}
$this->store_settings($dbhost, $dbuser, $dbpass, $dbname, $prefix, $dboptions);
unset($this->dboptions['dbsocket']);
// dbsocket is used ONLY if host is NULL or 'localhost',
// you can not disable it because it is always tried if dbhost is 'localhost'
if (!empty($this->dboptions['dbsocket']) and strpos($this->dboptions['dbsocket'], '/') !== false) {
$dbsocket = $this->dboptions['dbsocket'];
} else {
$dbsocket = ini_get('mysqli.default_socket');
}
if (empty($this->dboptions['dbport'])) {
$dbport = ini_get('mysqli.default_port');
} else {
$dbport = (int)$this->dboptions['dbport'];
}
ob_start();
$this->mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport);
$this->mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport, $dbsocket);
$dberr = ob_get_contents();
ob_end_clean();
$errorno = @$this->mysqli->connect_errno;
......
......@@ -138,8 +138,11 @@ class pgsql_native_moodle_database extends moodle_database {
// Unix socket connections should have lower overhead
if (!empty($this->dboptions['dbsocket']) and ($this->dbhost === 'localhost' or $this->dbhost === '127.0.0.1')) {
$connection = "user='$this->dbuser' password='$pass' dbname='$this->dbname'";
if (strpos($this->dboptions['dbsocket'], '/') !== false) {
$connection = $connection." host='".$this->dboptions['dbsocket']."'";
}
} else {
$this->dboptions['dbsocket'] = 0;
$this->dboptions['dbsocket'] = '';
if (empty($this->dbname)) {
// probably old style socket connection - do not add port
$port = "";
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment