diff options
author | Morris Jobke <hey@morrisjobke.de> | 2016-07-27 10:02:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-27 10:02:39 +0200 |
commit | 72ae7520d78f3459613f223f50eff56cd87e3387 (patch) | |
tree | 2c2c7fe97e6871503664073f290c5e8010a475ce | |
parent | 95a0714973b4b6b95658c2904a0de7ba93c8eab9 (diff) | |
parent | 0e83f5dbd78600ea5595862c5a215b734166c888 (diff) | |
download | nextcloud-server-72ae7520d78f3459613f223f50eff56cd87e3387.tar.gz nextcloud-server-72ae7520d78f3459613f223f50eff56cd87e3387.zip |
Merge pull request #566 from nextcloud/setup-port
revert to old setup connection logic
-rw-r--r-- | lib/private/Setup/AbstractDatabase.php | 36 |
1 files 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); } /** |