Author: ngn Date: Mon May 30 19:35:45 2011 New Revision: 1129318 URL: http://svn.apache.org/viewvc?rev=1129318&view=rev Log: Returning the correct reply codes for file and directory listings (FTPSERVER-413)
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java?rev=1129318&r1=1129317&r2=1129318&view=diff ============================================================================== --- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java (original) +++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/STAT.java Mon May 30 19:35:45 2011 @@ -79,10 +79,17 @@ 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 LocalizedFileActionFtpReply( - FtpReply.REPLY_211_SYSTEM_STATUS_REPLY, - dirList, file)); + replyCode, + dirList, file)); } catch (FtpException e) { session Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java?rev=1129318&r1=1129317&r2=1129318&view=diff ============================================================================== --- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java (original) +++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StatTest.java Mon May 30 19:35:45 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]));