summaryrefslogtreecommitdiff
path: root/addons/document_ftp/ftpserver/ftpserver.py
diff options
context:
space:
mode:
authorP. Christeas <p_christ@hol.gr>2010-07-06 15:10:50 +0300
committerP. Christeas <p_christ@hol.gr>2010-07-06 15:10:50 +0300
commit61b09c7fc9be040308c7d1fdb73bed9818aa6827 (patch)
tree2f59ae26398cd4b9d4ba9333eee34e5b440c45af /addons/document_ftp/ftpserver/ftpserver.py
parent67386ec78b3fec4bfde55135fa88a2322c3a4804 (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.py12
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)