From 2c7813beca5e10b268e64736d2c791a1e7248c76 Mon Sep 17 00:00:00 2001
From: Jesse Norell <jesse@kci.net>
Date: Wed, 23 Dec 2015 17:04:56 -0500
Subject: [PATCH] Fixed typo

---
 interface/lib/classes/functions.inc.php |   80 +++++++++++++++++++++-------------------
 1 files changed, 42 insertions(+), 38 deletions(-)

diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php
index 48aa361..8ec4496 100644
--- a/interface/lib/classes/functions.inc.php
+++ b/interface/lib/classes/functions.inc.php
@@ -186,7 +186,8 @@
 		global $app;
 
 		if($type == 'IPv4'){
-			$regex = "/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/";
+//			$regex = "/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/";
+			$regex = "/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/";
 		} else {
 			// IPv6
 			$regex = "/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i";
@@ -202,7 +203,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'])){
@@ -229,37 +230,7 @@
 				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)){
 			foreach($results as $result){
@@ -309,11 +280,9 @@
 	 * @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('', 'k', 'M', 'G', 'T');
+		$suffixes=array('', ' kB', ' MB', ' GB', ' TB');
 		return round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)];
 	}
 
@@ -333,7 +302,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>
@@ -350,7 +319,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>
@@ -387,6 +356,41 @@
 		return implode("\n", $domains);
 	}
 
+	public function is_allowed_user($username, $restrict_names = false) {
+		global $app;
+		
+		$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($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false;
+		
+		return true;
+	}
+	
+	public function is_allowed_group($groupname, $restrict_names = false) {
+		global $app;
+		
+		$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($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);
+		}		
+	}
+
 }
 
 ?>

--
Gitblit v1.9.1