From bd0551b22076b82a6d49e9f7a2b2e0c90a1b2326 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 05 Feb 2016 07:25:27 -0500 Subject: [PATCH] Secure also downloads of addressbook exports, managesieve script exports and Enigma keys exports --- program/lib/Roundcube/rcube_db.php | 20 ++++++++++++++------ 1 files changed, 14 insertions(+), 6 deletions(-) diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php index 4ccc59b..ba3acf6 100644 --- a/program/lib/Roundcube/rcube_db.php +++ b/program/lib/Roundcube/rcube_db.php @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | This file is part of the Roundcube Webmail client | | Copyright (C) 2005-2012, The Roundcube Dev Team | @@ -148,10 +148,6 @@ // Get database specific connection options $dsn_string = $this->dsn_string($dsn); $dsn_options = $this->dsn_options($dsn); - - if ($this->db_pconn) { - $dsn_options[PDO::ATTR_PERSISTENT] = true; - } // Connect try { @@ -1187,7 +1183,7 @@ } // process the different protocol options - $parsed['protocol'] = (!empty($proto)) ? $proto : 'tcp'; + $parsed['protocol'] = $proto ?: 'tcp'; $proto_opts = rawurldecode($proto_opts); if (strpos($proto_opts, ':') !== false) { list($proto_opts, $parsed['port']) = explode(':', $proto_opts); @@ -1271,6 +1267,18 @@ { $result = array(); + if ($this->db_pconn) { + $result[PDO::ATTR_PERSISTENT] = true; + } + + if (!empty($dsn['prefetch'])) { + $result[PDO::ATTR_PREFETCH] = (int) $dsn['prefetch']; + } + + if (!empty($dsn['timeout'])) { + $result[PDO::ATTR_TIMEOUT] = (int) $dsn['timeout']; + } + return $result; } -- Gitblit v1.9.1