diff options
author | Joe Gregorio <joe@bitworking.org> | 2015-09-21 13:35:36 -0400 |
---|---|---|
committer | Joe Gregorio <joe@bitworking.org> | 2015-09-21 13:35:36 -0400 |
commit | d86146d57ba65a36700f14201fe724f320504a4e (patch) | |
tree | 6a958c8617769a02c87be748649af60d0f008690 | |
parent | f69fe23a71ac58bde912af87dabf3057c4cd3c76 (diff) | |
parent | 7ebbd4334d0a78b6b869729b7cbf19fd7ce98037 (diff) | |
download | httplib2-d86146d57ba65a36700f14201fe724f320504a4e.tar.gz |
Merge pull request #313 from ccstolley/master
Fix incorrect ResponseNotReady exceptions, retry on transient errors.
-rw-r--r-- | python2/httplib2/__init__.py | 5 | ||||
-rw-r--r-- | python3/httplib2/__init__.py | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/python2/httplib2/__init__.py b/python2/httplib2/__init__.py index 19e7cff..f0d17a1 100644 --- a/python2/httplib2/__init__.py +++ b/python2/httplib2/__init__.py @@ -1285,8 +1285,9 @@ class Http(object): err = getattr(e, 'args')[0] else: err = e.errno - if err == errno.ECONNREFUSED: # Connection refused - raise + if err in (errno.ENETUNREACH, errno.EADDRNOTAVAIL) and i < RETRIES: + continue # retry on potentially transient socket errors + raise except httplib.HTTPException: # Just because the server closed the connection doesn't apparently mean # that the server didn't send a response. diff --git a/python3/httplib2/__init__.py b/python3/httplib2/__init__.py index 260fa6b..ad5cc7f 100644 --- a/python3/httplib2/__init__.py +++ b/python3/httplib2/__init__.py @@ -994,8 +994,9 @@ class Http(object): raise ServerNotFoundError("Unable to find the server at %s" % conn.host) except socket.error as e: errno_ = (e.args[0].errno if isinstance(e.args[0], socket.error) else e.errno) - if errno_ == errno.ECONNREFUSED: # Connection refused - raise + if errno_ in (errno.ENETUNREACH, errno.EADDRNOTAVAIL) and i < RETRIES: + continue # retry on potentially transient errors + raise except http.client.HTTPException: if conn.sock is None: if i < RETRIES-1: |