Domains are allowed to start with numbers and are currently not resolved because of the current simple regex. The new regexes better cover the IPv4 and IPv6 address (with optional netmask)pull/28/head
@@ -20,8 +20,12 @@ def _changed(name, msg, **changes): | |||
def _resolve(host): | |||
# let's just see if it starts with a number or a colon, for simplicity | |||
if re.match(r'^[0-9:]', host): | |||
# pure IP address / netmask IPv4? | |||
if re.match(r'^([0-9\.])+(/[0-9]+)?$', host): | |||
return host | |||
# pure IPv6 address / netmask? | |||
if re.match(r'^([0-9a-f:]+)(/[0-9]+)?$', host): | |||
return host | |||
return socket.gethostbyname(host) |