fix / workaround potential for socket.getaddrinfo to raise socket.error

As reported in bug 1154599, I'm seeing this on my desktop system:
$ python -c \
  'from cloudinit import util; print util.is_resolvable("brickies.neiit")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "cloudinit/util.py", line 865, in is_resolvable
    socket.SOCK_STREAM, socket.AI_CANONNAME)
This commit is contained in:
Scott Moser 2013-03-13 10:43:40 -04:00
parent 9da88355f1
commit 31d56c51a4

View File

@ -867,7 +867,7 @@ def is_resolvable(name):
for (_fam, _stype, _proto, cname, sockaddr) in result:
badresults[iname].append("%s: %s" % (cname, sockaddr[0]))
badips.add(sockaddr[0])
except socket.gaierror:
except (socket.gaierror, socket.error):
pass
_DNS_REDIRECT_IP = badips
if badresults:
@ -880,7 +880,7 @@ def is_resolvable(name):
if addr in _DNS_REDIRECT_IP:
return False
return True
except socket.gaierror:
except (socket.gaierror, socket.error):
return False