You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/03/06 00:44:19 UTC

svn commit: r1297287 - /commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java

Author: sebb
Date: Mon Mar  5 23:44:19 2012
New Revision: 1297287

URL: http://svn.apache.org/viewvc?rev=1297287&view=rev
Log:
Add -A for anonymous login support

Modified:
    commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java

Modified: commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java?rev=1297287&r1=1297286&r2=1297287&view=diff
==============================================================================
--- commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java (original)
+++ commons/proper/net/trunk/src/main/java/examples/ftp/FTPClientExample.java Mon Mar  5 23:44:19 2012
@@ -23,6 +23,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 
 import org.apache.commons.net.PrintCommandListener;
 import org.apache.commons.net.ftp.FTP;
@@ -52,6 +54,7 @@ public final class FTPClientExample
         "Usage: ftp [options] <hostname> <username> <password> [<remote file> [<local file>]]\n" +
         "\nDefault behavior is to download a file and use ASCII transfer mode.\n" +
         "\t-a - use local active mode (default is local passive)\n" +
+        "\t-A - anonymous login\n" +
         "\t-b - use binary transfer mode\n" +
         "\t-c cmd - issue arbitrary command (remote is used as a parameter if provided) \n" +
         "\t-d - list directory details using MLSD (remote is used as the pathname if provided)\n" +
@@ -72,7 +75,7 @@ public final class FTPClientExample
         "\t-PrP password - HTTP Proxy server password\n" +
         "\t-# - add hash display during transfers\n";
 
-    public static void main(String[] args)
+    public static void main(String[] args) throws UnknownHostException
     {
         boolean storeFile = false, binaryTransfer = false, error = false, listFiles = false, listNames = false, hidden = false;
         boolean localActive = false, useEpsvWithIPv4 = false, feat = false, printHash = false;
@@ -88,6 +91,8 @@ public final class FTPClientExample
         int proxyPort = 80;
         String proxyUser = null;
         String proxyPassword = null;
+        String username = null;
+        String password = null;
 
         int base = 0;
         for (base = 0; base < args.length; base++)
@@ -98,6 +103,10 @@ public final class FTPClientExample
             else if (args[base].equals("-a")) {
                 localActive = true;
             }
+            else if (args[base].equals("-A")) {
+                username = "anonymous";
+                password = System.getProperty("user.name")+"@"+InetAddress.getLocalHost().getHostName();
+            }
             else if (args[base].equals("-b")) {
                 binaryTransfer = true;
             }
@@ -169,6 +178,9 @@ public final class FTPClientExample
         }
 
         int remain = args.length - base;
+        if (username != null) {
+            minParams -= 2;
+        }
         if (remain < minParams) // server, user, pass, remote, local [protocol]
         {
             System.err.println(USAGE);
@@ -182,8 +194,10 @@ public final class FTPClientExample
             server=parts[0];
             port=Integer.parseInt(parts[1]);
         }
-        String username = args[base++];
-        String password = args[base++];
+        if (username == null) {
+            username = args[base++];
+            password = args[base++];
+        }
 
         String remote = null;
         if (args.length - base > 0) {