From 64ea56164ad8f0f2cee5676f84d2d8f064e986e1 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Tue, 29 Jul 2014 11:55:13 -0400
Subject: [PATCH] Improved input validation

---
 server/lib/classes/monitor_tools.inc.php |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 8b3ea99..ae1fbd3 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -62,6 +62,15 @@
 				$mainver = array_filter($mainver);
 				$mainver = current($mainver).'.'.next($mainver);
 				switch ($mainver){
+				case "14.04":
+					$relname = "(Trusty Tahr)";
+					break;
+				case "13.10":
+					$relname = "(Saucy Salamander)";
+					break;
+				case "13.04":
+					$relname = "(Raring Ringtail)";
+					break;
 				case "12.10":
 					$relname = "(Quantal Quetzal)";
 					break;
@@ -132,7 +141,7 @@
 				$distver = 'Squeeze/Sid';
 				$distid = 'debian60';
 				$distbaseid = 'debian';
-			} elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || strstr(trim(file_get_contents('/etc/debian_version')), '7.1') || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') {
+			} elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || substr(trim(file_get_contents('/etc/debian_version')),0,2) == '7.' || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') {
 				$distname = 'Debian';
 				$distver = 'Wheezy/Sid';
 				$distid = 'debian60';
@@ -201,6 +210,18 @@
 				$distver = '5.3';
 				$distid = 'centos53';
 				$distbaseid = 'fedora';
+			} elseif(stristr($content, 'CentOS Linux release 6')) {
+				$distname = 'CentOS';
+				$distver = 'Unknown';
+				$distid = 'centos53';
+				$distbaseid = 'fedora';
+				swriteln("Operating System: CentOS 6 or compatible\n");
+			} elseif(stristr($content, 'CentOS Linux release 7')) {
+				$distname = 'CentOS';
+				$distver = 'Unknown';
+				$distid = 'centos53';
+				$distbaseid = 'fedora';
+				swriteln("Operating System: CentOS 7 or compatible\n");
 			} else {
 				$distname = 'Redhat';
 				$distver = 'Unknown';
@@ -250,7 +271,9 @@
 				$filename = $mb['maildir'].'/.quotausage';
 				if(file_exists($filename) && !is_link($filename)) {
 					$quotafile = file($filename);
-					$data[$email]['used'] = trim($quotafile['1']);
+					preg_match('/storage.*?([0-9]+)/s', implode('',$quotafile), $storage_value);
+					$data[$email]['used'] = $storage_value[1];
+					$app->log("Mail storage $email: " . $storage_value[1], LOGLEVEL_DEBUG);
 					unset($quotafile);
 				} else {
 					exec('du -s '.escapeshellcmd($mb['maildir']), $out);
@@ -1147,10 +1170,13 @@
 		/*
 		* 3ware Controller
 		*/
+		
 		system('which tw_cli', $retval);
 		if($retval === 0) {
-
-			$data['output'] = shell_exec('tw_cli info c0');
+			
+			// TYPOWORX FIX | Determine Controler-ID
+			$availableControlers = shell_exec('tw_cli info | grep -Eo "c[0-9]+');
+			$data['output'] = shell_exec('tw_cli info ' . $availableControlers);
 
 			$state = 'ok';
 			if(is_array($data['output'])) {

--
Gitblit v1.9.1