Bug #254421 - Make dir_get_metadata() handle 'Connection refused' socket.error
authorZac Medico <zmedico@gentoo.org>
Mon, 12 Jan 2009 08:26:29 +0000 (08:26 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 12 Jan 2009 08:26:29 +0000 (08:26 -0000)
from ftplib connection attempt. (trunk r12418)

svn path=/main/branches/2.1.6/; revision=12474

pym/portage/getbinpkg.py

index 9d59437b40d11465abd68fd5520fb9f3910c06be..d42b517814cd0964c8584ec42694c9292f1a7b01 100644 (file)
@@ -9,6 +9,7 @@ import portage.xpak
 import HTMLParser
 import sys
 import os
+import socket
 import time
 import tempfile
 import base64
@@ -474,7 +475,14 @@ def dir_get_metadata(baseurl, conn=None, chunk_size=3000, verbose=1, usingcache=
        if makepickle is None:
                makepickle = "/var/cache/edb/metadata.idx.most_recent"
 
-       conn,protocol,address,params,headers = create_conn(baseurl, conn)
+       try:
+               conn, protocol, address, params, headers = create_conn(baseurl, conn)
+       except socket.error, e:
+               # ftplib.FTP(host) can raise errors like this:
+               #   socket.error: (111, 'Connection refused')
+               sys.stderr.write("!!! %s\n" % (e,))
+               return {}
+
        out = sys.stdout
        try:
                metadatafile = open("/var/cache/edb/remote_metadata.pickle")