summaryrefslogtreecommitdiff
path: root/addons/document/ftpserver/ftpserver.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/document/ftpserver/ftpserver.py')
-rw-r--r--addons/document/ftpserver/ftpserver.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/addons/document/ftpserver/ftpserver.py b/addons/document/ftpserver/ftpserver.py
index 4ca5b06bb39..99b1c43abb3 100644
--- a/addons/document/ftpserver/ftpserver.py
+++ b/addons/document/ftpserver/ftpserver.py
@@ -2512,9 +2512,14 @@ class FTPHandler(asynchat.async_chat):
path = self.fs.ftp2fs(line, datacr)
self.run_as_current_user(self.fs.chdir, path)
except OSError, err:
- why = _strerror(err)
- self.log('FAIL CWD "%s". %s.' %(self.fs.ftpnorm(line), why))
- self.respond('550 %s.' %why)
+ if err.errno==2:
+ why = 'Authentication Required or Failed'
+ self.log('FAIL CWD "%s". %s.' %(self.fs.ftpnorm(line), why))
+ self.respond('530 %s.' %why)
+ else:
+ why = _strerror(err)
+ self.log('FAIL CWD "%s". %s.' %(self.fs.ftpnorm(line), why))
+ self.respond('550 %s.' %why)
else:
self.log('OK CWD "%s".' %self.fs.cwd)
self.respond('250 "%s" is the current directory.' %self.fs.cwd)