Author: ngn
Date: Mon May 30 19:36:20 2011
New Revision: 1129319
URL: http://svn.apache.org/viewvc?rev=1129319&view=rev
Log:
Returning the correct reply codes for file and directory listings
(FTPSERVER-413)
Modified:
mina/ftpserver/branches/1.0.x/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
mina/ftpserver/branches/1.0.x/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java
Modified:
mina/ftpserver/branches/1.0.x/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
URL:
http://svn.apache.org/viewvc/mina/ftpserver/branches/1.0.x/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java?rev=1129319&r1=1129318&r2=1129319&view=diff
==============================================================================
---
mina/ftpserver/branches/1.0.x/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
(original)
+++
mina/ftpserver/branches/1.0.x/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java
Mon May 30 19:36:20 2011
@@ -77,11 +77,18 @@ public class STAT extends AbstractComman
String dirList = directoryLister.listFiles(parsedArg,
session.getFileSystemView(), LIST_FILE_FORMATER);
-
+
+ int replyCode;
+ if(file.isDirectory()) {
+ replyCode = FtpReply.REPLY_212_DIRECTORY_STATUS;
+ } else {
+ replyCode = FtpReply.REPLY_213_FILE_STATUS;
+ }
+
session
.write(new DefaultFtpReply(
- FtpReply.REPLY_211_SYSTEM_STATUS_REPLY,
- dirList));
+ replyCode,
+ dirList));
} catch (FtpException e) {
session.write(LocalizedFtpReply
Modified:
mina/ftpserver/branches/1.0.x/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java
URL:
http://svn.apache.org/viewvc/mina/ftpserver/branches/1.0.x/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java?rev=1129319&r1=1129318&r2=1129319&view=diff
==============================================================================
---
mina/ftpserver/branches/1.0.x/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java
(original)
+++
mina/ftpserver/branches/1.0.x/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java
Mon May 30 19:36:20 2011
@@ -30,7 +30,7 @@ import java.util.regex.Pattern;
*/
public class StatTest extends ClientTestTemplate {
- private static final String PATTERN =
"^211[-\\s]-rw-------\\s\\s\\s1\\suser\\sgroup\\s{12}0\\s[A-Za-z0-9\\s]{6}\\s\\d\\d:\\d\\d\\stest\\d.txt$";
+ private static final String PATTERN =
"^21\\d[-\\s]-rw-------\\s\\s\\s1\\suser\\sgroup\\s{12}0\\s[A-Za-z0-9\\s]{6}\\s\\d\\d:\\d\\d\\stest\\d.txt$";
private static final File TEST_DIR = new File(ROOT_DIR, "test");
private static final File TEST_FILE1 = new File(TEST_DIR, "test1.txt");
@@ -43,7 +43,7 @@ public class StatTest extends ClientTest
client.login(ADMIN_USERNAME, ADMIN_PASSWORD);
- assertEquals(211, client.stat(TEST_DIR.getName()));
+ assertEquals(212, client.stat(TEST_DIR.getName()));
String[] reply = client.getReplyString().split("\r\n");
assertTrue(reply[0], Pattern.matches(PATTERN, reply[0]));
@@ -56,7 +56,7 @@ public class StatTest extends ClientTest
client.login(ADMIN_USERNAME, ADMIN_PASSWORD);
- assertEquals(211, client.stat(TEST_DIR.getName() + "/" +
TEST_FILE1.getName()));
+ assertEquals(213, client.stat(TEST_DIR.getName() + "/" +
TEST_FILE1.getName()));
String[] reply = client.getReplyString().split("\r\n");
assertTrue(reply[0], Pattern.matches(PATTERN, reply[0]));