From e77c9bb97ed56d30c08f7d7ea9c06dd80ac9467b Mon Sep 17 00:00:00 2001 From: josh4trunks <joshruehlig@gmail.com> Date: Wed, 4 Jun 2014 22:50:23 -0700 Subject: [PATCH] Work with MySQL Sockets This passes anything that is not a valid port (0<int<65535) as a unix socket. I tested this with unix sockets; this needs to be tested with a non-standard mysql port as well but I don't foresee any issues. To use a unix socket, even one different than PHP's mysql.default_socket.. * Database Host = localhost:/path/to/socket --- lib/private/db.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/private/db.php b/lib/private/db.php index 422f783c745..16030a20f89 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -65,6 +65,9 @@ class OC_DB { $type = OC_Config::getValue( "dbtype", "sqlite" ); if(strpos($host, ':')) { list($host, $port)=explode(':', $host, 2); + if(!is_int($port)||$port<1||$port>65535) { + $socket=true; + } } else { $port=false; } @@ -89,7 +92,11 @@ class OC_DB { 'dbname' => $name, ); if (!empty($port)) { - $connectionParams['port'] = $port; + if ($socket) { + $connectionParams['unix_socket'] = $port; + } else { + $connectionParams['port'] = $port; + } } } -- GitLab