[ 
https://issues.apache.org/jira/browse/FTPSERVER-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041037#comment-13041037
 ] 

Niklas Gustavsson commented on FTPSERVER-414:
---------------------------------------------

The reason for asking is if we should change this for all multi-line replies, 
or only for STAT. We're compliant with the RFC as far as I can tell, so this is 
likely a bug in Cyberduck. Have you reported this to the Cyberduck devs?

That said, the RFC says that test on the last line is optional, so I would 
think that the patch would work.

>From the RFC:

         Thus the format for multi-line replies is that the first line
         will begin with the exact required reply code, followed
         immediately by a Hyphen, "-" (also known as Minus), followed by
         text.  The last line will begin with the same code, followed
         immediately by Space <SP>, optionally some text, and the Telnet
         end-of-line code.

            For example:
                                123-First line
                                Second line
                                  234 A line beginning with numbers
                                123 The last line


> 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

Reply via email to