]> git.phdru.name Git - m_lib.git/blobdiff - m_lib/net/ftp/ftpscan.py
Open log with utf-8 encoding
[m_lib.git] / m_lib / net / ftp / ftpscan.py
index 51c92f36c9f799f9f3dc319a540861d5dcddb194..ebff998f72a2c1c50ef0bd03bc537674a18618b4 100755 (executable)
@@ -3,6 +3,7 @@
 
 
 from __future__ import print_function
+import codecs
 import ftplib
 from .ftpparse import ftpparse
 
@@ -61,7 +62,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 +122,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 +145,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 +199,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 +222,7 @@ def test(ftp_server, func, passive=None, reconnect=False):
    print(stop_time - start_time)
 
    logfname = "%s.list" % ftp_server
-   log = open(logfname, 'w')
+   log = codecs.open(logfname, 'w', encoding='utf-8')
 
    for ftp_dir, files in tree:
       if ftp_dir == ftpscan_error_mark: