X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_lib%2Fnet%2Fftp%2Fftpscan.py;h=eb0681c130bd8bdee61c1871f8154512cb4a1a2e;hb=HEAD;hp=51c92f36c9f799f9f3dc319a540861d5dcddb194;hpb=3f0f88bf83f84474c61efacfbf14cdbeb22f30e3;p=m_lib.git diff --git a/m_lib/net/ftp/ftpscan.py b/m_lib/net/ftp/ftpscan.py index 51c92f3..eb0681c 100755 --- a/m_lib/net/ftp/ftpscan.py +++ b/m_lib/net/ftp/ftpscan.py @@ -3,7 +3,9 @@ from __future__ import print_function +import codecs import ftplib +import sys from .ftpparse import ftpparse @@ -61,7 +63,7 @@ class ReconnectingFTPCallWrapper: class ReconnectingFTPWrapper: ReconnectingFTPCallWrapperClass = ReconnectingFTPCallWrapper - def __init__(self, ftp, ftp_server, ftp_port=None, login=None, password=None, ftp_dir='/', tree=None): + def __init__(self, ftp, ftp_server, ftp_port=0, login=None, password=None, ftp_dir='/', tree=None): self._ftp = ftp self._ftp_server = ftp_server self._ftp_port = ftp_port @@ -121,7 +123,7 @@ def _traverse_ftp(ftp, tree, ftp_dir): ftp.cwd("..") -def ftpscan1(ftp_server, ftp_port=None, login=None, password=None, +def ftpscan1(ftp_server, ftp_port=0, login=None, password=None, ftp_dir='/', passive=None, FTPClass=ftplib.FTP, reconnect=False, ReconnectingFTPWrapperClass=ReconnectingFTPWrapper): """Recursive FTP scan using one-by-one directory traversing. It is slow @@ -144,7 +146,7 @@ def ftpscan1(ftp_server, ftp_port=None, login=None, password=None, return tree -def ftpscanrecursive(ftp_server, ftp_port=None, login=None, password=None, +def ftpscanrecursive(ftp_server, ftp_port=0, login=None, password=None, ftp_dir='/', passive=None, FTPClass=ftplib.FTP, reconnect=False): """ Recursive FTP scan using fast LIST -R command. Not all servers supports @@ -198,7 +200,7 @@ def ftpscanrecursive(ftp_server, ftp_port=None, login=None, password=None, return tree -def ftpscan(ftp_server, ftp_port=None, login=None, password=None, +def ftpscan(ftp_server, ftp_port=0, login=None, password=None, ftp_dir='/', passive=None, FTPClass=ftplib.FTP): try: return ftpscanrecursive(ftp_server, ftp_port, login, password, ftp_dir, passive, FTPClass) @@ -221,7 +223,10 @@ def test(ftp_server, func, passive=None, reconnect=False): print(stop_time - start_time) logfname = "%s.list" % ftp_server - log = open(logfname, 'w') + if sys.version_info[0] >= 3: + log = codecs.open(logfname, 'w', encoding='utf-8') + else: + log = open(logfname, 'w') for ftp_dir, files in tree: if ftp_dir == ftpscan_error_mark: