From 88559338da630f5afe2c95c543f5e06608ddc268 Mon Sep 17 00:00:00 2001 From: (d)oekia <doekia@gmail.com> Date: Tue, 26 May 2015 17:10:49 -0400 Subject: [PATCH] postfix plugins should not corrupt settings "other" settings fixes also some misconfiguration under some circonstances --- server/lib/classes/db_mysql.inc.php | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 51d5467..a7b8791 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -36,6 +36,7 @@ private $_iConnId; private $dbHost = ''; // hostname of the MySQL server + private $dbPort = ''; // port of the MySQL server private $dbName = ''; // logical database name on that server private $dbUser = ''; // database authorized user private $dbPass = ''; // user's password @@ -54,17 +55,20 @@ private $autoCommit = 1; // Autocommit Transactions private $currentRow; // current row number public $errorNumber = 0; // last error number + */ public $errorMessage = ''; // last error message + /* private $errorLocation = '';// last error location private $isConnected = false; // needed to know if we have a valid mysqli object from the constructor //// */ // constructor - public function __construct($host = NULL , $user = NULL, $pass = NULL, $database = NULL) { + public function __construct($host = NULL , $user = NULL, $pass = NULL, $database = NULL, $port = NULL) { global $app, $conf; $this->dbHost = $host ? $host : $conf['db_host']; + $this->dbPort = $port ? $port : $conf['db_port']; $this->dbName = $database ? $database : $conf['db_database']; $this->dbUser = $user ? $user : $conf['db_user']; $this->dbPass = $pass ? $pass : $conf['db_password']; @@ -72,13 +76,13 @@ $this->dbNewLink = $conf['db_new_link']; $this->dbClientFlags = $conf['db_client_flags']; - $this->_iConnId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass); + $this->_iConnId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, '', (int)$this->dbPort); $try = 0; while((!is_object($this->_iConnId) || mysqli_connect_error()) && $try < 5) { if($try > 0) sleep(1); $try++; - $this->_iConnId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass); + $this->_iConnId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, '', (int)$this->dbPort); } if(!is_object($this->_iConnId) || mysqli_connect_error()) { @@ -132,8 +136,10 @@ if($iPos2 !== false && ($iPos === false || $iPos2 <= $iPos)) { $sTxt = $this->escape($sValue); - if(strpos($sTxt, '.') !== false) $sTxt = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $sTxt); - else $sTxt = '`' . $sTxt . '`'; + if(strpos($sTxt, '.') !== false) { + $sTxt = preg_replace('/^(.+)\.(.+)$/', '`$1`.`$2`', $sTxt); + $sTxt = str_replace('.`*`', '.*', $sTxt); + } else $sTxt = '`' . $sTxt . '`'; $sQuery = substr_replace($sQuery, $sTxt, $iPos2, 2); $iPos2 += strlen($sTxt); @@ -191,7 +197,7 @@ $try++; $ok = mysqli_ping($this->_iConnId); if(!$ok) { - if(!mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName)) { + if(!mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort)) { if($this->errorNumber == '111') { // server is not available if($try > 9) { @@ -463,6 +469,7 @@ $mysql_error = (is_object($this->_iConnId) ? mysqli_error($this->_iConnId) : mysqli_connect_error()); $mysql_errno = (is_object($this->_iConnId) ? mysqli_errno($this->_iConnId) : mysqli_connect_errno()); + $this->errorMessage = $mysql_error; //$sAddMsg .= getDebugBacktrace(); -- Gitblit v1.9.1