diff --git a/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellCommand.java b/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellCommand.java index 4f4764b69..8357ac224 100644 --- a/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellCommand.java +++ b/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellCommand.java @@ -67,7 +67,7 @@ public void start(final Environment env) throws IOException { private void run() { int exitStatus = 0; try { - execute.accept(new Ssh.ExecuteParams(command, env.getEnv(), in, out, err)); + execute.accept(new Ssh.ExecuteParams(command, env.getEnv(), session, in, out, err)); } catch (RuntimeException e) { exitStatus = 1; LOGGER.log(Level.SEVERE, "Unable to start shell", e); diff --git a/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellFactoryImpl.java b/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellFactoryImpl.java index fe33d6664..18dd0d238 100644 --- a/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellFactoryImpl.java +++ b/remote-ssh/src/main/java/org/jline/builtins/ssh/ShellFactoryImpl.java @@ -222,7 +222,7 @@ public void run(Environment env) throws Exception { terminal.raise(Terminal.Signal.WINCH); }, Signal.WINCH); - shell.accept(new Ssh.ShellParams(env.getEnv(), terminal, this::destroy)); + shell.accept(new Ssh.ShellParams(env.getEnv(), session, terminal, this::destroy)); } catch (Throwable t) { t.printStackTrace(); } diff --git a/remote-ssh/src/main/java/org/jline/builtins/ssh/Ssh.java b/remote-ssh/src/main/java/org/jline/builtins/ssh/Ssh.java index 713f713b1..6b8e1bba1 100644 --- a/remote-ssh/src/main/java/org/jline/builtins/ssh/Ssh.java +++ b/remote-ssh/src/main/java/org/jline/builtins/ssh/Ssh.java @@ -27,6 +27,7 @@ import org.apache.sshd.server.SshServer; import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; import org.apache.sshd.server.scp.ScpCommandFactory; +import org.apache.sshd.server.session.ServerSession; import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory; import org.jline.builtins.Options; import org.jline.builtins.Options.HelpException; @@ -43,14 +44,19 @@ public static class ShellParams { private final Map env; private final Terminal terminal; private final Runnable closer; - public ShellParams(Map env, Terminal terminal, Runnable closer) { + private final ServerSession session; + public ShellParams(Map env, ServerSession session, Terminal terminal, Runnable closer) { this.env = env; + this.session = session; this.terminal = terminal; this.closer = closer; } public Map getEnv() { return env; } + public ServerSession getSession() { + return session; + } public Terminal getTerminal() { return terminal; } @@ -62,11 +68,13 @@ public Runnable getCloser() { public static class ExecuteParams { private final String command; private final Map env; + private final ServerSession session; private final InputStream in; private final OutputStream out; private final OutputStream err; - public ExecuteParams(String command, Map env, InputStream in, OutputStream out, OutputStream err) { + public ExecuteParams(String command, Map env, ServerSession session, InputStream in, OutputStream out, OutputStream err) { this.command = command; + this.session = session; this.env = env; this.in = in; this.out = out; @@ -78,6 +86,9 @@ public String getCommand() { public Map getEnv() { return env; } + public ServerSession getSession() { + return session; + } public InputStream getIn() { return in; }