mirror of
https://github.com/hierynomus/sshj.git
synced 2025-12-06 15:20:54 +03:00
Add a timed join() method to Channel, update Exec example
This commit is contained in:
@@ -20,6 +20,7 @@ import net.schmizz.sshj.connection.channel.direct.Session;
|
|||||||
import net.schmizz.sshj.connection.channel.direct.Session.Command;
|
import net.schmizz.sshj.connection.channel.direct.Session.Command;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/** This examples demonstrates how a remote command can be executed. */
|
/** This examples demonstrates how a remote command can be executed. */
|
||||||
public class Exec {
|
public class Exec {
|
||||||
@@ -36,6 +37,7 @@ public class Exec {
|
|||||||
try {
|
try {
|
||||||
final Command cmd = session.exec("ping -c 1 google.com");
|
final Command cmd = session.exec("ping -c 1 google.com");
|
||||||
System.out.print(cmd.getOutputAsString());
|
System.out.print(cmd.getOutputAsString());
|
||||||
|
cmd.join(5, TimeUnit.SECONDS);
|
||||||
System.out.println("\n** exit status: " + cmd.getExitStatus());
|
System.out.println("\n** exit status: " + cmd.getExitStatus());
|
||||||
} finally {
|
} finally {
|
||||||
session.close();
|
session.close();
|
||||||
|
|||||||
@@ -272,6 +272,11 @@ public abstract class AbstractChannel
|
|||||||
close.await();
|
close.await();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void join(int timeout, TimeUnit unit)
|
||||||
|
throws ConnectionException {
|
||||||
|
close.await(timeout, unit);
|
||||||
|
}
|
||||||
|
|
||||||
protected synchronized void sendClose()
|
protected synchronized void sendClose()
|
||||||
throws TransportException {
|
throws TransportException {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import net.schmizz.sshj.transport.TransportException;
|
|||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/** A channel is the basic medium for application-layer data on top of an SSH transport. */
|
/** A channel is the basic medium for application-layer data on top of an SSH transport. */
|
||||||
public interface Channel
|
public interface Channel
|
||||||
@@ -138,4 +139,7 @@ public interface Channel
|
|||||||
void join()
|
void join()
|
||||||
throws ConnectionException;
|
throws ConnectionException;
|
||||||
|
|
||||||
|
void join(int timeout, TimeUnit unit)
|
||||||
|
throws ConnectionException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user