[
https://issues.apache.org/jira/browse/FTPSERVER-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041350#comment-13041350
]
Sebb commented on FTPSERVER-414:
--------------------------------
Actually, I think the data should not be on the status line(s).
Some other FTP servers return data as follows (only first part of lines shown):
212- Status of /:
total 16
drwxr-xr-x 2 0
...
drwxr-xr-x 2 0
212 End of status.
That uses the correct status codes.
213-Status follows:
drwxr-xr-x 14 ftp
...
drwxrwsr-x 23 ftp
213 End of status
Wrong status code used (should be 212)
211-Status of /:
drwxr-xr-x 4 ftp
...
lrw-r--r-- 1 ftp
211 End of status
Wrong status code (should be 212) and leading spaces not required.
The parameterless STAT command behaves as follows in Apache FTPserver:
ftp> quote STAT
211-Apache FtpServer
Connected to 127.0.0.1
Connected from 127.0.0.1
Logged in as anonymous
211 End of status.
That uses the correct status code, and the main content is between the 211
codes.
I think the directory and file status codes should behave similarly (but with
codes 212 and 213 of course).
> STAT / creates invalid directory listing (with Patch)
> -----------------------------------------------------
>
> Key: FTPSERVER-414
> URL: https://issues.apache.org/jira/browse/FTPSERVER-414
> Project: FtpServer
> Issue Type: Bug
> Components: Server
> Affects Versions: 1.0.5
> Reporter: Emmeran Seehuber
>
> Some ftp clients (e.g. Cyberduck on Mac OS X) use the STAT command to list
> directores. The reply contains an invalid status code in the last line, which
> causes the ftp client to ignore the last line. So the last file in the
> directory does not show up in the ftp client listing:
> 614869 [pool-3-thread-6] INFO
> org.apache.ftpserver.listener.nio.FtpLoggingFilter - RECEIVED: STAT /
> 615085 [pool-3-thread-6] INFO
> org.apache.ftpserver.listener.nio.FtpLoggingFilter - SENT: 200---w------- 1
> [email protected] [email protected] 21581 Jan 1 1970 uxz.pdf
> --w------- 1 [email protected] [email protected] 5788 Jan 1
> 1970 abc.pdf
> --w------- 1 [email protected] [email protected] 415447 Jan 1
> 1970 def.pdf
> 200 --w------- 1 [email protected] [email protected] 822782 Jan
> 1 1970 xyz.pdf
> I dont know if this is a bug in the ftp client. But at least the following
> patch to the STAT command fixes the problem for me:
> diff --git a/org/apache/ftpserver/command/impl/STAT.java
> b/org/apache/ftpserver/command/impl/STAT.java
> index 19674b2..5ca76c1 100644
> --- a/org/apache/ftpserver/command/impl/STAT.java
> +++ b/org/apache/ftpserver/command/impl/STAT.java
> @@ -77,10 +77,6 @@ public class STAT extends AbstractCommand {
>
> String dirList = directoryLister.listFiles(parsedArg,
> session.getFileSystemView(), LIST_FILE_FORMATER);
> + // DefaultFtpReply prepends the status code to the last line.
> + // This causes the STAT directory listing to loose the last
> directory entry in some clients
> + // e.g. Cyberduck
> + dirList += " \n";
>
> session
> .write(new DefaultFtpReply(
> With this patch applied the output looks like this:
> 615085 [pool-3-thread-6] INFO
> org.apache.ftpserver.listener.nio.FtpLoggingFilter - SENT: 200---w------- 1
> [email protected] [email protected] 21581 Jan 1 1970 uxz.pdf
> --w------- 1 [email protected] [email protected] 5788 Jan 1
> 1970 abc.pdf
> --w------- 1 [email protected] [email protected] 415447 Jan 1
> 1970 def.pdf
> --w------- 1 [email protected] [email protected] 822782 Jan 1
> 1970 xyz.pdf
> 200
> And know the clients work correctly.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira