scohen      2004/03/26 04:32:21

  Modified:    net/src/java/org/apache/commons/net/ftp/parser
                        UnixFTPEntryParser.java
               net/src/test/org/apache/commons/net/ftp/parser
                        UnixFTPEntryParserTest.java
  Log:
  PR:27858
  Obtained from:[EMAIL PROTECTED] (Mario Ivankovits)
  Submitted by:Steve Cohen
  Reviewed by:  Steve Cohen
  CVS: ----------------------------------------------------------------------
  CVS: PR:
  CVS:   If this change addresses a PR in the problem report tracking
  CVS:   database, then enter the PR number(s) here.
  CVS: Obtained from:
  CVS:   If this change has been taken from another system, such as NCSA,
  CVS:   then name the system in this line, otherwise delete it.
  CVS: Submitted by:
  CVS:   If this code has been contributed to Apache by someone else; i.e.,
  CVS:   they sent us a patch or a new module, then include their name/email
  CVS:   address here. If this is your work then delete this line.
  CVS: Reviewed by:
  CVS:   If we are doing pre-commit code reviews and someone else has
  CVS:   reviewed your changes, include their name(s) here.
  CVS:   If you have not had it reviewed then delete this line.
  
  Revision  Changes    Path
  1.11      +28 -4     
jakarta-commons/net/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java
  
  Index: UnixFTPEntryParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/net/src/java/org/apache/commons/net/ftp/parser/UnixFTPEntryParser.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- UnixFTPEntryParser.java   18 Mar 2004 13:47:02 -0000      1.10
  +++ UnixFTPEntryParser.java   26 Mar 2004 12:32:21 -0000      1.11
  @@ -40,10 +40,26 @@
       
       /**
        * this is the regular expression used by this parser.
  +      *
  +      * Permissions:
  +      *        r   the file is readable
  +      *    w   the file is writable
  +      *    x   the file is executable
  +      *    -   the indicated permission is not granted
  +      *    L   mandatory     locking occurs during access (the set-group-ID bit is
  +      *        on and the group execution bit is off)
  +      *    s   the set-user-ID or set-group-ID bit is on, and the corresponding
  +      *        user or group execution bit is also on
  +      *    S   undefined     bit-state (the set-user-ID bit is on and the user
  +      *        execution     bit is off)
  +      *    t   the 1000 (octal) bit, or sticky bit, is on [see chmod(1)], and
  +      *        execution     is on
  +      *    T   the 1000 bit is turned on, and execution is off (undefined bit-
  +      *        state)
        */
       private static final String REGEX =
           "([bcdlf-])"
  -        + "(((r|-)(w|-)(x|-))((r|-)(w|-)(x|-))((r|-)(w|-)(x|-)))\\s+"
  +        + 
"(((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-])))\\s+"
           + "(\\d+)\\s+"
           + "(\\S+)\\s+"
           + "(?:(\\S+)\\s+)?"
  @@ -126,8 +142,16 @@
                                      (!group(g).equals("-")));
                   file.setPermission(access, FTPFile.WRITE_PERMISSION,
                                      (!group(g + 1).equals("-")));
  -                file.setPermission(access, FTPFile.EXECUTE_PERMISSION,
  -                                   (!group(g + 2).equals("-")));
  +
  +                             String execPerm = group(g + 2);
  +                             if (!execPerm.equals("-") && 
!Character.isUpperCase(execPerm.charAt(0)))
  +                             {
  +                     file.setPermission(access, FTPFile.EXECUTE_PERMISSION, true);
  +                             }
  +                             else
  +                             {
  +                                     file.setPermission(access, 
FTPFile.EXECUTE_PERMISSION, false);
  +                             }
               }
   
               if (!isDevice)
  
  
  
  1.9       +6 -2      
jakarta-commons/net/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java
  
  Index: UnixFTPEntryParserTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/net/src/test/org/apache/commons/net/ftp/parser/UnixFTPEntryParserTest.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UnixFTPEntryParserTest.java       29 Feb 2004 10:26:53 -0000      1.8
  +++ UnixFTPEntryParserTest.java       26 Mar 2004 12:32:21 -0000      1.9
  @@ -23,7 +23,7 @@
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Steve Cohen</a>
  - * @versionn $Id$
  + * @version $Id$
    */
   public class UnixFTPEntryParserTest extends FTPParseTestFramework
   {
  @@ -63,7 +63,11 @@
           "-rw-r--r--   1 500      500           166 Nov 12  2001 
73131-testtes2.AFP",      
           "-rw-r--r--   1 500      500       2040000 Aug  5 07:35 
testRemoteUPCopyNIX",
           "-rw-r--r--   1 500      500       2040000 Aug  5 07:31 
testRemoteUPDCopyNIX",
  -        "-rw-r--r--   1 500      500       2040000 Aug  5 07:31 
testRemoteUPVCopyNIX"       
  +        "-rw-r--r--   1 500      500       2040000 Aug  5 07:31 
testRemoteUPVCopyNIX",
  +             "-rw-r--r-T   1 500      500             0 Mar 25 08:20 testSticky",
  +             "-rwxr-xr-t   1 500      500             0 Mar 25 08:21 
testStickyExec",
  +             "-rwSr-Sr--   1 500      500             0 Mar 25 08:22 testSuid",
  +             "-rwsr-sr--   1 500      500             0 Mar 25 08:23 testSuidExec"
       };
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to