From 7c2179f4b8604da1167b29ffb92041cf16fc4dbc Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 13 Mar 2014 07:37:47 -0400
Subject: [PATCH] Merge remote-tracking branch 'origin/stable-3.0.5'

---
 interface/lib/classes/validate_dns.inc.php |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php
index 413be16..212c4d7 100644
--- a/interface/lib/classes/validate_dns.inc.php
+++ b/interface/lib/classes/validate_dns.inc.php
@@ -283,5 +283,49 @@
 		}
 		return $new_serial;
 	}
+	
+	function validate_xfer($field_name, $field_value, $validator) {
+		global $app;
+		
+		$errorMessage = '';
+		
+		if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n';
+		if($validator['allowempty'] == 'y' && $field_value == '') {
+			//* Do nothing
+		} elseif ($field_value == 'any') {
+			//* Do nothing
+		} else {
+			//* Check if its a IPv4 or IPv6 address
+			if(isset($validator['separator']) && $validator['separator'] != '') {
+				//* When the field may contain several IP addresses, split them by the char defined as separator
+				$field_value_array = explode($validator['separator'], $field_value);
+			} else {
+				$field_value_array[] = $field_value;
+			}
+			foreach($field_value_array as $field_value) {
+				$field_value = trim($field_value);
+				if(function_exists('filter_var')) {
+						if(!filter_var($field_value, FILTER_VALIDATE_IP)) {
+						$errmsg = $validator['errmsg'];
+						$errorMessage .= $app->tform->lng($errmsg)."<br />\r\n";
+					}
+				} else {
+					//* Check content with regex, if we use php < 5.2
+					$ip_ok = 0;
+					if(preg_match("/^(\:\:([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", $field_value)){
+						$ip_ok = 1;
+					}
+					if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){
+						$ip_ok = 1;
+					}
+					if($ip_ok == 0) {
+						$errmsg = $validator['errmsg'];
+						$errorMessage .= $app->tform->lng($errmsg)."<br />\r\n";
+					}
+				}
+			}
+		}
+		return $errorMessage;
+	}
 
 }

--
Gitblit v1.9.1