Always getting "ip_error_wrong" (IP is correct). Reason: $_POST['ip_type'] is empty (***) , but it is in the $params array function check_server_ip($field_name, $field_value, $validator) { if($_POST['ip_type'] == 'IPv4') { if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return $this->get_error($validator['errmsg']); } } elseif ($_POST['ip_type'] == 'IPv6') { if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { return $this->get_error($validator['errmsg']); } } else return $this->get_error($validator['errmsg']); (***) } Is it a bug or has to be done something special, in the api call ?
This might be a bug. Please report it in the bug tracker so this gets tested and fixed. https://git.ispconfig.org/ispconfig/ispconfig3/issues
As a quick workaround, you can change function check_server_ip in interface/lib/classes/validate_server.inc.php to: Code: function check_server_ip($field_name, $field_value, $validator) { if(isset($_POST)) { if($_POST['ip_type'] == 'IPv4') { if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4, FILTER_FLAG_IPV6)) { return $this->get_error($validator['errmsg']); } } elseif ($_POST['ip_type'] == 'IPv6') { if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { return $this->get_error($validator['errmsg']); } } } else { if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) && !filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) return $this->get_error($validator['errmsg']); } } This will not run different validators for the given ip. it just checks, if the ip is valid or not
This should finaly fix the bug: https://git.ispconfig.org/florian030/ispconfig3/commit/352d6a49194d1f021f35abc4b0b20615b65a6bcb