diff --git a/actions/admin/settings/160.nameserver.php b/actions/admin/settings/160.nameserver.php index 3574e4d9..e738c3f3 100644 --- a/actions/admin/settings/160.nameserver.php +++ b/actions/admin/settings/160.nameserver.php @@ -73,7 +73,7 @@ return array( 'settinggroup' => 'system', 'varname' => 'axfrservers', 'type' => 'string', - 'string_type' => 'validate_ip', + 'string_type' => 'validate_ip_incl_private', 'string_delimiter' => ',', 'string_emptyallowed' => true, 'default' => '', diff --git a/lib/functions/formfields/string/function.validateFormFieldString.php b/lib/functions/formfields/string/function.validateFormFieldString.php index 10ccca8f..addfc8b6 100644 --- a/lib/functions/formfields/string/function.validateFormFieldString.php +++ b/lib/functions/formfields/string/function.validateFormFieldString.php @@ -116,6 +116,17 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue) $returnvalue = ($newfieldvalue !== false ? true : 'invalidip'); } } + elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'validate_ip_incl_private') { + // check for empty value (it might be allowed) + if (trim($newfieldvalue) == '') { + $newfieldvalue = ''; + $returnvalue = 'stringmustntbeempty'; + } else { + $newfieldvalue = validate_ip2($newfieldvalue, true, true, true); + $returnvalue = ($newfieldvalue !== false ? true : 'invalidip'); + } + } + elseif (preg_match('/^[^\r\n\t\f\0]*$/D', $newfieldvalue)) { $returnvalue = true; }