MXS-3326 Fix hostname validation
A hyphen '-' is a valid character in a domain name, as long as it is not the first character and does not appear two in a row.
This commit is contained in:
parent
d20ea5265f
commit
072661e26b
@ -52,13 +52,15 @@ bool is_valid_ipv6(const std::string& ip)
|
||||
bool is_valid_hostname(const std::string& hn)
|
||||
{
|
||||
auto invalid_char = [](char ch) {
|
||||
bool valid = std::isalnum(ch) || ch == '_' || ch == '.';
|
||||
bool valid = std::isalnum(ch) || ch == '_' || ch == '.' || ch == '-';
|
||||
return !valid;
|
||||
};
|
||||
|
||||
bool ret = std::none_of(begin(hn), end(hn), invalid_char)
|
||||
&& hn.front() != '_'
|
||||
&& (hn.length() <= 253 && hn.length() > 0);
|
||||
&& hn.front() != '-'
|
||||
&& (hn.length() <= 253 && hn.length() > 0)
|
||||
&& hn.find("--") == std::string::npos;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user