xaver
2012-02-28 b4daebfaff3a7cfb84f5700de0fda1c4dc943a03
server/lib/classes/monitor_tools.inc.php
@@ -151,7 +151,7 @@
    //** Email Quota
    public function monitorEmailQuota() {
        global $conf;
        global $conf, $app;
      //* Initialize data array
      $data = array();
@@ -164,8 +164,31 @@
      //* The state of the email_quota.
      $state = 'ok';
      $mailboxes = $app->db->queryAllRecords("SELECT email FROM mail_user WHERE server_id = $server_id");
      if(is_array($mailboxes)) {
         foreach($mailboxes as $mb) {
            $email = $mb['email'];
            $email_parts = explode('@',$mb['email']);
            $filename = '/var/vmail/'.$email_parts[1].'/'.$email_parts[0].'/.quotausage';
            if(file_exists($filename)) {
               $quotafile = file($filename);
               $data[$email]['used'] = trim($quotafile['1']);
               unset($quotafile);
            } else {
               exec('du -s '.escapeshellcmd('/var/vmail/'.$email_parts[1].'/'.$email_parts[0]),$out);
               $parts = explode(' ',$out[0]);
               $data[$email]['used'] = intval($parts[0])*1024;
               unset($out);
               unset($parts);
            }
         }
      }
      unset($mailboxes);
        //* Dovecot quota check Courier in progress lathama@gmail.com
      /*
        if($dir = opendir("/var/vmail")){
            while (($quotafiles = readdir($dir)) !== false){
                if(preg_match('/.\_quota$/', $quotafiles)){
@@ -177,6 +200,7 @@
            }
            closedir($dir);
        }
      */
      $res['server_id'] = $server_id;
      $res['type'] = $type;
      $res['data'] = $data;
@@ -217,10 +241,12 @@
                  $data['user'][$username]['used'] += $s[2];
                  $data['user'][$username]['soft'] += $s[3];
                  $data['user'][$username]['hard'] += $s[4];
                  $data['user'][$username]['files'] += $s[5];
               } else {
                  $data['user'][$username]['used'] = $s[2];
                  $data['user'][$username]['soft'] = $s[3];
                  $data['user'][$username]['hard'] = $s[4];
                  $data['user'][$username]['files'] = $s[5];
               }
            }
         }
@@ -855,7 +881,7 @@
         /*
          * Fetch the output
          */
         $data['output'] = shell_exec('zypper --non-interactive up');
         $data['output'] = shell_exec('zypper lu');
      } else {
         /*
          * It is not Debian/Ubuntu, so there is no data and no state
@@ -996,7 +1022,7 @@
            /*
             * Fetch the output
             */
            $data['output'] = shell_exec('mpt-status --autoload -n');
            $data['output'] = shell_exec('mpt-status --autoload');
            /*
             * Then calc the state.
@@ -1008,7 +1034,7 @@
                  * The output contains information for every RAID and every HDD.
                  * We only need the state of the RAID
                  */
                  if (strpos($item, 'raidlevel:') !== false) {
                  if (strpos($item, 'state ') !== false) {
                     /*
                     * We found a raid, process the state of it
                     */
@@ -1695,7 +1721,13 @@
             * So we can do a deepter test and try to get data over this connection.
             * (if apache hangs, we get a connection but a timeout by trying to GET the data!)
             */
            fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
            // fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
            $out = "GET / HTTP/1.1\r\n";
            $out .= "Host: localhost\r\n";
            $out .= "User-Agent: Mozilla/5.0 (ISPConfig monitor)\r\n";
            $out .= "Accept: application/xml,application/xhtml+xml,text/html\r\n";
            $out .= "Connection: Close\r\n\r\n";
            fwrite($fp, $out);
            stream_set_timeout($fp, 5); // Timeout after 5 seconds
            $res = fread($fp, 10);  // try to get 10 bytes (enough to test!)
            $info = stream_get_meta_data($fp);