ch.ethz.ssh2.channel
Class ChannelManager
java.lang.Object
ch.ethz.ssh2.channel.ChannelManager
- All Implemented Interfaces:
- MessageHandler
- public class ChannelManager
- extends java.lang.Object
- implements MessageHandler
ChannelManager. Please read the comments in Channel.java.
Besides the crypto part, this is the core of the library.
- Version:
- $Id: ChannelManager.java,v 1.15 2006/08/11 12:24:01 cplattne Exp $
- Author:
- Christian Plattner, plattner@inf.ethz.ch
Method Summary |
private int |
addChannel(Channel c)
|
X11ServerData |
checkX11Cookie(java.lang.String hexFakeCookie)
|
void |
closeAllChannels()
|
void |
closeChannel(Channel c,
java.lang.String reason,
boolean force)
|
int |
getAvailable(Channel c,
boolean extended)
|
private Channel |
getChannel(int id)
|
int |
getChannelData(Channel c,
boolean extended,
byte[] target,
int off,
int len)
|
void |
handleMessage(byte[] msg,
int msglen)
|
void |
msgChannelClose(byte[] msg,
int msglen)
|
void |
msgChannelData(byte[] msg,
int msglen)
|
void |
msgChannelEOF(byte[] msg,
int msglen)
|
void |
msgChannelExtendedData(byte[] msg,
int msglen)
|
void |
msgChannelFailure(byte[] msg,
int msglen)
|
void |
msgChannelOpen(byte[] msg,
int msglen)
|
void |
msgChannelOpenConfirmation(byte[] msg,
int msglen)
|
void |
msgChannelOpenFailure(byte[] msg,
int msglen)
|
void |
msgChannelRequest(byte[] msg,
int msglen)
|
void |
msgChannelSuccess(byte[] msg,
int msglen)
|
void |
msgChannelWindowAdjust(byte[] msg,
int msglen)
|
void |
msgGlobalFailure()
|
void |
msgGlobalRequest(byte[] msg,
int msglen)
|
void |
msgGlobalSuccess()
|
Channel |
openDirectTCPIPChannel(java.lang.String host_to_connect,
int port_to_connect,
java.lang.String originator_IP_address,
int originator_port)
|
Channel |
openSessionChannel()
|
void |
registerThread(IChannelWorkerThread thr)
|
void |
registerX11Cookie(java.lang.String hexFakeCookie,
X11ServerData data)
|
private void |
removeChannel(int id)
|
void |
requestCancelGlobalForward(int bindPort)
|
void |
requestExecCommand(Channel c,
java.lang.String cmd)
|
int |
requestGlobalForward(java.lang.String bindAddress,
int bindPort,
java.lang.String targetAddress,
int targetPort)
|
void |
requestPTY(Channel c,
java.lang.String term,
int term_width_characters,
int term_height_characters,
int term_width_pixels,
int term_height_pixels,
byte[] terminal_modes)
|
void |
requestShell(Channel c)
|
void |
requestSubSystem(Channel c,
java.lang.String subSystemName)
|
void |
requestX11(Channel c,
boolean singleConnection,
java.lang.String x11AuthenticationProtocol,
java.lang.String x11AuthenticationCookie,
int x11ScreenNumber)
|
void |
sendData(Channel c,
byte[] buffer,
int pos,
int len)
|
void |
sendEOF(Channel c)
|
void |
sendOpenConfirmation(Channel c)
|
void |
unRegisterX11Cookie(java.lang.String hexFakeCookie,
boolean killChannels)
|
private void |
waitForChannelSuccessOrFailure(Channel c)
|
int |
waitForCondition(Channel c,
long timeout,
int condition_mask)
Wait until for a condition. |
private void |
waitForGlobalSuccessOrFailure()
|
private void |
waitUntilChannelOpen(Channel c)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
private static final Logger log
x11_magic_cookies
private java.util.HashMap x11_magic_cookies
tm
private TransportManager tm
channels
private java.util.Vector channels
nextLocalChannel
private int nextLocalChannel
shutdown
private boolean shutdown
globalSuccessCounter
private int globalSuccessCounter
globalFailedCounter
private int globalFailedCounter
remoteForwardings
private java.util.HashMap remoteForwardings
listenerThreads
private java.util.Vector listenerThreads
listenerThreadsAllowed
private boolean listenerThreadsAllowed
ChannelManager
public ChannelManager(TransportManager tm)
getChannel
private Channel getChannel(int id)
removeChannel
private void removeChannel(int id)
addChannel
private int addChannel(Channel c)
waitUntilChannelOpen
private void waitUntilChannelOpen(Channel c)
throws java.io.IOException
- Throws:
java.io.IOException
waitForGlobalSuccessOrFailure
private final void waitForGlobalSuccessOrFailure()
throws java.io.IOException
- Throws:
java.io.IOException
waitForChannelSuccessOrFailure
private final void waitForChannelSuccessOrFailure(Channel c)
throws java.io.IOException
- Throws:
java.io.IOException
registerX11Cookie
public void registerX11Cookie(java.lang.String hexFakeCookie,
X11ServerData data)
unRegisterX11Cookie
public void unRegisterX11Cookie(java.lang.String hexFakeCookie,
boolean killChannels)
checkX11Cookie
public X11ServerData checkX11Cookie(java.lang.String hexFakeCookie)
closeAllChannels
public void closeAllChannels()
closeChannel
public void closeChannel(Channel c,
java.lang.String reason,
boolean force)
throws java.io.IOException
- Throws:
java.io.IOException
sendEOF
public void sendEOF(Channel c)
throws java.io.IOException
- Throws:
java.io.IOException
sendOpenConfirmation
public void sendOpenConfirmation(Channel c)
throws java.io.IOException
- Throws:
java.io.IOException
sendData
public void sendData(Channel c,
byte[] buffer,
int pos,
int len)
throws java.io.IOException
- Throws:
java.io.IOException
requestGlobalForward
public int requestGlobalForward(java.lang.String bindAddress,
int bindPort,
java.lang.String targetAddress,
int targetPort)
throws java.io.IOException
- Throws:
java.io.IOException
requestCancelGlobalForward
public void requestCancelGlobalForward(int bindPort)
throws java.io.IOException
- Throws:
java.io.IOException
registerThread
public void registerThread(IChannelWorkerThread thr)
throws java.io.IOException
- Throws:
java.io.IOException
openDirectTCPIPChannel
public Channel openDirectTCPIPChannel(java.lang.String host_to_connect,
int port_to_connect,
java.lang.String originator_IP_address,
int originator_port)
throws java.io.IOException
- Throws:
java.io.IOException
openSessionChannel
public Channel openSessionChannel()
throws java.io.IOException
- Throws:
java.io.IOException
requestPTY
public void requestPTY(Channel c,
java.lang.String term,
int term_width_characters,
int term_height_characters,
int term_width_pixels,
int term_height_pixels,
byte[] terminal_modes)
throws java.io.IOException
- Throws:
java.io.IOException
requestX11
public void requestX11(Channel c,
boolean singleConnection,
java.lang.String x11AuthenticationProtocol,
java.lang.String x11AuthenticationCookie,
int x11ScreenNumber)
throws java.io.IOException
- Throws:
java.io.IOException
requestSubSystem
public void requestSubSystem(Channel c,
java.lang.String subSystemName)
throws java.io.IOException
- Throws:
java.io.IOException
requestExecCommand
public void requestExecCommand(Channel c,
java.lang.String cmd)
throws java.io.IOException
- Throws:
java.io.IOException
requestShell
public void requestShell(Channel c)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelExtendedData
public void msgChannelExtendedData(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
waitForCondition
public int waitForCondition(Channel c,
long timeout,
int condition_mask)
- Wait until for a condition.
- Parameters:
c
- Channeltimeout
- in ms, 0 means no timeout.condition_mask
- minimum event mask
- Returns:
- all current events
getAvailable
public int getAvailable(Channel c,
boolean extended)
throws java.io.IOException
- Throws:
java.io.IOException
getChannelData
public int getChannelData(Channel c,
boolean extended,
byte[] target,
int off,
int len)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelData
public void msgChannelData(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelWindowAdjust
public void msgChannelWindowAdjust(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelOpen
public void msgChannelOpen(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelRequest
public void msgChannelRequest(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelEOF
public void msgChannelEOF(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelClose
public void msgChannelClose(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelSuccess
public void msgChannelSuccess(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelFailure
public void msgChannelFailure(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelOpenConfirmation
public void msgChannelOpenConfirmation(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgChannelOpenFailure
public void msgChannelOpenFailure(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgGlobalRequest
public void msgGlobalRequest(byte[] msg,
int msglen)
throws java.io.IOException
- Throws:
java.io.IOException
msgGlobalSuccess
public void msgGlobalSuccess()
throws java.io.IOException
- Throws:
java.io.IOException
msgGlobalFailure
public void msgGlobalFailure()
throws java.io.IOException
- Throws:
java.io.IOException
handleMessage
public void handleMessage(byte[] msg,
int msglen)
throws java.io.IOException
- Specified by:
handleMessage
in interface MessageHandler
- Throws:
java.io.IOException