summaryrefslogtreecommitdiffstats
path: root/pym/portage/getbinpkg.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-22 18:29:51 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-22 18:29:51 +0000
commitc33c150ec8ef22b1dd60a083b891e04d0ada6813 (patch)
treecd6a35c1f0750fb23dfa8610787af9a4006f8e38 /pym/portage/getbinpkg.py
parent445dae838defc030cd5581bfb76a297dbf85e793 (diff)
downloadportage-c33c150ec8ef22b1dd60a083b891e04d0ada6813.tar.gz
portage-c33c150ec8ef22b1dd60a083b891e04d0ada6813.tar.bz2
portage-c33c150ec8ef22b1dd60a083b891e04d0ada6813.zip
Make dir_get_metadata() retry if a httplib.ResponseNotReady exception
occurs. svn path=/main/trunk/; revision=9943
Diffstat (limited to 'pym/portage/getbinpkg.py')
-rw-r--r--pym/portage/getbinpkg.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py
index 5ace5b0b6..75f3a352a 100644
--- a/pym/portage/getbinpkg.py
+++ b/pym/portage/getbinpkg.py
@@ -616,6 +616,14 @@ def dir_get_metadata(baseurl, conn=None, chunk_size=3000, verbose=1, usingcache=
# connection before sending a valid response".
conn, protocol, address, params, headers = create_conn(
baseurl)
+ except httplib.ResponseNotReady:
+ # With some http servers this error is known to be thrown
+ # from conn.getresponse() in make_http_request() when the
+ # remote file does not have appropriate read permissions.
+ # Maybe it's possible to recover from this exception in
+ # cases though, so retry.
+ conn, protocol, address, params, headers = create_conn(
+ baseurl)
if myid and myid[0]:
metadata[baseurl]["data"][x] = make_metadata_dict(myid)