# # # patch "fs.py" # from [d872e4820e299bb0b72296f54fdb54ee1725907b] # to [736da00ad98cd9ef52574d9740e1374085fb2881] # # patch "fs_read_httpftp.py" # from [33d9370b6c7787be5b31ef7859ab896ddaf3d24f] # to [85b8ab103822cf5ab550162d58fdadff795491bf] # # patch "plain.py" # from [cfd2cc32c5ff93036c13464236ef8923dcba8076] # to [e99c23ed40ef207bf23cdd32888434957583826f] # ============================================================ --- fs.py d872e4820e299bb0b72296f54fdb54ee1725907b +++ fs.py 736da00ad98cd9ef52574d9740e1374085fb2881 @@ -17,7 +17,7 @@ return LocalReadableFS(path) elif scheme in ("http", "https", "ftp"): import fs_read_httpftp - return fs_read_httpftp.HTTPFTPReadableFS(url) + return fs_read_httpftp.HTTPFTPReadableFS(url, kwargs.get("proxy")) elif scheme == "sftp": import fs_sftp return fs_sftp.SFTPReadableFS(host, path, **kwargs) ============================================================ --- fs_read_httpftp.py 33d9370b6c7787be5b31ef7859ab896ddaf3d24f +++ fs_read_httpftp.py 85b8ab103822cf5ab550162d58fdadff795491bf @@ -5,13 +5,16 @@ import urlgrabber.grabber class HTTPFTPReadableFS(fs.ReadableFS): - def __init__(self, url): + def __init__(self, url, proxy): self.url = url assert self.url if self.url[-1] != "/": self.url += "/" - self.urlgrabber = urlgrabber.grabber.URLGrabber(keepalive=0, - proxies=None) + if proxy: + self.proxies={ "http" : proxy, "https" : proxy, "ftp":proxy} + else: + self.proxies = None + self.urlgrabber = urlgrabber.grabber.URLGrabber(proxies = self.proxies) def _url(self, filename): return urlparse.urljoin(self.url, filename) ============================================================ --- plain.py cfd2cc32c5ff93036c13464236ef8923dcba8076 +++ plain.py e99c23ed40ef207bf23cdd32888434957583826f @@ -35,6 +35,8 @@ help="optional, sftp only. RSA private key file. Can't be specified with --dsskey", metavar="FILE") par.add_option("--hostkey", default="~/.ssh/known_hosts", help="sftp only. File containing host keys. On unices defaults to %default. Must be specified on Win32.", metavar="FILE") + par.add_option("--proxy", + help="http(s),ftp only. Proxy to use for connecting.", metavar="http://[proxyuser[:address@hidden:proxyport]") par.add_option("-v", "--verbose", type="int", default=0, help="verbosity level from 0 (normal) to 2 (debug)", metavar="NUM") @@ -62,7 +64,8 @@ optdict = {"dsskey":options.dsskey, "rsakey":options.rsakey, "hostkey":options.hostkey, - "verbose":options.verbose} + "verbose":options.verbose, + "proxy":options.proxy} mtn = Dumbtone(options.db, options.verbose) if args[0]=="pull":