diff --git a/modoboa/lib/formutils.py b/modoboa/lib/formutils.py index 9c75761b2..4b1922ba5 100644 --- a/modoboa/lib/formutils.py +++ b/modoboa/lib/formutils.py @@ -333,17 +333,19 @@ class TabForms(object): # -def is_valid_host(host): - """IDN compatible domain validator - """ - host = host.encode('idna').lower() - if not hasattr(is_valid_host, '_re'): - is_valid_host._re = re.compile(r'^([0-9a-z][-\w]*[0-9a-z]\.)+[a-z0-9\-]{2,15}$') - return bool(is_valid_host._re.match(host)) +def is_valid_hostname(hostname): + """Domain name validaton.""" + if len(hostname) > 255: + return False + if hostname[-1] == ".": + hostname = hostname[:-1] # strip exactly one dot from the + # right, if present + allowed = re.compile(r"(?!-)[A-Z\d-]{1,63}(?