From 9c7f615822006ab96870e7967a95d3e6cec62d64 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 03 Jan 2012 06:27:31 -0500
Subject: [PATCH] Fixed: FS#1904 - Traffic quota exceeded message in web does not get away after traffic set to unlimited

---
 server/lib/classes/db_mysql.inc.php |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php
index c2a5a35..3c89c74 100644
--- a/server/lib/classes/db_mysql.inc.php
+++ b/server/lib/classes/db_mysql.inc.php
@@ -33,6 +33,9 @@
 		var $dbName = '';		// logical database name on that server
 		var $dbUser = '';		// database authorized user
 		var $dbPass = '';		// user's password
+		var $dbCharset = 'utf8';// Database charset
+		var $dbNewLink = false; // Return a new linkID when connect is called again
+		var $dbClientFlags = 0; // MySQL Client falgs
 		var $linkId = 0;		// last result of mysql_connect()
 		var $queryId = 0;		// last result of mysql_query()
 		var $record	= array();	// last record fetched
@@ -44,8 +47,7 @@
 		var $show_error_messages = true;
 
 		// constructor
-		function db()
-		{
+		public function __construct() {
 			
 			global $conf;
 			$this->dbHost = $conf['db_host'];
@@ -53,15 +55,21 @@
 			$this->dbUser = $conf['db_user'];
 			$this->dbPass = $conf['db_password'];
 			$this->dbCharset = $conf['db_charset'];
+			$this->dbNewLink = $conf['db_new_link'];
+			$this->dbClientFlags = $conf['db_client_flags'];
 			//$this->connect();
+		}
+		
+		public function __destruct() {
+			$this->closeConn();
 		}
 
 		// error handler
 		function updateError($location)
 		{
 			global $app;
-			$this->errorNumber = mysql_errno($this->linkId);
-			$this->errorMessage = mysql_error($this->linkId);
+			$this->errorNumber = @mysql_errno($this->linkId);
+			$this->errorMessage = @mysql_error($this->linkId);
 			$this->errorLocation = $location;
 			if($this->errorNumber && $this->show_error_messages && method_exists($app,'log'))
 			{
@@ -75,7 +83,7 @@
 		{
 			if($this->linkId == 0)
 			{
-				$this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
+				$this->linkId = @mysql_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbNewLink, $this->dbClientFlags);
 				if(!$this->linkId)
 				{
 					$this->updateError('DB::connect()-> mysql_connect');
@@ -290,7 +298,11 @@
 			//print_r($diff_num);
 			//print_r($diffrec_full);
 			$diffstr = $app->db->quote(serialize($diffrec_full));
-			$username = $app->db->quote($_SESSION['s']['user']['username']);
+			if(isset($_SESSION)) {
+				$username = $app->db->quote($_SESSION['s']['user']['username']);
+			} else {
+				$username = 'admin';
+			}
 			$dbidx = $primary_field.':'.$primary_id;
 						
 			if($action == 'INSERT') $action = 'i';
@@ -462,7 +474,7 @@
        return $this->query($sql);
        }
        
-       // gibt Array mit Tabellennamen zur�ck
+       // gibt Array mit Tabellennamen zur�ck
        function getTables($database_name = '') {
 	   	
 			if($database_name == '') $database_name = $this->dbName;
@@ -473,7 +485,7 @@
             return $tb_names;       
        }
        
-       // gibt Feldinformationen zur Tabelle zur�ck
+       // gibt Feldinformationen zur Tabelle zur�ck
        /*
        $columns = array(action =>   add | alter | drop
                         name =>     Spaltenname

--
Gitblit v1.9.1