You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Matthew Simoneau (JIRA)" <ji...@apache.org> on 2007/05/23 00:45:16 UTC
[jira] Reopened: (NET-148) Relaxed condition in __getReply causes
other failures.
[ https://issues.apache.org/jira/browse/NET-148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Simoneau reopened NET-148:
----------------------------------
This is still broken in the nightly build. Here is a simple Java program that will reproduce this.
import org.apache.commons.net.ftp.FTPClient;
public class FTPTest {
public static void main(String[] args) throws Exception {
FTPClient ftpClient = new FTPClient();
ftpClient.connect("ftp.us.geocities.com",21);
ftpClient.login("anonymous","anonymous@example.com");
ftpClient.getStatus();
System.out.println(ftpClient.listFiles());
ftpClient.disconnect();
}
}
getStatus() stops reading lines prematurely, which sets up listFiles() to fail.
> Relaxed condition in __getReply causes other failures.
> ------------------------------------------------------
>
> Key: NET-148
> URL: https://issues.apache.org/jira/browse/NET-148
> Project: Commons Net
> Issue Type: Bug
> Affects Versions: 1.4, Nightly Builds
> Reporter: Matthew Simoneau
>
> In FTP.java's __getReply() method, this do/while loop reads multi-line responses from the server:
> do
> {
> line = _controlInput.readLine();
> ...
> }
> while (!(line.length() >= 4 && line.charAt(3) != '-' &&
> Character.isDigit(line.charAt(0))));
> // This is too strong a condition because of non-conforming ftp
> // servers like ftp.funet.fi which sent 226 as the last line of a
> // 426 multi-line reply in response to ls /. We relax the condition to
> // test that the line starts with a digit rather than starting with
> // the code.
> // line.startsWith(code)));
> }
> Note the comment and the commented-out termination condition. I think the relevant spec is http://www.ietf.org/rfc/rfc0959.txt and the section is "4.2. FTP REPLIES". This is causing problems with the return from the STAT command from Geocities' FTP servers. Here is an example reply.
> 211- ftp.us.geocities.com FTP server status:
> Version wu-2.6.0(48) Tue Jan 2 16:30:15 PST 2007
> Connected to 144.212.217.85
> Logged in anonymously
> TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream
> No data connection
> 0 data bytes received in 0 files
> 0 data bytes transmitted in 0 files
> 0 data bytes total in 0 files
> 57 traffic bytes received in 0 transfers
> 733 traffic bytes transmitted in 0 transfers
> 834 traffic bytes total in 0 transfers
> 211 End of status
> Note that the line "0 data bytes total in 0 files" starts with a digit, but it isn't a reply code. This prematurely halts reading of lines from the server, and the remaining lines will look like a reply from the next command.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org