You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2014/12/12 14:18:11 UTC
[2/6] mina-sshd git commit: [SSHD-382] Add support for custom
properties on the command line for client and server
[SSHD-382] Add support for custom properties on the command line for client and server
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/71ad6a07
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/71ad6a07
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/71ad6a07
Branch: refs/heads/master
Commit: 71ad6a07607ce1178ef913b3d3f3040114603617
Parents: 24a5f7d
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Dec 12 10:48:27 2014 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Dec 12 10:48:27 2014 +0100
----------------------------------------------------------------------
.../main/java/org/apache/sshd/SshClient.java | 20 +++++++++++++++++++-
.../main/java/org/apache/sshd/SshServer.java | 20 +++++++++++++++++++-
2 files changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/71ad6a07/sshd-core/src/main/java/org/apache/sshd/SshClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/SshClient.java b/sshd-core/src/main/java/org/apache/sshd/SshClient.java
index 461b8ca..ef34288 100644
--- a/sshd-core/src/main/java/org/apache/sshd/SshClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/SshClient.java
@@ -33,7 +33,9 @@ import java.net.SocketAddress;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.Callable;
import java.util.logging.ConsoleHandler;
import java.util.logging.Formatter;
@@ -374,6 +376,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
int socksPort = -1;
boolean error = false;
List<String> identities = new ArrayList<String>();
+ Map<String, String> options = new LinkedHashMap<String, String>();
for (int i = 0; i < args.length; i++) {
if (command == null && "-p".equals(args[i])) {
@@ -414,6 +417,20 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
break;
}
identities.add(args[++i]);
+ } else if (command == null && "-o".equals(args[i])) {
+ if (i + 1 >= args.length) {
+ System.err.println("option requires and argument: " + args[i]);
+ error = true;
+ break;
+ }
+ String opt = args[++i];
+ int idx = opt.indexOf('=');
+ if (idx <= 0) {
+ System.err.println("bad syntax for option: " + opt);
+ error = true;
+ break;
+ }
+ options.put(opt.substring(0, idx), opt.substring(idx + 1));
} else if (command == null && args[i].startsWith("-")) {
System.err.println("illegal option: " + args[i]);
error = true;
@@ -434,7 +451,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
error = true;
}
if (error) {
- System.err.println("usage: ssh [-A|-a] [-v[v][v]] [-D socksPort] [-l login] [-p port] hostname [command]");
+ System.err.println("usage: ssh [-A|-a] [-v[v][v]] [-D socksPort] [-l login] [-p port] [-o option=value] hostname [command]");
System.exit(-1);
}
if (logLevel <= 0) {
@@ -486,6 +503,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
}
SshClient client = SshClient.setUpDefaultClient();
+ client.getProperties().putAll(options);
client.start();
client.setKeyPairProvider(provider);
client.setUserInteraction(new UserInteraction() {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/71ad6a07/sshd-core/src/main/java/org/apache/sshd/SshServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/SshServer.java b/sshd-core/src/main/java/org/apache/sshd/SshServer.java
index 2424df4..d29ef9e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/SshServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/SshServer.java
@@ -25,7 +25,9 @@ import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import org.apache.sshd.common.AbstractFactoryManager;
import org.apache.sshd.common.Closeable;
@@ -372,6 +374,7 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
int port = 8000;
String provider;
boolean error = false;
+ Map<String, String> options = new LinkedHashMap<String, String>();
for (int i = 0; i < args.length; i++) {
if ("-p".equals(args[i])) {
@@ -394,6 +397,20 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
System.err.println("provider should be mina or nio2: " + args[i]);
break;
}
+ } else if ("-o".equals(args[i])) {
+ if (i + 1 >= args.length) {
+ System.err.println("option requires and argument: " + args[i]);
+ error = true;
+ break;
+ }
+ String opt = args[++i];
+ int idx = opt.indexOf('=');
+ if (idx <= 0) {
+ System.err.println("bad syntax for option: " + opt);
+ error = true;
+ break;
+ }
+ options.put(opt.substring(0, idx), opt.substring(idx + 1));
} else if (args[i].startsWith("-")) {
System.err.println("illegal option: " + args[i]);
error = true;
@@ -405,13 +422,14 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
}
}
if (error) {
- System.err.println("usage: sshd [-p port] [-io mina|nio2]");
+ System.err.println("usage: sshd [-p port] [-io mina|nio2] [-o option=value]");
System.exit(-1);
}
System.err.println("Starting SSHD on port " + port);
SshServer sshd = SshServer.setUpDefaultServer();
+ sshd.getProperties().putAll(options);
sshd.setPort(port);
sshd.getProperties().put(SshServer.WELCOME_BANNER, "Welcome to SSHD\n");
if (SecurityUtils.isBouncyCastleRegistered()) {