From aec1333faab59d5de487ecee0da059449e9c21fd Mon Sep 17 00:00:00 2001
From: horfic <horfic@ispconfig3>
Date: Mon, 10 Jan 2011 08:29:51 -0500
Subject: [PATCH] *) Changed remote function sites_web_domain_add to allow readonly website to be created *) Forgot to add the entries for mailman in the main.cf of postfix

---
 interface/lib/classes/session.inc.php |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php
index 11224c8..34dfaa5 100644
--- a/interface/lib/classes/session.inc.php
+++ b/interface/lib/classes/session.inc.php
@@ -42,7 +42,8 @@
 	}
 	
 	function close () {
-		if (!empty($this->fieldarray)) {
+
+		if (!empty($this->session_array)) {
             $result = $this->gc(ini_get('session.gc_maxlifetime'));
             return $result;
         }
@@ -66,6 +67,15 @@
 		if (!empty($this->session_array) && $this->session_array['session_id'] != $session_id) {
             $this->session_array = array();
         }
+		
+		// Dont write session_data to DB if session data has not been changed after reading it.
+		if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) {
+			$session_id   = $this->db->quote($session_id);
+			$last_updated = date('Y-m-d H:i:s');
+            $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'");
+			return true;
+		}
+		
 
         if ($this->session_array['session_id'] == '') {
 			$session_id   = $this->db->quote($session_id);
@@ -74,19 +84,21 @@
             $session_data = $this->db->quote($session_data);
 			$sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data) VALUES ('$session_id','$date_created','$last_updated','$session_data')";
 			$this->db->query($sql);
+
         } else {
             $session_id   = $this->db->quote($session_id);
 			$last_updated = date('Y-m-d H:i:s');
             $session_data = $this->db->quote($session_data);
             $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data' WHERE session_id = '$session_id'";
 			$this->db->query($sql);
+
         }
 		
         return true;
     }
 	
 	function destroy ($session_id) {
-		
+
 		$session_id   = $this->db->quote($session_id);
 		$sql = "DELETE FROM sys_session WHERE session_id = '$session_id'";
 		$this->db->query($sql);
@@ -95,7 +107,7 @@
     }
 	
 	function gc ($max_lifetime) {
-		
+
 		$real_now = date('Y-m-d H:i:s');
         $dt1 = strtotime("$real_now -$max_lifetime seconds");
         $dt2 = date('Y-m-d H:i:s', $dt1);
@@ -106,11 +118,12 @@
         return true;
         
     }
-	
+
 	function __destruct () {
         @session_write_close();
 
-    }		
+    }
+
 }
 
 ?>
\ No newline at end of file

--
Gitblit v1.9.1