You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/05/30 21:35:45 UTC

svn commit: r1129318 - in /mina/ftpserver/trunk/core/src: main/java/org/apache/ftpserver/command/impl/STAT.java test/java/org/apache/ftpserver/clienttests/StatTest.java

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]));