From de8bb68325674863d621bbe693b343349228e52d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Jul 2016 11:44:15 +0200 Subject: [PATCH] revert to old setup connection logic --- lib/private/Setup/AbstractDatabase.php | 36 +++++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php index 65f6a8c5b7c..310f74d4c0c 100644 --- a/lib/private/Setup/AbstractDatabase.php +++ b/lib/private/Setup/AbstractDatabase.php @@ -108,18 +108,34 @@ abstract class AbstractDatabase { * @return \OC\DB\Connection */ protected function connect(array $configOverwrite = []) { - $systemConfig = $this->config->getSystemConfig(); - $cf = new ConnectionFactory(); - $connectionParams = $cf->createConnectionParams($systemConfig); - // we don't save username/password to the config immediately so this might not be set - if (!$connectionParams['user']) { - $connectionParams['user'] = $this->dbUser; - } - if (!$connectionParams['password']) { - $connectionParams['password'] = $this->dbPassword; + $connectionParams = array( + 'host' => $this->dbHost, + 'user' => $this->dbUser, + 'password' => $this->dbPassword, + 'tablePrefix' => $this->tablePrefix, + ); + + // adding port support through installer + if (!empty($this->dbPort)) { + if (ctype_digit($this->dbPort)) { + $connectionParams['port'] = $this->dbPort; + } else { + $connectionParams['unix_socket'] = $this->dbPort; + } + } else if (strpos($this->dbHost, ':')) { + // Host variable may carry a port or socket. + list($host, $portOrSocket) = explode(':', $this->dbHost, 2); + if (ctype_digit($portOrSocket)) { + $connectionParams['port'] = $portOrSocket; + } else { + $connectionParams['unix_socket'] = $portOrSocket; + } + $connectionParams['host'] = $host; } + $connectionParams = array_merge($connectionParams, $configOverwrite); - return $cf->getConnection($systemConfig->getValue('dbtype', 'sqlite'), $connectionParams); + $cf = new ConnectionFactory(); + return $cf->getConnection($this->config->getSystemValue('dbtype', 'sqlite'), $connectionParams); } /** -- 2.39.5