correct validating list of AXFR-servers, fixes #1440

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2014-06-23 08:51:04 +02:00
parent 1c1affa7bd
commit addd70dfe8
3 changed files with 28 additions and 6 deletions

View File

@@ -74,6 +74,7 @@ return array(
'varname' => 'axfrservers',
'type' => 'string',
'string_type' => 'validate_ip',
'string_delimiter' => ',',
'string_emptyallowed' => true,
'default' => '',
'save_method' => 'storeSettingField',

View File

@@ -107,11 +107,8 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue)
}
}
elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'validate_ip') {
$newfieldvalue = validate_ip($newfieldvalue, true);
if ($newfieldvalue === false) {
$newfieldvalue = '';
}
$returnvalue = false;
$newfieldvalue = validate_ip2($newfieldvalue);
$returnvalue = ($newfieldvalue !== false ? true : 'invalidip');
}
elseif (preg_match('/^[^\r\n\t\f\0]*$/D', $newfieldvalue)) {
$returnvalue = true;

View File

@@ -21,6 +21,7 @@
* Checks whether it is a valid ip
*
* @return mixed ip address on success, standard_error on failure
* @deprecated use validate_ip2
*/
function validate_ip($ip, $return_bool = false, $lng = 'invalidip') {
@@ -32,9 +33,32 @@ function validate_ip($ip, $return_bool = false, $lng = 'invalidip') {
return false;
} else {
standard_error($lng, $ip);
exit;
exit();
}
} else {
return $ip;
}
}
/**
* Checks whether it is a valid ip
*
* @return mixed ip address on success, false on failure
*/
function validate_ip2($ip, $return_bool = false, $lng = 'invalidip') {
if ((filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)
|| filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
&& filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_NO_PRIV_RANGE)
) {
return $ip;
}
if ($return_bool) {
return false;
} else {
standard_error($lng, $ip);
exit();
}
}