I would like to say that the results you have indicated only come from FTP servers that actually run the UNIX's ls command when a NLST command is received. Other servers probably adhere to the RFC by just returning names.
Here are a few tests I did with various FTP servers: Results from Netscape's anonymous FTP site did match up with what Dennis described. (ftp.netscape.com) Results from GlobalScape's anonymous FTP site always returned just names. ( ftp.globalscape.com) Results from an AS/400 FTP server (IBM's System i) always returned just names. (Private) Results from IPSwitch's WS_FTP server always returned just names. ( ftp.ipswitch.com) Results from Microsoft's anonymous web site running MS FTP service also retruns just names (ftp.microsoft.com) Hopefully this might help making a decision. Sai Pullabhotla www.jMethods.com On Mon, Jun 1, 2009 at 7:39 PM, Dennis Keller (JIRA) <j...@apache.org>wrote: > > [ > https://issues.apache.org/jira/browse/FTPSERVER-287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12715317#action_12715317] > > Dennis Keller commented on FTPSERVER-287: > ----------------------------------------- > > Hi Niklas - I suppose my comment would be that regardless of the text of > the RFC, if you compare the Apache FTPServer response against that of other > FTP servers, you will see the difference (they return paths when the request > includes a path). > > I included an example in my initial posting. I suppose you could interpret > the spec literally, however I urge to you test the cases I've provided using > other ftp servers. I believe the intent of the RFC is to behave similarly to > a list command on a UNIX machine. If you include the path in a list command, > the response will include the target path. The RFC says "... return a stream > of names of files...", which does not exclude the path, if the file was > requested with a path. For example: > > If I execute "nlst file.txt", I expect a response of "file.txt" > If I execute "nlst directory/file.txt", I expect a response of > "directory/file.txt" > If I execute "nlst /directory/file.txt", I expect a response of > "/directory/file.txt" > If I execute "nlst ../parentdir/subdir/file.txt", I expect a response of > "../parentdir/subdir/file.txt" > > This is how other FTP servers work and this is how unix works. The RFC is > vague and open to interpretation, therefore we need to look to other > implementations to find the consensus implementation. As it stands now, we > are unable to use the apache ftp server (before the patch) because of the > significant implementation difference. > > Note that my patch may not be the best solution, however there is an > implementation issue now. So at the very least the test cases should be > included and the implementation constructed around them. I will provide more > examples if you require. > > > NLST: Implementation only supports listing files in working directory > [patch provided] > > > -------------------------------------------------------------------------------------- > > > > Key: FTPSERVER-287 > > URL: https://issues.apache.org/jira/browse/FTPSERVER-287 > > Project: FtpServer > > Issue Type: Bug > > Components: Core > > Affects Versions: 1.1 > > Environment: Fedora 10-64bit and RH 5.2-64bit, Java 1.6.0_12-64 > > Reporter: Dennis Keller > > Fix For: 1.0.2, 1.1 > > > > Attachments: nlst.patch > > > > > > The NLST formatter, as implemented on trunk is insufficient to handle any > request other than a file within in the current working directory. Some > examples: > > ftp> passive > > Passive mode on. > > ftp> nlist /directory/file.txt > > 227 Entering Passive Mode (127,0,0,1,179,241) > > 150 File status okay; about to open data connection. > > file.txt > > 226 Closing data connection. > > Other FTP servers return the following: > > ftp> passive > > Passive mode on. > > ftp> nlist /directory/file.txt > > 227 Entering Passive Mode (127,0,0,1,179,241) > > 150 File status okay; about to open data connection. > > /directory/file.txt > > 226 Closing data connection. > > Upon investigating, I found that the formatter will not handle absolute > file requests, parent directory request or non-absolute child directory > requests. It does not error, it just doesn't give useful output. > > I've modified the code to handle the cases that I could come up with, but > there may be other situations that need to be covered. I'm not an expert on > the FTP specification (but what I could find was not impressive), so there > many be additional cases that need to be covered. > > Please consider the attached patch, with accompanying test cases > > -- > This message is automatically generated by JIRA. > - > You can reply to this email to add a comment to the issue online. > >