From 66c3bc24f069a2854bdf1eeebb6dcb51f6ef0afb Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 28 Oct 2009 14:30:28 -0400
Subject: [PATCH] Implemented: FS#757 - Add "custom" option to transports

---
 server/cron_daily.php |   72 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 14 deletions(-)

diff --git a/server/cron_daily.php b/server/cron_daily.php
index 88caab9..80f4158 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -48,13 +48,13 @@
 $sql = "SELECT mailuser_id,maildir FROM mail_user WHERE server_id = ".$conf["server_id"];
 $records = $app->db->queryAllRecords($sql);
 foreach($records as $rec) {
-	if(@is_file($rec["maildir"].'/.ispconfig_mailsize')) {
+	if(@is_file($rec["maildir"].'/ispconfig_mailsize')) {
 		
 		// rename file
-		rename($rec["maildir"].'/.ispconfig_mailsize',$rec["maildir"].'/.ispconfig_mailsize_save');
+		rename($rec["maildir"].'/ispconfig_mailsize',$rec["maildir"].'/ispconfig_mailsize_save');
 		
 		// Read the file
-		$lines = file($rec["maildir"].'/.ispconfig_mailsize_save');
+		$lines = file($rec["maildir"].'/ispconfig_mailsize_save');
 		$mail_traffic = 0;
 		foreach($lines as $line) {
 			$mail_traffic += intval($line);
@@ -62,13 +62,13 @@
 		unset($lines);
 		
 		// Delete backup file
-		if(@is_file($rec["maildir"].'/.ispconfig_mailsize_save')) unlink($rec["maildir"].'/.ispconfig_mailsize_save');
+		if(@is_file($rec["maildir"].'/ispconfig_mailsize_save')) unlink($rec["maildir"].'/ispconfig_mailsize_save');
 		
 		// Save the traffic stats in the sql database
 		$tstamp = date("Y-m");
 		
 		$sql = "SELECT * FROM mail_traffic WHERE month = '$tstamp' AND mailuser_id = ".$rec["mailuser_id"];
-		$tr = $app->db->queryOneRecord($sql);
+		$tr = $app->dbmaster->queryOneRecord($sql);
 		
 		$mail_traffic += $tr["traffic"];
 		if($tr["traffic_id"] > 0) {
@@ -76,7 +76,7 @@
 		} else {
 			$sql = "INSERT INTO mail_traffic (month,mailuser_id,traffic) VALUES ('$tstamp',".$rec["mailuser_id"].",$mail_traffic)";
 		}
-		$app->db->query($sql);
+		$app->dbmaster->query($sql);
 		echo $sql;
 		
 	}
@@ -87,20 +87,63 @@
 // Create webalizer statistics
 #######################################################################################################
 
+function setConfigVar( $filename, $varName, $varValue ) {
+	if($lines = @file($filename)) {
+		$out = '';
+		$found = 0;
+		foreach($lines as $line) {
+			list($key, $value) = split("[\t= ]+", $line, 2);
+			if($key == $varName) {
+				$out .= $varName." ".$varValue."\n";
+				$found = 1;
+			} else {
+				$out .= $line;
+			}
+		}
+		if($found == 0) {
+			//* add \n if the last line does not end with \n or \r
+			if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
+			//* add the new line at the end of the file
+			if($append == 1) $out .= $varName." ".$varValue."\n";
+		}
+
+		file_put_contents($filename,$out);
+	}
+}
+
 
 $sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf["server_id"];
 $records = $app->db->queryAllRecords($sql);
+
 foreach($records as $rec) {
 	$yesterday = date("Ymd",time() - 86400);
 	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log');
-	if(@is_file($logfile)) {
-		$domain = escapeshellcmd($rec["domain"]);
-		$statsdir = escapeshellcmd($rec["document_root"].'/web/stats');
-		$webalizer = '/usr/bin/webalizer';
-		$webalizer_conf = '/etc/webalizer/webalizer.conf';
-		if(!@is_dir($statsdir)) mkdir($statsdir);
-		exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -o $statsdir $logfile");
+	if(!@is_file($logfile)) {
+		$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log.gz');
+	if(!@is_file($logfile)) {
+		continue;
 	}
+}
+
+$domain = escapeshellcmd($rec["domain"]);
+$statsdir = escapeshellcmd($rec["document_root"].'/web/stats');
+$webalizer = '/usr/bin/webalizer';
+$webalizer_conf_main = '/etc/webalizer/webalizer.conf';
+$webalizer_conf = escapeshellcmd($rec["document_root"].'/log/webalizer.conf');
+
+if(!@is_file($webalizer_conf)) {
+	exec("cp $webalizer_conf_main $webalizer_conf");
+}
+
+if(@is_file($webalizer_conf)) {
+	setConfigVar($webalizer_conf, 'Incremental', 'yes');
+	setConfigVar($webalizer_conf, 'IncrementalName', $statsdir.'/webalizer.current');
+	setConfigVar($webalizer_conf, 'HistoryName', $statsdir.'/webalizer.hist');
+}
+
+
+if(!@is_dir($statsdir)) mkdir($statsdir);
+	exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile");
 }
 
 #######################################################################################################
@@ -115,11 +158,12 @@
 	if(@is_file($logfile)) {
 		// Compress yesterdays logfile
 		exec("gzip -c $logfile > $logfile.gz");
+		unlink($logfile);
 	}
 	
 	// delete logfiles after 30 days
 	$month_ago = date("Ymd",time() - 86400 * 30);
-	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log.gz');
+	$logfile = escapeshellcmd($rec["document_root"].'/log/'.$month_ago.'-access.log.gz');
 	if(@is_file($logfile)) {
 		unlink($logfile);
 	}

--
Gitblit v1.9.1