Marius Cramer
2015-08-06 37b29231e47a0c4458dc1c15d98588f16f07e1e2
interface/lib/classes/functions.inc.php
@@ -61,52 +61,6 @@
      $app->ispcmail->send($to);
      $app->ispcmail->finish();
      /* left in here just for the case...
      if($filepath != '') {
         if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath);
         $content = file_get_contents($filepath);
         $content = chunk_split(base64_encode($content));
         $uid = strtoupper(md5(uniqid(time())));
         $subject      = "=?utf-8?B?".base64_encode($subject)."?=";
         if($filename == '') {
            $path_parts = pathinfo($filepath);
            $filename = $path_parts["basename"];
            unset($path_parts);
         }
         $header = "Return-Path: $from\nFrom: $from\nReply-To: $from\n";
         if($cc != '') $header .= "Cc: $cc\n";
         if($bcc != '') $header .= "Bcc: $bcc\n";
         $header .= "MIME-Version: 1.0\n";
         $header .= "Content-Type: multipart/mixed; boundary=$uid\n";
         $header .= "--$uid\n";
         $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n";
         $header .= "Content-Transfer-Encoding: 8bit\n\n";
         $header .= "$text\n";
         $header .= "--$uid\n";
         $header .= "Content-Type: $filetype; name=\"$filename\"\n";
         $header .= "Content-Transfer-Encoding: base64\n";
         $header .= "Content-Disposition: attachment; filename=\"$filename\"\n\n";
         $header .= "$content\n";
         $header .= "--$uid--";
         mail($to, $subject, "", $header);
      } else {
         $header = "From: $from\nReply-To: $from\n";
         if($cc != '') $header .= "Cc: $cc\n";
         if($bcc != '') $header .= "Bcc: $bcc\n";
         $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n";
         $header .= "Content-Transfer-Encoding: 8bit\n\n";
         $subject      = "=?utf-8?B?".base64_encode($subject)."?=";
         mail($to, $subject, $text, $header);
      }
      */
      return true;
   }
@@ -248,7 +202,7 @@
      }
      $ips = array();
      $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = '".$type."'");
      $results = $app->db->queryAllRecords("SELECT ip_address AS ip, server_id FROM server_ip WHERE ip_type = ?", $type);
      if(!empty($results) && is_array($results)){
         foreach($results as $result){
            if(preg_match($regex, $result['ip'])){
@@ -275,39 +229,6 @@
            if(preg_match($regex, $result['ip'])) $ips[] = $result['ip'];
         }
      }
      /*
      $results = $app->db->queryAllRecords("SELECT xfer FROM dns_slave WHERE xfer != ''");
      if(!empty($results) && is_array($results)){
         foreach($results as $result){
            $tmp_ips = explode(',', $result['xfer']);
            foreach($tmp_ips as $tmp_ip){
               $tmp_ip = trim($tmp_ip);
               if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip;
            }
         }
      }
      $results = $app->db->queryAllRecords("SELECT xfer FROM dns_soa WHERE xfer != ''");
      if(!empty($results) && is_array($results)){
         foreach($results as $result){
            $tmp_ips = explode(',', $result['xfer']);
            foreach($tmp_ips as $tmp_ip){
               $tmp_ip = trim($tmp_ip);
               if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip;
            }
         }
      }
      $results = $app->db->queryAllRecords("SELECT also_notify FROM dns_soa WHERE also_notify != ''");
      if(!empty($results) && is_array($results)){
         foreach($results as $result){
            $tmp_ips = explode(',', $result['also_notify']);
            foreach($tmp_ips as $tmp_ip){
               $tmp_ip = trim($tmp_ip);
               if(preg_match($regex, $tmp_ip)) $ips[] = $tmp_ip;
            }
         }
      }
      */
      
      $results = $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != ''");
      if(!empty($results) && is_array($results)){
@@ -352,11 +273,21 @@
      }
   }
   /**
    * Function to change bytes to kB, MB, GB or TB
    * @param int $size - size in bytes
    * @param int precicion - after-comma-numbers (default: 2)
    * @return string - formated bytes
    */
   public function formatBytes($size, $precision = 2) {
      $base=log($size)/log(1024);
      $suffixes=array('', ' kB', ' MB', ' GB', ' TB');
      return round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)];
   }
   /** IDN converter wrapper.
    * all converter classes should be placed in ISPC_CLASS_PATH.'/idn/'
    */
   private function _idn_encode_decode($domain, $encode = true) {
      if($domain == '') return '';
      if(preg_match('/^[0-9\.]+$/', $domain)) return $domain; // may be an ip address - anyway does not need to bee encoded
@@ -370,7 +301,7 @@
      if($encode == true) {
         if(function_exists('idn_to_ascii')) {
            $domain = idn_to_ascii($domain);
            $domain = idn_to_ascii($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
         } elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
            /* use idna class:
                 * @author  Matthias Sommerfeld <mso@phlylabs.de>
@@ -387,7 +318,7 @@
         }
      } else {
         if(function_exists('idn_to_utf8')) {
            $domain = idn_to_utf8($domain);
            $domain = idn_to_utf8($domain, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
         } elseif(file_exists(ISPC_CLASS_PATH.'/idn/idna_convert.class.php')) {
            /* use idna class:
                 * @author  Matthias Sommerfeld <mso@phlylabs.de>
@@ -430,7 +361,7 @@
      $name_blacklist = array('root','ispconfig','vmail','getmail');
      if(in_array($username,$name_blacklist)) return false;
      
      if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $username) == false) return false;
      if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false;
      
      if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false;
      
@@ -443,12 +374,21 @@
      $name_blacklist = array('root','ispconfig','vmail','getmail');
      if(in_array($groupname,$name_blacklist)) return false;
      
      if(preg_match('/^[a-zA-Z0-9\.\-]{1,32}$/', $groupname) == false) return false;
      if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false;
      
      if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false;
      
      return true;
   }
   public function getimagesizefromstring($string){
      if (!function_exists('getimagesizefromstring')) {
         $uri = 'data://application/octet-stream;base64,' . base64_encode($string);
         return getimagesize($uri);
      } else {
         return getimagesizefromstring($string);
      }
   }
}