[Yum-devel] [UG] [PATCH] grabber.py: add an option to disable extended passive mode when grabbing from ftp servers
Jacob Kjaergaard
jacob.kjaergaard at prevas.dk
Tue Aug 6 06:39:44 UTC 2013
this feature lets curl fallback to passive mode and may be useful when
fetching from broken ftp servers. It may also help to circumvent
some strict firewalls on some domains.
---
urlgrabber/grabber.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index 0d67b1f..8955bc3 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -305,6 +305,14 @@ GENERAL ARGUMENTS (kwargs)
actually measured to the default speed, with default
period of 30 days.
+ ftp_disable_epsv = False
+
+ False,True
+
+ This options disables Extended Passive Mode which is used to
+ circumvent some buggy ftp servers.
+
+ It may also be used to get past strict firewall on some domains.
RETRY RELATED ARGUMENTS
@@ -973,6 +981,7 @@ class URLGrabberOptions:
self.timedhosts = None
self.half_life = 30*24*60*60 # 30 days
self.default_speed = 1e6 # 1 MBit
+ self.ftp_disable_epsv = False
def __repr__(self):
return self.format()
@@ -1412,6 +1421,10 @@ class PyCurlFileObject(object):
if opts.data:
self.curl_obj.setopt(pycurl.POST, True)
self.curl_obj.setopt(pycurl.POSTFIELDS, _to_utf8(opts.data))
+
+ # ftp
+ if opts.ftp_disable_epsv == True:
+ self.curl_obj.setopt(pycurl.FTP_USE_EPSV, False)
# our url
self.curl_obj.setopt(pycurl.URL, self.url)
@@ -2036,6 +2049,7 @@ class _ExternalDownloader:
'ssl_key_pass',
'ssl_verify_peer', 'ssl_verify_host',
'size', 'max_header_size', 'ip_resolve',
+ 'ftp_disable_epsv'
)
def start(self, opts):
--
1.7.9.5
More information about the Yum-devel
mailing list