summaryrefslogtreecommitdiff
path: root/addons/document_ftp/ftpserver/ftpserver.py
diff options
context:
space:
mode:
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)