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.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/addons/document_ftp/ftpserver/ftpserver.py b/addons/document_ftp/ftpserver/ftpserver.py
index e267216ddec..528ce057ff9 100644
--- a/addons/document_ftp/ftpserver/ftpserver.py
+++ b/addons/document_ftp/ftpserver/ftpserver.py
@@ -2565,9 +2565,12 @@ class FTPHandler(asynchat.async_chat):
# return
size = self.run_as_current_user(self.fs.getsize, datacr)
except EnvironmentError, err:
- why = _strerror(err)
+ why = err.strerror
self.log('FAIL SIZE "%s". %s.' %(line, why))
- self.respond('550 %s.' %why)
+ if err.errno == errno.ENOENT:
+ self.respond("404 %s." % why)
+ else:
+ self.respond('550 %s.' % why)
else:
self.respond("213 %s" %size)
self.log('OK SIZE "%s".' %line)
@@ -2640,10 +2643,13 @@ class FTPHandler(asynchat.async_chat):
try:
datacr = self.fs.get_crdata(line, mode='delete')
self.run_as_current_user(self.fs.remove, datacr)
- except OSError, err:
- why = _strerror(err)
+ except EnvironmentError, err:
+ why = err.strerror
self.log('FAIL DELE "%s". %s.' %(line, why))
- self.respond('550 %s.' %why)
+ if err.errno == errno.ENOENT:
+ self.respond('404 %s.' % why)
+ else:
+ self.respond('550 %s.' %why)
else:
self.log('OK DELE "%s".' %line)
self.respond("250 File removed.")