summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-22 18:30:54 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-22 18:30:54 +0000
commit3f7c1449c862ddfaec19499323f6807624b05aba (patch)
tree5b4274a3aeca09da76e3bf614a76a4b689babf53 /pym
parent4dfb0b31a8c8c8d4683c2e16c7cc631c08d71615 (diff)
downloadportage-3f7c1449c862ddfaec19499323f6807624b05aba.tar.gz
portage-3f7c1449c862ddfaec19499323f6807624b05aba.tar.bz2
portage-3f7c1449c862ddfaec19499323f6807624b05aba.zip
Make dir_get_metadata() retry if a httplib.ResponseNotReady exception
occurs. (trunk r9943) svn path=/main/branches/2.1.2/; revision=9944
Diffstat (limited to 'pym')
-rw-r--r--pym/getbinpkg.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/getbinpkg.py b/pym/getbinpkg.py
index 861e98dd8..0f2cd501b 100644
--- a/pym/getbinpkg.py
+++ b/pym/getbinpkg.py
@@ -620,6 +620,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)