com.mindbright.ssh
public final class SSHChannelController extends SSH implements SSHChannelListener, NQueueCallback
Modifier and Type | Field and Description |
---|---|
protected SSHConnectChannel |
cnChan |
protected Queue |
cnQueue |
protected SSHConsole |
console |
protected java.util.Vector<SSHListenChannel> |
listenChannels |
protected int |
nextEmptyChan |
protected SSHCipher |
sendCipher |
protected SSHCompressor |
sendComp |
protected SSH |
sshHook |
protected int |
totalTunnels |
protected java.lang.Object[] |
tunnels |
protected NQueue |
txQueue |
AUTH_CRYPTOCARD, AUTH_DEFAULT, AUTH_GSSAPI, AUTH_HOSTBASED, AUTH_KBDINTERACT, AUTH_KERBEROS, AUTH_NOTSUPPORTED, AUTH_PASSWORD, AUTH_PUBLICKEY, AUTH_RHOSTS, AUTH_RHOSTS_RSA, AUTH_SDI, AUTH_TIS, authTypeDesc, CIPHER_3DES, CIPHER_ANY, CIPHER_BLOWFISH, CIPHER_DEFAULT, CIPHER_DES, CIPHER_IDEA, CIPHER_INVALID, CIPHER_NONE, CIPHER_NOTSUPPORTED, CIPHER_RC4, CIPHER_RESERVED, CIPHER_TSS, cipherClasses, cipherType, CMSG_ACM_ACCESS_DENIED, CMSG_ACM_NEW_PIN, CMSG_ACM_NEW_PIN_ACCEPTED, CMSG_ACM_NEW_PIN_REJECTED, CMSG_ACM_NEW_PIN_REQUIRED, CMSG_ACM_NEXT_CODE, CMSG_ACM_NEXT_CODE_REQUIRED, CMSG_ACM_OK, CMSG_AGENT_REQUEST_FORWARDING, CMSG_AUTH_PASSWORD, CMSG_AUTH_RHOSTS, CMSG_AUTH_RHOSTS_RSA, CMSG_AUTH_RSA, CMSG_AUTH_RSA_RESPONSE, CMSG_AUTH_SDI, CMSG_AUTH_TIS, CMSG_AUTH_TIS_RESPONSE, CMSG_EOF, CMSG_EXEC_CMD, CMSG_EXEC_SHELL, CMSG_EXIT_CONFIRMATION, CMSG_MAX_PACKET_SIZE, CMSG_PORT_FORWARD_REQUEST, CMSG_REQUEST_COMPRESSION, CMSG_REQUEST_PTY, CMSG_SESSION_KEY, CMSG_STDIN_DATA, CMSG_USER, CMSG_WINDOW_SIZE, CMSG_X11_REQUEST_FORWARDING, CONNECT_CHAN_NUM, DEBUG, DEBUGMORE, DEBUGPKG, DEFAULTPORT, HOST_KEY_LENGTH, IDX_CIPHER_CLASS, IDX_CIPHER_NAME, isAnSSHClient, KNOWN_HOSTS_FILE, LISTEN_CHAN_NUM, MAIN_CHAN_NUM, MSG_ANY, MSG_CHANNEL_CLOSE, MSG_CHANNEL_CLOSE_CONFIRMATION, MSG_CHANNEL_DATA, MSG_CHANNEL_INPUT_EOF, MSG_CHANNEL_OPEN_CONFIRMATION, MSG_CHANNEL_OPEN_FAILURE, MSG_CHANNEL_OUTPUT_CLOSED, MSG_DEBUG, MSG_DISCONNECT, MSG_IGNORE, MSG_NONE, MSG_PORT_OPEN, PASS_KERBEROS_TGT, protocolFlags, PROTOFLAG_HOST_IN_FWD_OPEN, PROTOFLAG_SCREEN_NUMBER, PROXY_HTTP, PROXY_NONE, PROXY_NOTSUPPORTED, PROXY_SOCKS4, PROXY_SOCKS5_DNS, PROXY_SOCKS5_IP, rcvCipher, rcvComp, secureRandom, SERVER_KEY_LENGTH, SESSION_KEY_LENGTH, sessionId, sessionKey, SMSG_AGENT_OPEN, SMSG_AUTH_RSA_CHALLENGE, SMSG_AUTH_TIS_CHALLENGE, SMSG_EXITSTATUS, SMSG_FAILURE, SMSG_PUBLIC_KEY, SMSG_STDERR_DATA, SMSG_STDOUT_DATA, SMSG_SUCCESS, SMSG_X11_OPEN, sndCipher, sndComp, SRV_HOSTKEY_CHANGED, SRV_HOSTKEY_KNOWN, SRV_HOSTKEY_NEW, srvCookie, srvHostKey, srvServerKey, SSH_VER_MAJOR, SSH_VER_MINOR, supportedAuthTypes, supportedCiphers, TTY_OP_END, TTY_OP_ISPEED, TTY_OP_OSPEED, UNKNOWN_CHAN_NUM, VER_MINDTERM, VER_MINDTUNL
Constructor and Description |
---|
SSHChannelController(SSH sshHook,
Switchboard switchboard,
NonBlockingOutput sshOut,
SSHCipher sendCipher,
SSHCompressor sendComp,
SSHConsole console,
boolean haveCnxWatch) |
Modifier and Type | Method and Description |
---|---|
void |
addHostMapPermanent(java.lang.String fromHost,
java.lang.String toHost,
int toPort) |
void |
addHostMapTemporary(java.lang.String fromHost,
java.lang.String toHost,
int toPort) |
void |
addTunnel(SSHTunnel tunnel) |
void |
alert(java.lang.String msg) |
void |
close(SSHChannel chan) |
void |
closeTunnelFromList(int listIdx) |
void |
delHostMap(java.lang.String fromHost) |
SSHTunnel |
delTunnel(int channelId) |
void |
disconnect(java.lang.String reason) |
void |
exit() |
Queue |
getCnQueue() |
java.util.Vector<java.lang.Object> |
getHostMap(java.lang.String fromHost) |
void |
handleQueue(java.lang.Object obj)
Called once the queue has a packet ready for consumption
|
boolean |
haveHostInFwdOpen() |
void |
killAll() |
void |
killAllTunnels() |
void |
killListenChannel(java.lang.String localHost,
int listenPort) |
void |
killListenChannels() |
java.lang.String[] |
listTunnels() |
int |
newChannelId() |
SSHListenChannel |
newListenChannel(java.lang.String localHost,
int localPort,
java.lang.String remoteHost,
int remotePort,
java.lang.String plugin) |
SSHPdu |
prepare(SSHPdu pdu) |
void |
receive(SSHPdu pdu) |
void |
sendDisconnect(java.lang.String reason) |
protected SSHClient |
sshAsClient() |
void |
start() |
void |
transmit(SSHPdu pdu) |
void |
waitForExit() |
void |
waitForExit(long msWait) |
getAltAuthName, getAuthName, getAuthType, getAuthTypes, getCipherName, getCipherType, getProxyType, getProxyTypes, getSupportedCipher, getVersionId, initCipher, initClientCipher, initServerCipher, isAuthTypeSupported, isProtocolFlagSet, log, logDebug, logExtra, logIgnore, msgTypeString, secureRandom
protected SSHConnectChannel cnChan
protected NQueue txQueue
protected Queue cnQueue
protected int totalTunnels
protected int nextEmptyChan
protected java.lang.Object[] tunnels
protected java.util.Vector<SSHListenChannel> listenChannels
protected SSH sshHook
protected SSHConsole console
protected SSHCipher sendCipher
protected SSHCompressor sendComp
public SSHChannelController(SSH sshHook, Switchboard switchboard, NonBlockingOutput sshOut, SSHCipher sendCipher, SSHCompressor sendComp, SSHConsole console, boolean haveCnxWatch)
public void start()
public void exit()
public void waitForExit()
public void waitForExit(long msWait)
public void killAll()
public int newChannelId()
public java.lang.String[] listTunnels()
public void closeTunnelFromList(int listIdx)
public void killAllTunnels()
public void addTunnel(SSHTunnel tunnel)
public SSHTunnel delTunnel(int channelId)
public boolean haveHostInFwdOpen()
public SSHListenChannel newListenChannel(java.lang.String localHost, int localPort, java.lang.String remoteHost, int remotePort, java.lang.String plugin) throws java.io.IOException
java.io.IOException
public void killListenChannel(java.lang.String localHost, int listenPort)
public void killListenChannels()
public SSHPdu prepare(SSHPdu pdu)
prepare
in interface SSHChannelListener
public void transmit(SSHPdu pdu)
transmit
in interface SSHChannelListener
public void receive(SSHPdu pdu)
receive
in interface SSHChannelListener
public void close(SSHChannel chan)
close
in interface SSHChannelListener
public void disconnect(java.lang.String reason)
public void sendDisconnect(java.lang.String reason)
public void alert(java.lang.String msg)
protected SSHClient sshAsClient()
public Queue getCnQueue()
public void addHostMapTemporary(java.lang.String fromHost, java.lang.String toHost, int toPort)
public void addHostMapPermanent(java.lang.String fromHost, java.lang.String toHost, int toPort)
public void delHostMap(java.lang.String fromHost)
public java.util.Vector<java.lang.Object> getHostMap(java.lang.String fromHost)
public void handleQueue(java.lang.Object obj)
NQueueCallback
handleQueue
in interface NQueueCallback
obj
- the object to handle