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 2013/07/26 11:49:18 UTC
[2/4] git commit: [SSHD-247] Enable SCP and SFTP in the default
distribution Also add an option to select the IO provider
[SSHD-247] Enable SCP and SFTP in the default distribution
Also add an option to select the IO provider
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/925e3ff5
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/925e3ff5
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/925e3ff5
Branch: refs/heads/master
Commit: 925e3ff50a9d64f7f48bc7f2cea9da50969fb7e0
Parents: 5debd37
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Jul 26 11:48:34 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Fri Jul 26 11:48:34 2013 +0200
----------------------------------------------------------------------
.../main/java/org/apache/sshd/SshServer.java | 28 +++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/925e3ff5/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 59c2f79..57d9faf 100644
--- a/sshd-core/src/main/java/org/apache/sshd/SshServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/SshServer.java
@@ -62,7 +62,10 @@ import org.apache.sshd.common.future.CloseFuture;
import org.apache.sshd.common.future.SshFutureListener;
import org.apache.sshd.common.io.DefaultIoServiceFactory;
import org.apache.sshd.common.io.IoAcceptor;
+import org.apache.sshd.common.io.IoServiceFactory;
import org.apache.sshd.common.io.IoSession;
+import org.apache.sshd.common.io.mina.MinaServiceFactory;
+import org.apache.sshd.common.io.nio2.Nio2ServiceFactory;
import org.apache.sshd.common.mac.HMACMD5;
import org.apache.sshd.common.mac.HMACMD596;
import org.apache.sshd.common.mac.HMACSHA1;
@@ -87,12 +90,14 @@ import org.apache.sshd.server.auth.UserAuthPublicKey;
import org.apache.sshd.server.auth.gss.GSSAuthenticator;
import org.apache.sshd.server.auth.gss.UserAuthGSS;
import org.apache.sshd.server.channel.ChannelSession;
+import org.apache.sshd.server.command.ScpCommandFactory;
import org.apache.sshd.server.kex.DHG1;
import org.apache.sshd.server.kex.DHG14;
import org.apache.sshd.server.keyprovider.PEMGeneratorHostKeyProvider;
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.session.ServerSession;
import org.apache.sshd.server.session.SessionFactory;
+import org.apache.sshd.server.sftp.SftpSubsystem;
import org.apache.sshd.server.shell.ProcessShellFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -445,6 +450,7 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
public static void main(String[] args) throws Exception {
int port = 8000;
+ String provider;
boolean error = false;
for (int i = 0; i < args.length; i++) {
@@ -454,6 +460,20 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
break;
}
port = Integer.parseInt(args[++i]);
+ } else if ("-io".equals(args[i])) {
+ if (i + 1 >= args.length) {
+ System.err.println("option requires an argument: " + args[i]);
+ break;
+ }
+ provider = args[++i];
+ if ("mina".equals(provider)) {
+ System.setProperty(IoServiceFactory.class.getName(), MinaServiceFactory.class.getName());
+ } else if ("nio2".endsWith(provider)) {
+ System.setProperty(IoServiceFactory.class.getName(), Nio2ServiceFactory.class.getName());
+ } else {
+ System.err.println("provider should be mina or nio2: " + args[i]);
+ break;
+ }
} else if (args[i].startsWith("-")) {
System.err.println("illegal option: " + args[i]);
error = true;
@@ -465,7 +485,7 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
}
}
if (error) {
- System.err.println("usage: sshd [-p port]");
+ System.err.println("usage: sshd [-p port] [-io mina|nio2]");
System.exit(-1);
}
@@ -514,7 +534,13 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
return true;
}
});
+ sshd.setCommandFactory(new ScpCommandFactory());
+ sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>>asList(
+ new SftpSubsystem.Factory()
+ ));
sshd.start();
+
+ Thread.sleep(Long.MAX_VALUE);
}
}