From e253202995d188925fa4e9df4f6dea0523511eae Mon Sep 17 00:00:00 2001
From: oilyflutesalad <oilyflutesalad@ispconfig3>
Date: Mon, 18 Jan 2010 10:56:48 +0000
Subject: [PATCH] Fixed: FS#928 - System Load Averages should no longer show as
 zero on non-english linux distros

---
 server/mods-available/monitor_core_module.inc.php | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index cc957726da..642395eeb5 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -148,12 +148,20 @@ class monitor_core_module {
         $tmp = explode(",", $data['uptime'], 4);
         $tmpUser = explode(" ", trim($tmp[2]));
         $data['user_online'] = intval($tmpUser[0]);
-
+		
+		/* Old Load Average Code
         $loadTmp = explode(":" , trim($tmp[3]));
         $load = explode(",",  $loadTmp[1]);
         $data['load_1'] = floatval(trim($load[0]));
         $data['load_5'] = floatval(trim($load[1]));
-        $data['load_15'] = floatval(trim($load[2]));
+        $data['load_15'] = floatval(trim($load[2])); */
+
+		//* New Load Average code to fix "always zero" bug in non-english distros. NEEDS TESTING
+		$loadTmp = shell_exec("cat /proc/loadavg | cut -f1-3 -d' '");
+		$load = explode(" ", $loadTmp);
+		$data['load_1'] = floatval(str_replace(',', '.', $load[0]));
+		$data['load_5'] = floatval(str_replace(',', '.', $load[1]));
+		$data['load_15'] = floatval(str_replace(',', '.', $load[2]));
 
         /** The state of the server-load. */
         $state = 'ok';
-- 
GitLab