Author: danielr
Date: 2008-03-15 11:56:47 +0100 (Sat, 15 Mar 2008)
New Revision: 4566

Modified:
   trunk/source/de/anomic/net/ftpc.java
Log:
ftpc: fixed date parsing, some refactoring

Modified: trunk/source/de/anomic/net/ftpc.java
===================================================================
--- trunk/source/de/anomic/net/ftpc.java        2008-03-15 10:46:55 UTC (rev 
4565)
+++ trunk/source/de/anomic/net/ftpc.java        2008-03-15 10:56:47 UTC (rev 
4566)
@@ -72,6 +72,7 @@
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.StringTokenizer;
@@ -88,6 +89,7 @@
     private final InputStream in;
     private final PrintStream out;
     private final PrintStream err;
+
     private boolean glob = true; // glob = false -> filenames are taken
     // literally for mget, ..
 
@@ -131,6 +133,11 @@
     // entry info cache
     private final Map<String, entryInfo> infoCache = new HashMap<String, 
entryInfo>();
 
+    // date-format in LIST (english month names)
+    private static final SimpleDateFormat lsDateFormat = new 
SimpleDateFormat("MMM d y H:m", new Locale("en"));
+
+    // TODO: implement RFC 2640 Internationalization
+
     public ftpc() {
         this(System.in, System.out, System.err);
     }
@@ -197,20 +204,20 @@
 
             }
         } catch (final Exception e) {
-            errPrintln(logPrefix + "---- Error - ftp exception: " + e);
+            errPrintln("Error - ftp exception: " + e);
             e.printStackTrace(err);
         }
     }
 
     private void errPrintln(final String msg) {
         if (err != null) {
-            err.println(msg);
+            err.println(logPrefix + "---- " + msg);
         }
     }
 
     private void outPrintln(final String msg) {
         if (out != null) {
-            out.println(msg);
+            out.println(logPrefix + msg);
         }
     }
 
@@ -234,7 +241,7 @@
                 command = command.substring(pos + 1);
             }
             if (promptIt) {
-                outPrintln(logPrefix + prompt + com);
+                outPrintln(prompt + com);
             }
             cmd = line2args(com);
             try {
@@ -245,15 +252,15 @@
                 } else if (ControlSocket == null) {
                     // the error was probably caused because there is no
                     // connection
-                    errPrintln(logPrefix + "---- not connected. no effect.");
+                    errPrintln("not connected. no effect.");
                     e.printStackTrace();
                     return ret;
                 } else {
-                    errPrintln(logPrefix + "---- ftp internal exception: 
target exception " + e);
+                    errPrintln("ftp internal exception: target exception " + 
e);
                     return ret;
                 }
             } catch (final IllegalAccessException e) {
-                errPrintln(logPrefix + "---- ftp internal exception: wrong 
access " + e);
+                errPrintln("ftp internal exception: wrong access " + e);
                 return ret;
             } catch (final NoSuchMethodException e) {
                 // consider first that the user attempted to execute a java
@@ -264,7 +271,7 @@
                     try {
                         javaexec(cmd);
                     } catch (final Exception ee) {
-                        errPrintln(logPrefix + "---- Command '" + cmd[0] + "' 
not supported. Try 'HELP'.");
+                        errPrintln("Command '" + cmd[0] + "' not supported. 
Try 'HELP'.");
                     }
                 } else {
                     // try a remote exec
@@ -383,41 +390,41 @@
 
             // handle result
             if (result != null) {
-                outPrintln(logPrefix + "returns " + result);
+                outPrintln("returns " + result);
             }
 
             // set the local path to the user.dir (which may have changed)
             currentLocalPath = new File((String) pr.get("user.dir"));
 
         } catch (final ClassNotFoundException e) {
-            // errPrintln(logPrefix + "---- cannot find class file " + obj +
+            // errPrintln("cannot find class file " + obj +
             // ".class");
             // class file does not exist, go silently over it to not show
             // everybody that the
             // system attempted to load a class file
-            errPrintln(logPrefix + "---- Command '" + obj + "' not supported. 
Try 'HELP'.");
+            errPrintln("Command '" + obj + "' not supported. Try 'HELP'.");
         } catch (final NoSuchMethodException e) {
-            errPrintln(logPrefix + "---- no \"public static main(String 
args[])\" in " + obj);
+            errPrintln("no \"public static main(String args[])\" in " + obj);
         } catch (final InvocationTargetException e) {
             final Throwable orig = e.getTargetException();
             if (orig.getMessage() == null) {
             } else {
-                errPrintln(logPrefix + "---- Exception from " + obj + ": " + 
orig.getMessage());
+                errPrintln("Exception from " + obj + ": " + orig.getMessage());
                 orig.printStackTrace(err);
             }
         } catch (final IllegalAccessException e) {
-            errPrintln(logPrefix + "---- Illegal access for " + obj + ": class 
is probably not declared as public");
+            errPrintln("Illegal access for " + obj + ": class is probably not 
declared as public");
             e.printStackTrace(err);
         } catch (final NullPointerException e) {
-            errPrintln(logPrefix + "---- main(String args[]) is not defined as 
static for " + obj);
+            errPrintln("main(String args[]) is not defined as static for " + 
obj);
             /*
              * } catch (IOException e) { // class file does not exist, go
              * silently over it to not show everybody that the // system
-             * attempted to load a class file errPrintln(logPrefix + "----
-             * Command '" + obj + "' not supported. Try 'HELP'.");
+             * attempted to load a class file errPrintln("Command '" + obj + "'
+             * not supported. Try 'HELP'.");
              */
         } catch (final Exception e) {
-            errPrintln(logPrefix + "---- Exception caught: " + e);
+            errPrintln("Exception caught: " + e);
             e.printStackTrace(err);
         }
 
@@ -430,26 +437,26 @@
 
     public boolean ASCII() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: ASCII  (no parameter)");
+            errPrintln("Syntax: ASCII  (no parameter)");
             return true;
         }
         try {
             literal("TYPE A");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: ASCII transfer type not 
supported by server.");
+            errPrintln("Error: ASCII transfer type not supported by server.");
         }
         return true;
     }
 
     public boolean BINARY() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: BINARY  (no parameter)");
+            errPrintln("Syntax: BINARY  (no parameter)");
             return true;
         }
         try {
             literal("TYPE I");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: BINARY transfer type not 
supported by server.");
+            errPrintln("Error: BINARY transfer type not supported by server.");
         }
         return true;
     }
@@ -460,7 +467,7 @@
 
     public boolean CD() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: CD <path>");
+            errPrintln("Syntax: CD <path>");
             return true;
         }
         if (ControlSocket == null) {
@@ -475,7 +482,7 @@
                 throw new IOException(reply);
             }
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: change of working directory to 
path " + cmd[1] + " failed.");
+            errPrintln("Error: change of working directory to path " + cmd[1] 
+ " failed.");
         }
         return true;
     }
@@ -514,14 +521,14 @@
         final entryInfo info = fileInfo(path);
         Date date = null;
         if (info != null) {
-            date = info.getDate();
+            date = info.date;
         }
         return date;
     }
 
     public boolean DEL() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: DEL <file>");
+            errPrintln("Syntax: DEL <file>");
             return true;
         }
         if (ControlSocket == null) {
@@ -530,7 +537,7 @@
         try {
             rmForced(cmd[1]);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: deletion of file " + cmd[1] + 
" failed.");
+            errPrintln("Error: deletion of file " + cmd[1] + " failed.");
         }
         return true;
     }
@@ -541,7 +548,7 @@
 
     public boolean DIR() {
         if (cmd.length > 2) {
-            errPrintln(logPrefix + "---- Syntax: DIR [<path>|<file>]");
+            errPrintln("Syntax: DIR [<path>|<file>]");
             return true;
         }
         if (ControlSocket == null) {
@@ -556,7 +563,7 @@
             }
             printElements(l);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: remote list not available");
+            errPrintln("Error: remote list not available");
         }
         return true;
     }
@@ -564,9 +571,9 @@
     public boolean DISCONNECT() {
         try {
             quit();
-            outPrintln(logPrefix + "---- Connection closed.");
+            outPrintln("---- Connection closed.");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Connection to server lost.");
+            errPrintln("Connection to server lost.");
         }
         ControlSocket = null;
         DataSocketActive = null;
@@ -616,7 +623,7 @@
 
     public boolean GET() {
         if ((cmd.length < 2) || (cmd.length > 3)) {
-            errPrintln(logPrefix + "---- Syntax: GET <remote-file> 
[<local-file>]");
+            errPrintln("Syntax: GET <remote-file> [<local-file>]");
             return true;
         }
         final String remote = cmd[1]; // (new File(cmd[1])).getName();
@@ -626,7 +633,7 @@
         final File local = absoluteLocalFile(localFilename);
 
         if (local.exists()) {
-            errPrintln(logPrefix + "---- Error: local file " + 
local.toString() + " already exists.");
+            errPrintln("Error: local file " + local.toString() + " already 
exists.");
             errPrintln(logPrefix + "            File " + remote + " not 
retrieved. Local file unchanged.");
         } else {
             if (withoutLocalFile) {
@@ -635,8 +642,7 @@
                 try {
                     get(local.getAbsolutePath(), remote);
                 } catch (final IOException e) {
-                    errPrintln(logPrefix + "---- Error: retrieving file " + 
remote + " failed. (" + e.getMessage()
-                            + ")");
+                    errPrintln("Error: retrieving file " + remote + " failed. 
(" + e.getMessage() + ")");
                 }
             }
         }
@@ -667,7 +673,7 @@
                     rmForced(remote);
                 }
             } catch (final IOException eee) {
-                errPrintln(logPrefix + "---- Warning: remote file or path " + 
remote + " cannot be removed.");
+                errPrintln("Warning: remote file or path " + remote + " cannot 
be removed.");
             }
         } catch (final IOException e) {
             if (e.getMessage().startsWith("550")) {
@@ -690,13 +696,13 @@
                             rmForced(remote);
                         }
                     } catch (final IOException eee) {
-                        errPrintln(logPrefix + "---- Warning: remote file or 
path " + remote + " cannot be removed.");
+                        errPrintln("Warning: remote file or path " + remote + 
" cannot be removed.");
                     }
                 } else {
-                    errPrintln(logPrefix + "---- Error: remote file or path " 
+ remote + " does not exist.");
+                    errPrintln("Error: remote file or path " + remote + " does 
not exist.");
                 }
             } else {
-                errPrintln(logPrefix + "---- Error: retrieving file " + remote 
+ " failed. (" + e.getMessage() + ")");
+                errPrintln("Error: retrieving file " + remote + " failed. (" + 
e.getMessage() + ")");
             }
         }
     }
@@ -740,16 +746,16 @@
 
     public boolean GLOB() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: GLOB  (no parameter)");
+            errPrintln("Syntax: GLOB  (no parameter)");
             return true;
         }
         glob = !glob;
-        outPrintln(logPrefix + "---- globbing is now turned " + ((glob) ? "ON" 
: "OFF"));
+        outPrintln("---- globbing is now turned " + ((glob) ? "ON" : "OFF"));
         return true;
     }
 
     public boolean HASH() {
-        errPrintln(logPrefix + "---- no games implemented");
+        errPrintln("no games implemented");
         return true;
     }
 
@@ -764,7 +770,7 @@
 
     public boolean JJENCODE() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: JJENCODE <path>");
+            errPrintln("Syntax: JJENCODE <path>");
             return true;
         }
         final String path = cmd[1];
@@ -789,17 +795,17 @@
                 exec("cd ..;jar -cfM \"" + path + ".jj\" \"" + path + 
".jar\"", true);
                 exec("rm \"" + path + ".jar\"", true);
             } else {
-                errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " denotes not to a directory.");
+                errPrintln("Error: local path " + newPath.toString() + " 
denotes not to a directory.");
             }
         } else {
-            errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " does not exist.");
+            errPrintln("Error: local path " + newPath.toString() + " does not 
exist.");
         }
         return true;
     }
 
     public boolean JJDECODE() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: JJENCODE <path>");
+            errPrintln("Syntax: JJENCODE <path>");
             return true;
         }
         final String path = cmd[1];
@@ -818,13 +824,13 @@
                     exec("mkdir \"" + path + ".dir\"", true);
 
                 } else {
-                    errPrintln(logPrefix + "---- Error: target dir " + 
newFolder.toString() + " cannot be created");
+                    errPrintln("Error: target dir " + newFolder.toString() + " 
cannot be created");
                 }
             } else {
-                errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " must denote to jar/jar file");
+                errPrintln("Error: local path " + newPath.toString() + " must 
denote to jar/jar file");
             }
         } else {
-            errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " does not exist.");
+            errPrintln("Error: local path " + newPath.toString() + " does not 
exist.");
         }
         return true;
     }
@@ -1002,7 +1008,7 @@
 
     public boolean LCD() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: LCD <path>");
+            errPrintln("Syntax: LCD <path>");
             return true;
         }
         final String path = cmd[1];
@@ -1015,12 +1021,12 @@
         if (newPath.exists()) {
             if (newPath.isDirectory()) {
                 currentLocalPath = newPath;
-                outPrintln(logPrefix + "---- New local path: " + 
currentLocalPath.toString());
+                outPrintln("---- New local path: " + 
currentLocalPath.toString());
             } else {
-                errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " denotes not a directory.");
+                errPrintln("Error: local path " + newPath.toString() + " 
denotes not a directory.");
             }
         } else {
-            errPrintln(logPrefix + "---- Error: local path " + 
newPath.toString() + " does not exist.");
+            errPrintln("Error: local path " + newPath.toString() + " does not 
exist.");
         }
         return true;
     }
@@ -1031,12 +1037,12 @@
 
     public boolean LDIR() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: LDIR  (no parameter)");
+            errPrintln("Syntax: LDIR  (no parameter)");
             return true;
         }
         final String[] name = currentLocalPath.list();
         for (int n = 0; n < name.length; ++n) {
-            outPrintln(logPrefix + ls(new File(currentLocalPath, name[n])));
+            outPrintln(ls(new File(currentLocalPath, name[n])));
         }
         return true;
     }
@@ -1143,30 +1149,34 @@
         if (tokens.matches()) {
             final boolean isDir = tokens.group(1).startsWith("d");
             int size = -1;
-            int day = -1;
             try {
                 size = Integer.parseInt(tokens.group(2));
-                day = Integer.parseInt(tokens.group(4));
             } catch (final NumberFormatException e) {
-                errPrintln(logPrefix + "not a number in list-entry: " + 
e.getMessage());
+                errPrintln("Error: not a number in list-entry: " + 
e.getMessage());
                 return null;
             }
             String time;
-            int year;
+            String year;
             if (tokens.group(5).contains(":")) {
                 time = tokens.group(5);
-                year = Calendar.getInstance().get(Calendar.YEAR); // current
+                year = 
String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); // current
                 // year
             } else {
                 time = "00:00";
-                try {
-                    year = Integer.parseInt(tokens.group(5));
-                } catch (final NumberFormatException e) {
-                    errPrintln(logPrefix + "not a number in list-entry: " + 
e.getMessage());
-                    return null;
-                }
+                year = tokens.group(5);
             }
-            return new entryInfo(isDir, size, tokens.group(3), day, time, 
year, tokens.group(6));
+            // construct date string
+            // this has to be done, because the list-entry may have multiple
+            // spaces, tabs or so
+            Date date;
+            final String dateString = tokens.group(3) + " " + tokens.group(4) 
+ " " + year + " " + time;
+            try {
+                date = lsDateFormat.parse(dateString);
+            } catch (ParseException e) {
+                errPrintln(logPrefix + "---- Error: not ls date-format '" + 
dateString + "': " + e.getMessage());
+                date = new Date();
+            }
+            return new entryInfo(isDir, size, date, tokens.group(6));
         }
         return null;
     }
@@ -1187,66 +1197,30 @@
          */
         public final int size;
         /**
-         * month as string like Apr
+         * date of file
          */
-        public final String month;
+        public final Date date;
         /**
-         * day of month
-         */
-        public final int day;
-        /**
-         * time in [h]h:mm format
-         */
-        public final String time;
-        /**
-         * year
-         */
-        public final int year;
-        /**
          * name of entry
          */
         public final String name;
 
-        final SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM y 
H:m");
-
         /**
          * constructor
          * 
          * @param isDir
          * @param size
          *                bytes
-         * @param month
-         *                3 letters, ie 'Apr' or 'Dez'
-         * @param day
-         * @param time
-         *                hh:mm
-         * @param year
+         * @param date
          * @param name
          */
-        public entryInfo(final boolean isDir, final int size, final String 
month, final int day, final String time,
-                final int year, final String name) {
+        public entryInfo(final boolean isDir, final int size, final Date date, 
final String name) {
             this.isDir = isDir;
             this.size = size;
-            this.month = month;
-            this.day = day;
-            this.time = time;
-            this.year = year;
+            this.date = date;
             this.name = name;
         }
 
-        /**
-         * @return
-         */
-        public Date getDate() {
-            // current date as default
-            Date date = new Date();
-            try {
-                date = dateFormat.parse(day + " " + month + " " + year + " " + 
time);
-            } catch (final ParseException e) {
-            }
-            return date;
-        }
-
         /*
          * (non-Javadoc)
          * 
@@ -1260,7 +1234,7 @@
             info.append(", size=");
             info.append(size);
             info.append(", ");
-            info.append(getDate());
+            info.append(date);
             info.append(")");
             return info.toString();
         }
@@ -1309,7 +1283,7 @@
 
     public boolean LITERAL() {
         if (cmd.length == 1) {
-            errPrintln(logPrefix + "---- Syntax: LITERAL <ftp-command> 
[<command-argument>]   (see RFC959)");
+            errPrintln("Syntax: LITERAL <ftp-command> [<command-argument>]   
(see RFC959)");
             return true;
         }
         String s = "";
@@ -1319,7 +1293,7 @@
         try {
             literal(s.substring(1));
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: Syntax of FTP-command wrong. 
See RFC959 for details.");
+            errPrintln("Error: Syntax of FTP-command wrong. See RFC959 for 
details.");
         }
         return true;
     }
@@ -1334,15 +1308,15 @@
 
     public boolean LMKDIR() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: LMKDIR <folder-name>");
+            errPrintln("Syntax: LMKDIR <folder-name>");
             return true;
         }
         final File f = new File(currentLocalPath, cmd[1]);
         if (f.exists()) {
-            errPrintln(logPrefix + "---- Error: local file/folder " + cmd[1] + 
" already exists");
+            errPrintln("Error: local file/folder " + cmd[1] + " already 
exists");
         } else {
             if (!f.mkdir()) {
-                errPrintln(logPrefix + "---- Error: creation of local folder " 
+ cmd[1] + " failed");
+                errPrintln("Error: creation of local folder " + cmd[1] + " 
failed");
             }
         }
         return true;
@@ -1350,14 +1324,14 @@
 
     public boolean LMV() {
         if (cmd.length != 3) {
-            errPrintln(logPrefix + "---- Syntax: LMV <from> <to>");
+            errPrintln("Syntax: LMV <from> <to>");
             return true;
         }
         final File from = new File(cmd[1]);
         final File to = new File(cmd[2]);
         if (!to.exists()) {
             if (from.renameTo(to)) {
-                outPrintln(logPrefix + "---- \"" + from.toString() + "\" 
renamed to \"" + to.toString() + "\"");
+                outPrintln("---- \"" + from.toString() + "\" renamed to \"" + 
to.toString() + "\"");
             } else {
                 errPrintln(logPrefix + "rename failed");
             }
@@ -1369,10 +1343,10 @@
 
     public boolean LPWD() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: LPWD  (no parameter)");
+            errPrintln("Syntax: LPWD  (no parameter)");
             return true;
         }
-        outPrintln(logPrefix + "---- Local path: " + 
currentLocalPath.toString());
+        outPrintln("---- Local path: " + currentLocalPath.toString());
         return true;
     }
 
@@ -1382,15 +1356,15 @@
 
     public boolean LRMDIR() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: LRMDIR <folder-name>");
+            errPrintln("Syntax: LRMDIR <folder-name>");
             return true;
         }
         final File f = new File(currentLocalPath, cmd[1]);
         if (!f.exists()) {
-            errPrintln(logPrefix + "---- Error: local folder " + cmd[1] + " 
does not exist");
+            errPrintln("Error: local folder " + cmd[1] + " does not exist");
         } else {
             if (!f.delete()) {
-                errPrintln(logPrefix + "---- Error: deletion of local folder " 
+ cmd[1] + " failed");
+                errPrintln("Error: deletion of local folder " + cmd[1] + " 
failed");
             }
         }
         return true;
@@ -1398,15 +1372,15 @@
 
     public boolean LRM() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: LRM <file-name>");
+            errPrintln("Syntax: LRM <file-name>");
             return true;
         }
         final File f = new File(currentLocalPath, cmd[1]);
         if (!f.exists()) {
-            errPrintln(logPrefix + "---- Error: local file " + cmd[1] + " does 
not exist");
+            errPrintln("Error: local file " + cmd[1] + " does not exist");
         } else {
             if (!f.delete()) {
-                errPrintln(logPrefix + "---- Error: deletion of file " + 
cmd[1] + " failed");
+                errPrintln("Error: deletion of file " + cmd[1] + " failed");
             }
         }
         return true;
@@ -1414,7 +1388,7 @@
 
     public boolean LS() {
         if (cmd.length > 2) {
-            errPrintln(logPrefix + "---- Syntax: LS [<path>|<file>]");
+            errPrintln("Syntax: LS [<path>|<file>]");
             return true;
         }
         if (ControlSocket == null) {
@@ -1429,7 +1403,7 @@
             }
             printElements(l);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: remote list not available");
+            errPrintln("Error: remote list not available");
         }
         return true;
     }
@@ -1438,11 +1412,12 @@
      * @param list
      */
     private void printElements(final List<String> list) {
-        outPrintln(logPrefix + "---- 
v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v");
+        outPrintln("---- 
v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v---v");
         for (final String element : list) {
-            outPrintln(logPrefix + element);
+            outPrintln(element);
+            outPrintln("--> " + parseListData(element));
         }
-        outPrintln(logPrefix + "---- 
^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^");
+        outPrintln("---- 
^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^---^");
     }
 
     private List<String> list(final String path, final boolean extended) 
throws IOException {
@@ -1499,7 +1474,7 @@
 
     public boolean MKDIR() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: MKDIR <folder-name>");
+            errPrintln("Syntax: MKDIR <folder-name>");
             return true;
         }
         if (ControlSocket == null) {
@@ -1514,20 +1489,20 @@
                 throw new IOException(reply);
             }
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: creation of folder " + cmd[1] 
+ " failed");
+            errPrintln("Error: creation of folder " + cmd[1] + " failed");
         }
         return true;
     }
 
     public boolean MGET() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: MGET <file-pattern>");
+            errPrintln("Syntax: MGET <file-pattern>");
             return true;
         }
         try {
             mget(cmd[1], false);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: mget failed (" + 
e.getMessage() + ")");
+            errPrintln("Error: mget failed (" + e.getMessage() + ")");
         }
         return true;
     }
@@ -1539,7 +1514,7 @@
             if (matches(remote, pattern)) {
                 local = new File(currentLocalPath, remote);
                 if (local.exists()) {
-                    errPrintln(logPrefix + "---- Warning: local file " + 
local.toString() + " overwritten.");
+                    errPrintln("Warning: local file " + local.toString() + " 
overwritten.");
                     local.delete();
                 }
                 retrieveFilesRecursively(remote, remove);
@@ -1549,13 +1524,13 @@
 
     public boolean MOVEDOWN() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: MOVEDOWN <file-pattern>");
+            errPrintln("Syntax: MOVEDOWN <file-pattern>");
             return true;
         }
         try {
             mget(cmd[1], true);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: movedown failed (" + 
e.getMessage() + ")");
+            errPrintln("Error: movedown failed (" + e.getMessage() + ")");
         }
         return true;
     }
@@ -1567,7 +1542,7 @@
      */
     public boolean MV() {
         if (cmd.length != 3) {
-            errPrintln(logPrefix + "---- Syntax: MV <from> <to>");
+            errPrintln("Syntax: MV <from> <to>");
             return true;
         }
         if (ControlSocket == null) {
@@ -1588,27 +1563,27 @@
                 throw new IOException(reply);
             }
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: rename of " + cmd[1] + " to " 
+ cmd[2] + " failed.");
+            errPrintln("Error: rename of " + cmd[1] + " to " + cmd[2] + " 
failed.");
         }
         return true;
     }
 
     public boolean NOOP() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: NOOP  (no parameter)");
+            errPrintln("Syntax: NOOP  (no parameter)");
             return true;
         }
         try {
             literal("NOOP");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: server does not know how to do 
nothing");
+            errPrintln("Error: server does not know how to do nothing");
         }
         return true;
     }
 
     public boolean OPEN() {
         if ((cmd.length < 2) || (cmd.length > 3)) {
-            errPrintln(logPrefix + "---- Syntax: OPEN <host> [<port>]");
+            errPrintln("Syntax: OPEN <host> [<port>]");
             return true;
         }
         int port = 21;
@@ -1626,10 +1601,10 @@
         }
         try {
             open(cmd[1], port);
-            outPrintln(logPrefix + "---- Connection to " + cmd[1] + " 
established.");
+            outPrintln("---- Connection to " + cmd[1] + " established.");
             prompt = "ftp [" + cmd[1] + "]>";
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: connecting " + cmd[1] + " on 
port " + port + " failed.");
+            errPrintln("Error: connecting " + cmd[1] + " on port " + port + " 
failed.");
         }
         return true;
     }
@@ -1654,25 +1629,25 @@
     }
 
     public boolean PROMPT() {
-        errPrintln(logPrefix + "---- prompt is always off");
+        errPrintln("prompt is always off");
         return true;
     }
 
     public boolean PUT() {
         if ((cmd.length < 2) || (cmd.length > 3)) {
-            errPrintln(logPrefix + "---- Syntax: PUT <local-file> 
[<remote-file>]");
+            errPrintln("Syntax: PUT <local-file> [<remote-file>]");
             return true;
         }
         final File local = new File(currentLocalPath, cmd[1]);
         final String remote = (cmd.length == 2) ? local.getName() : cmd[2];
         if (!local.exists()) {
-            errPrintln(logPrefix + "---- Error: local file " + 
local.toString() + " does not exist.");
+            errPrintln("Error: local file " + local.toString() + " does not 
exist.");
             errPrintln(logPrefix + "            Remote file " + remote + " not 
overwritten.");
         } else {
             try {
                 put(local.getAbsolutePath(), remote);
             } catch (final IOException e) {
-                errPrintln(logPrefix + "---- Error: transmitting file " + 
local.toString() + " failed.");
+                errPrintln("Error: transmitting file " + local.toString() + " 
failed.");
             }
         }
         return true;
@@ -1680,16 +1655,16 @@
 
     public boolean PWD() {
         if (cmd.length > 1) {
-            errPrintln(logPrefix + "---- Syntax: PWD  (no parameter)");
+            errPrintln("Syntax: PWD  (no parameter)");
             return true;
         }
         if (ControlSocket == null) {
             return LPWD();
         }
         try {
-            outPrintln(logPrefix + "---- Current remote path is: " + pwd());
+            outPrintln("---- Current remote path is: " + pwd());
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: remote path not available");
+            errPrintln("Error: remote path not available");
         }
         return true;
     }
@@ -1710,20 +1685,20 @@
 
     public boolean REMOTEHELP() {
         if (cmd.length != 1) {
-            errPrintln(logPrefix + "---- Syntax: REMOTEHELP  (no parameter)");
+            errPrintln("Syntax: REMOTEHELP  (no parameter)");
             return true;
         }
         try {
             literal("HELP");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: remote help not supported by 
server.");
+            errPrintln("Error: remote help not supported by server.");
         }
         return true;
     }
 
     public boolean RMDIR() {
         if (cmd.length != 2) {
-            errPrintln(logPrefix + "---- Syntax: RMDIR <folder-name>");
+            errPrintln("Syntax: RMDIR <folder-name>");
             return true;
         }
         if (ControlSocket == null) {
@@ -1732,7 +1707,7 @@
         try {
             rmForced(cmd[1]);
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: deletion of folder " + cmd[1] 
+ " failed.");
+            errPrintln("Error: deletion of folder " + cmd[1] + " failed.");
         }
         return true;
     }
@@ -1798,180 +1773,180 @@
 
     public boolean USER() {
         if (cmd.length != 3) {
-            errPrintln(logPrefix + "---- Syntax: USER <user-name> <password>");
+            errPrintln("Syntax: USER <user-name> <password>");
             return true;
         }
         try {
             login(cmd[1], cmd[2]);
-            outPrintln(logPrefix + "---- Granted access for user " + cmd[1] + 
".");
+            outPrintln("---- Granted access for user " + cmd[1] + ".");
         } catch (final IOException e) {
-            errPrintln(logPrefix + "---- Error: authorization of user " + 
cmd[1] + " failed.");
+            errPrintln("Error: authorization of user " + cmd[1] + " failed.");
         }
         return true;
     }
 
     public boolean APPEND() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean HELP() {
-        outPrintln(logPrefix + "---- ftp HELP ----");
-        outPrintln(logPrefix + "");
-        outPrintln(logPrefix + "This ftp client shell can act as command shell 
for the local host as well for the");
-        outPrintln(logPrefix + "remote host. Commands that point to the local 
host are preceded by 'L'.");
-        outPrintln(logPrefix + "");
-        outPrintln(logPrefix + "Supported Commands:");
-        outPrintln(logPrefix + "ASCII");
-        outPrintln(logPrefix + "   switch remote server to ASCII transfer 
mode");
-        outPrintln(logPrefix + "BINARY");
-        outPrintln(logPrefix + "   switch remote server to BINARY transfer 
mode");
-        outPrintln(logPrefix + "BYE");
-        outPrintln(logPrefix + "   quit the command shell (same as EXIT)");
-        outPrintln(logPrefix + "CD <path>");
-        outPrintln(logPrefix + "   change remote path");
-        outPrintln(logPrefix + "CLOSE");
-        outPrintln(logPrefix + "   close connection to remote host (same as 
DISCONNECT)");
-        outPrintln(logPrefix + "DEL <file>");
-        outPrintln(logPrefix + "   delete file on remote server (same as RM)");
-        outPrintln(logPrefix + "RM <file>");
-        outPrintln(logPrefix + "   remove file from remote server (same as 
DEL)");
-        outPrintln(logPrefix + "DIR [<path>|<file>] ");
-        outPrintln(logPrefix + "   print file information for remote directory 
or file");
-        outPrintln(logPrefix + "DISCONNECT");
-        outPrintln(logPrefix + "   disconnect from remote server (same as 
CLOSE)");
-        outPrintln(logPrefix + "EXIT");
-        outPrintln(logPrefix + "   quit the command shell (same as BYE)");
-        outPrintln(logPrefix + "GET <remote-file> [<local-file>]");
-        outPrintln(logPrefix + "   load <remote-file> from remote server and 
store it locally,");
-        outPrintln(logPrefix + "   optionally to <local-file>. if the 
<remote-file> is a directory,");
-        outPrintln(logPrefix + "   then all files in that directory are 
retrieved,");
-        outPrintln(logPrefix + "   including recursively all subdirectories.");
-        outPrintln(logPrefix + "GLOB");
-        outPrintln(logPrefix + "   toggles globbing: matching with wild cards 
or not");
-        outPrintln(logPrefix + "COPY");
-        outPrintln(logPrefix + "   copies local files");
-        outPrintln(logPrefix + "LCD <path>");
-        outPrintln(logPrefix + "   local directory change");
-        outPrintln(logPrefix + "LDEL <file>");
-        outPrintln(logPrefix + "   local file delete");
-        outPrintln(logPrefix + "LDIR");
-        outPrintln(logPrefix + "   shows local directory content");
-        outPrintln(logPrefix + "LITERAL <ftp-command> [<command-argument>]");
-        outPrintln(logPrefix + "   Sends FTP commands as documented in 
RFC959");
-        outPrintln(logPrefix + "LLS");
-        outPrintln(logPrefix + "   as LDIR");
-        outPrintln(logPrefix + "LMD");
-        outPrintln(logPrefix + "   as LMKDIR");
-        outPrintln(logPrefix + "LMV <local-from> <local-to>");
-        outPrintln(logPrefix + "   copies local files");
-        outPrintln(logPrefix + "LPWD");
-        outPrintln(logPrefix + "   prints local path");
-        outPrintln(logPrefix + "LRD");
-        outPrintln(logPrefix + "   as LMKDIR");
-        outPrintln(logPrefix + "LRMD <folder-name>");
-        outPrintln(logPrefix + "   deletes local directory <folder-name>");
-        outPrintln(logPrefix + "LRM <file-name>");
-        outPrintln(logPrefix + "   deletes local file <file-name>");
-        outPrintln(logPrefix + "LS [<path>|<file>]");
-        outPrintln(logPrefix + "   prints list of remote directory <path> or 
information of file <file>");
-        outPrintln(logPrefix + "MDIR");
-        outPrintln(logPrefix + "   as MKDIR");
-        outPrintln(logPrefix + "MGET <file-pattern>");
-        outPrintln(logPrefix + "   copies files from remote server that fits 
into the");
-        outPrintln(logPrefix + "   pattern <file-pattern> to the local path.");
-        outPrintln(logPrefix + "MOVEDOWN <file-pattern>");
-        outPrintln(logPrefix + "   copies files from remote server as with 
MGET");
-        outPrintln(logPrefix + "   and deletes them afterwards on the remote 
server");
-        outPrintln(logPrefix + "MV <from> <to>");
-        outPrintln(logPrefix + "   moves or renames files on the local host");
-        outPrintln(logPrefix + "NOOP");
-        outPrintln(logPrefix + "   sends the NOOP command to the remote server 
(which does nothing)");
-        outPrintln(logPrefix + "   This command is usually used to measure the 
speed of the remote server.");
-        outPrintln(logPrefix + "OPEN <host[':'port]> [<port>]");
-        outPrintln(logPrefix + "   connects the ftp shell to the remote server 
<host>. Optionally,");
-        outPrintln(logPrefix + "   a port number can be given, the default 
port number is 21.");
-        outPrintln(logPrefix + "   Example: OPEN localhost:2121 or OPEN 
192.168.0.1 2121");
-        outPrintln(logPrefix + "PROMPT");
-        outPrintln(logPrefix + "   compatibility command, that usually toggles 
beween prompting on or off.");
-        outPrintln(logPrefix + "   ftp has prompting switched off by default 
and cannot switched on.");
-        outPrintln(logPrefix + "PUT <local-file> [<remote-file>]");
-        outPrintln(logPrefix + "   copies the <local-file> to the remote 
server to the current remote path or");
-        outPrintln(logPrefix + "   optionally to the given <remote-file> 
path.");
-        outPrintln(logPrefix + "PWD");
-        outPrintln(logPrefix + "   prints current path on the remote server.");
-        outPrintln(logPrefix + "REMOTEHELP");
-        outPrintln(logPrefix + "   asks the remote server to print the help 
text of the remote server");
-        outPrintln(logPrefix + "RMDIR <folder-name>");
-        outPrintln(logPrefix + "   removes the directory <folder-name> on the 
remote server");
-        outPrintln(logPrefix + "QUIT");
-        outPrintln(logPrefix + "   exits the ftp application");
-        outPrintln(logPrefix + "RECV");
-        outPrintln(logPrefix + "   as GET");
-        outPrintln(logPrefix + "USER <user-name> <password>");
-        outPrintln(logPrefix + "   logs into the remote server with the user 
<user-name>");
-        outPrintln(logPrefix + "   and the password <password>");
-        outPrintln(logPrefix + "");
-        outPrintln(logPrefix + "");
-        outPrintln(logPrefix + "EXAMPLE:");
-        outPrintln(logPrefix + "a standard sessions looks like this");
-        outPrintln(logPrefix + ">open 192.168.0.1:2121");
-        outPrintln(logPrefix + ">user anonymous bob");
-        outPrintln(logPrefix + ">pwd");
-        outPrintln(logPrefix + ">ls");
-        outPrintln(logPrefix + ">.....");
-        outPrintln(logPrefix + "");
-        outPrintln(logPrefix + "");
+        outPrintln("---- ftp HELP ----");
+        outPrintln("");
+        outPrintln("This ftp client shell can act as command shell for the 
local host as well for the");
+        outPrintln("remote host. Commands that point to the local host are 
preceded by 'L'.");
+        outPrintln("");
+        outPrintln("Supported Commands:");
+        outPrintln("ASCII");
+        outPrintln("   switch remote server to ASCII transfer mode");
+        outPrintln("BINARY");
+        outPrintln("   switch remote server to BINARY transfer mode");
+        outPrintln("BYE");
+        outPrintln("   quit the command shell (same as EXIT)");
+        outPrintln("CD <path>");
+        outPrintln("   change remote path");
+        outPrintln("CLOSE");
+        outPrintln("   close connection to remote host (same as DISCONNECT)");
+        outPrintln("DEL <file>");
+        outPrintln("   delete file on remote server (same as RM)");
+        outPrintln("RM <file>");
+        outPrintln("   remove file from remote server (same as DEL)");
+        outPrintln("DIR [<path>|<file>] ");
+        outPrintln("   print file information for remote directory or file");
+        outPrintln("DISCONNECT");
+        outPrintln("   disconnect from remote server (same as CLOSE)");
+        outPrintln("EXIT");
+        outPrintln("   quit the command shell (same as BYE)");
+        outPrintln("GET <remote-file> [<local-file>]");
+        outPrintln("   load <remote-file> from remote server and store it 
locally,");
+        outPrintln("   optionally to <local-file>. if the <remote-file> is a 
directory,");
+        outPrintln("   then all files in that directory are retrieved,");
+        outPrintln("   including recursively all subdirectories.");
+        outPrintln("GLOB");
+        outPrintln("   toggles globbing: matching with wild cards or not");
+        outPrintln("COPY");
+        outPrintln("   copies local files");
+        outPrintln("LCD <path>");
+        outPrintln("   local directory change");
+        outPrintln("LDEL <file>");
+        outPrintln("   local file delete");
+        outPrintln("LDIR");
+        outPrintln("   shows local directory content");
+        outPrintln("LITERAL <ftp-command> [<command-argument>]");
+        outPrintln("   Sends FTP commands as documented in RFC959");
+        outPrintln("LLS");
+        outPrintln("   as LDIR");
+        outPrintln("LMD");
+        outPrintln("   as LMKDIR");
+        outPrintln("LMV <local-from> <local-to>");
+        outPrintln("   copies local files");
+        outPrintln("LPWD");
+        outPrintln("   prints local path");
+        outPrintln("LRD");
+        outPrintln("   as LMKDIR");
+        outPrintln("LRMD <folder-name>");
+        outPrintln("   deletes local directory <folder-name>");
+        outPrintln("LRM <file-name>");
+        outPrintln("   deletes local file <file-name>");
+        outPrintln("LS [<path>|<file>]");
+        outPrintln("   prints list of remote directory <path> or information 
of file <file>");
+        outPrintln("MDIR");
+        outPrintln("   as MKDIR");
+        outPrintln("MGET <file-pattern>");
+        outPrintln("   copies files from remote server that fits into the");
+        outPrintln("   pattern <file-pattern> to the local path.");
+        outPrintln("MOVEDOWN <file-pattern>");
+        outPrintln("   copies files from remote server as with MGET");
+        outPrintln("   and deletes them afterwards on the remote server");
+        outPrintln("MV <from> <to>");
+        outPrintln("   moves or renames files on the local host");
+        outPrintln("NOOP");
+        outPrintln("   sends the NOOP command to the remote server (which does 
nothing)");
+        outPrintln("   This command is usually used to measure the speed of 
the remote server.");
+        outPrintln("OPEN <host[':'port]> [<port>]");
+        outPrintln("   connects the ftp shell to the remote server <host>. 
Optionally,");
+        outPrintln("   a port number can be given, the default port number is 
21.");
+        outPrintln("   Example: OPEN localhost:2121 or OPEN 192.168.0.1 2121");
+        outPrintln("PROMPT");
+        outPrintln("   compatibility command, that usually toggles beween 
prompting on or off.");
+        outPrintln("   ftp has prompting switched off by default and cannot 
switched on.");
+        outPrintln("PUT <local-file> [<remote-file>]");
+        outPrintln("   copies the <local-file> to the remote server to the 
current remote path or");
+        outPrintln("   optionally to the given <remote-file> path.");
+        outPrintln("PWD");
+        outPrintln("   prints current path on the remote server.");
+        outPrintln("REMOTEHELP");
+        outPrintln("   asks the remote server to print the help text of the 
remote server");
+        outPrintln("RMDIR <folder-name>");
+        outPrintln("   removes the directory <folder-name> on the remote 
server");
+        outPrintln("QUIT");
+        outPrintln("   exits the ftp application");
+        outPrintln("RECV");
+        outPrintln("   as GET");
+        outPrintln("USER <user-name> <password>");
+        outPrintln("   logs into the remote server with the user <user-name>");
+        outPrintln("   and the password <password>");
+        outPrintln("");
+        outPrintln("");
+        outPrintln("EXAMPLE:");
+        outPrintln("a standard sessions looks like this");
+        outPrintln(">open 192.168.0.1:2121");
+        outPrintln(">user anonymous bob");
+        outPrintln(">pwd");
+        outPrintln(">ls");
+        outPrintln(">.....");
+        outPrintln("");
+        outPrintln("");
         return true;
     }
 
     public boolean QUOTE() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean BELL() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean MDELETE() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean SEND() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean DEBUG() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean MLS() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean TRACE() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean MPUT() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean TYPE() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
     public boolean CREATE() {
-        errPrintln(logPrefix + "---- not yet supported");
+        errPrintln("not yet supported");
         return true;
     }
 
@@ -1981,7 +1956,7 @@
         // checks whether the string name matches with the pattern
         // the pattern may contain characters '*' as wildcard for several
         // characters (also none) and '?' to match exactly one characters
-        // outPrintln(logPrefix + "MATCH " + name + " " + pattern);
+        // outPrintln("MATCH " + name + " " + pattern);
         if (!glob) {
             return name.equals(pattern);
         }
@@ -2032,9 +2007,9 @@
         clientOutput.write('\n');
         clientOutput.flush();
         if (buf.startsWith("PASS")) {
-            outPrintln(logPrefix + "> PASS ********");
+            outPrintln("> PASS ********");
         } else {
-            outPrintln(logPrefix + "> " + buf);
+            outPrintln("> " + buf);
         }
     }
 
@@ -2050,7 +2025,7 @@
                 throw new IOException("Server has presumably shut down the 
connection.");
             }
 
-            outPrintln(logPrefix + "< " + reply);
+            outPrintln("< " + reply);
             // serverResponse.addElement(reply);
 
             if (reply.length() >= 4 && Character.isDigit(reply.charAt(0)) && 
Character.isDigit(reply.charAt(1))
@@ -2310,7 +2285,7 @@
             if (start == stop) {
                 errPrintln(logPrefix + "");
             } else {
-                outPrintln(logPrefix + " (" + (length * 1000 / 1024 / (stop - 
start)) + " kbytes/second)");
+                outPrintln(" (" + (length * 1000 / 1024 / (stop - start)) + " 
kbytes/second)");
             }
 
         } else {
@@ -2516,7 +2491,7 @@
         }
 
         public void checkExit(final int status) {
-            // System.outPrintln(logPrefix + "ShellSecurityManager: object
+            // System.outPrintln("ShellSecurityManager: object
             // called System.exit(" + status + ")");
             // signal that someone is trying to terminate the JVM.
             throw new ee(status);

_______________________________________________
YaCy-svn mailing list
YaCy-svn@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/yacy-svn

Antwort per Email an