Try to handle socket.errors properly in is_unavailable
diff --git a/Lib/test/test_xmlrpc.py b/Lib/test/test_xmlrpc.py
index 17d7a7a..70a6b39 100644
--- a/Lib/test/test_xmlrpc.py
+++ b/Lib/test/test_xmlrpc.py
@@ -348,10 +348,14 @@
given by operations on non-blocking sockets.'''
# sometimes we get a -1 error code and/or empty headers
- if e.errcode == -1 or e.headers is None:
- return True
+ try:
+ if e.errcode == -1 or e.headers is None:
+ return True
+ exc_mess = e.headers.get('X-exception')
+ except AttributeError:
+ # Ignore socket.errors here.
+ exc_mess = str(e)
- exc_mess = e.headers.get('X-exception')
if exc_mess and 'temporarily unavailable' in exc_mess.lower():
return True