diff options
| author | P. Christeas <p_christ@hol.gr> | 2010-07-06 15:10:50 +0300 |
|---|---|---|
| committer | P. Christeas <p_christ@hol.gr> | 2010-07-06 15:10:50 +0300 |
| commit | 61b09c7fc9be040308c7d1fdb73bed9818aa6827 (patch) | |
| tree | 2f59ae26398cd4b9d4ba9333eee34e5b440c45af /addons/document_ftp/ftpserver/ftpserver.py | |
| parent | 67386ec78b3fec4bfde55135fa88a2322c3a4804 (diff) | |
Document ftp: fix NLST, path resolution.
bzr revid: p_christ@hol.gr-20100706121050-5u0i2hsm2phz0i30
Diffstat (limited to 'addons/document_ftp/ftpserver/ftpserver.py')
| -rw-r--r-- | addons/document_ftp/ftpserver/ftpserver.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/addons/document_ftp/ftpserver/ftpserver.py b/addons/document_ftp/ftpserver/ftpserver.py index f92fbb34613..75ad5b00883 100644 --- a/addons/document_ftp/ftpserver/ftpserver.py +++ b/addons/document_ftp/ftpserver/ftpserver.py @@ -2043,11 +2043,17 @@ class FTPHandler(asynchat.async_chat): if not datacr: datacr = ( None, None, None ) if self.fs.isdir(datacr[1]): - listing = self.run_as_current_user(self.fs.listdir, datacr) - listing = [ x.path[-1] for x in listing ] + nodelist = self.run_as_current_user(self.fs.listdir, datacr) else: # if path is a file we just list its name - listing = [datacr[1].path[-1],] + nodelist = [datacr[1],] + + listing = [] + for nl in nodelist: + if isinstance(nl.path, (list, tuple)): + listing.append(nl.path[-1]) + else: + listing.append(nl.path) # assume string except IOError, err: self.fs.close_cr(datacr) self.respond('550 %s.'% err.strerror) |
