diff --git a/maxutils/maxbase/src/host.cc b/maxutils/maxbase/src/host.cc index 429df14e3..12c3ca226 100644 --- a/maxutils/maxbase/src/host.cc +++ b/maxutils/maxbase/src/host.cc @@ -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; }