From 0f1bc4bf0351dd8b284c7b4b69d350e61164b138 Mon Sep 17 00:00:00 2001 From: svncommit <devs@roundcube.net> Date: Sun, 02 Oct 2005 11:01:44 -0400 Subject: [PATCH] --- program/include/rcube_db.inc | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-) diff --git a/program/include/rcube_db.inc b/program/include/rcube_db.inc index f4dc222..87cb869 100755 --- a/program/include/rcube_db.inc +++ b/program/include/rcube_db.inc @@ -51,7 +51,9 @@ // Connect to specific database function dsn_connect($dsn) { - $dbh = DB::connect($dsn); + // Use persistent connections if available + + $dbh = DB::connect($dsn, array('persistent' => $true)); if (DB::isError($dbh)) raise_error(array('code' => 500, @@ -65,10 +67,20 @@ // Connect to appropiate databse function db_connect ($mode) { - if ($this->db_connected && $this->db_mode=='w') return; + // Already connected + + if ($this->db_connected) + { + // no replication, current connection is ok + if ($this->db_dsnw==$this->db_dsnr) return; + + // connected to master, current connection is ok + if ($this->db_mode=='w') return; - if ($this->db_connected && $this->db_mode==$mode) return; - + // Same mode, current connection is ok + if ($this->db_mode==$mode) return; + } + if ($mode=='r') $dsn=$this->db_dsnr; else -- Gitblit v1.9.1