ch.ethz.ssh2.channel

Class ChannelManager

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.

Constructor Summary

ChannelManager(TransportManager tm)

Method Summary

X11ServerData
checkX11Cookie(String hexFakeCookie)
void
closeAllChannels()
void
closeChannel(Channel c, String reason, boolean force)
int
getAvailable(Channel c, boolean extended)
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(String host_to_connect, int port_to_connect, String originator_IP_address, int originator_port)
Channel
openSessionChannel()
void
registerThread(ch.ethz.ssh2.channel.IChannelWorkerThread thr)
void
registerX11Cookie(String hexFakeCookie, X11ServerData data)
void
requestCancelGlobalForward(int bindPort)
void
requestExecCommand(Channel c, String cmd)
int
requestGlobalForward(String bindAddress, int bindPort, String targetAddress, int targetPort)
void
requestPTY(Channel c, 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, String subSystemName)
void
requestX11(Channel c, boolean singleConnection, String x11AuthenticationProtocol, String x11AuthenticationCookie, int x11ScreenNumber)
void
sendData(Channel c, byte[] buffer, int pos, int len)
void
sendEOF(Channel c)
void
sendOpenConfirmation(Channel c)
void
unRegisterX11Cookie(String hexFakeCookie, boolean killChannels)
int
waitForCondition(Channel c, long timeout, int condition_mask)
Wait until for a condition.

Constructor Details

ChannelManager

public ChannelManager(TransportManager tm)

Method Details

checkX11Cookie

public X11ServerData checkX11Cookie(String hexFakeCookie)

closeAllChannels

public void closeAllChannels()

closeChannel

public void closeChannel(Channel c,
                         String reason,
                         boolean force)
            throws IOException

getAvailable

public int getAvailable(Channel c,
                        boolean extended)
            throws IOException

getChannelData

public int getChannelData(Channel c,
                          boolean extended,
                          byte[] target,
                          int off,
                          int len)
            throws IOException

handleMessage

public void handleMessage(byte[] msg,
                          int msglen)
            throws IOException
Specified by:
handleMessage in interface MessageHandler

msgChannelClose

public void msgChannelClose(byte[] msg,
                            int msglen)
            throws IOException

msgChannelData

public void msgChannelData(byte[] msg,
                           int msglen)
            throws IOException

msgChannelEOF

public void msgChannelEOF(byte[] msg,
                          int msglen)
            throws IOException

msgChannelExtendedData

public void msgChannelExtendedData(byte[] msg,
                                   int msglen)
            throws IOException

msgChannelFailure

public void msgChannelFailure(byte[] msg,
                              int msglen)
            throws IOException

msgChannelOpen

public void msgChannelOpen(byte[] msg,
                           int msglen)
            throws IOException

msgChannelOpenConfirmation

public void msgChannelOpenConfirmation(byte[] msg,
                                       int msglen)
            throws IOException

msgChannelOpenFailure

public void msgChannelOpenFailure(byte[] msg,
                                  int msglen)
            throws IOException

msgChannelRequest

public void msgChannelRequest(byte[] msg,
                              int msglen)
            throws IOException

msgChannelSuccess

public void msgChannelSuccess(byte[] msg,
                              int msglen)
            throws IOException

msgChannelWindowAdjust

public void msgChannelWindowAdjust(byte[] msg,
                                   int msglen)
            throws IOException

msgGlobalFailure

public void msgGlobalFailure()
            throws IOException

msgGlobalRequest

public void msgGlobalRequest(byte[] msg,
                             int msglen)
            throws IOException

msgGlobalSuccess

public void msgGlobalSuccess()
            throws IOException

openDirectTCPIPChannel

public Channel openDirectTCPIPChannel(String host_to_connect,
                                      int port_to_connect,
                                      String originator_IP_address,
                                      int originator_port)
            throws IOException

openSessionChannel

public Channel openSessionChannel()
            throws IOException

registerThread

public void registerThread(ch.ethz.ssh2.channel.IChannelWorkerThread thr)
            throws IOException

registerX11Cookie

public void registerX11Cookie(String hexFakeCookie,
                              X11ServerData data)

requestCancelGlobalForward

public void requestCancelGlobalForward(int bindPort)
            throws IOException

requestExecCommand

public void requestExecCommand(Channel c,
                               String cmd)
            throws IOException

requestGlobalForward

public int requestGlobalForward(String bindAddress,
                                int bindPort,
                                String targetAddress,
                                int targetPort)
            throws IOException

requestPTY

public void requestPTY(Channel c,
                       String term,
                       int term_width_characters,
                       int term_height_characters,
                       int term_width_pixels,
                       int term_height_pixels,
                       byte[] terminal_modes)
            throws IOException

requestShell

public void requestShell(Channel c)
            throws IOException

requestSubSystem

public void requestSubSystem(Channel c,
                             String subSystemName)
            throws IOException

requestX11

public void requestX11(Channel c,
                       boolean singleConnection,
                       String x11AuthenticationProtocol,
                       String x11AuthenticationCookie,
                       int x11ScreenNumber)
            throws IOException

sendData

public void sendData(Channel c,
                     byte[] buffer,
                     int pos,
                     int len)
            throws IOException

sendEOF

public void sendEOF(Channel c)
            throws IOException

sendOpenConfirmation

public void sendOpenConfirmation(Channel c)
            throws IOException

unRegisterX11Cookie

public void unRegisterX11Cookie(String hexFakeCookie,
                                boolean killChannels)

waitForCondition

public int waitForCondition(Channel c,
                            long timeout,
                            int condition_mask)
Wait until for a condition.
Parameters:
c - Channel
timeout - in ms, 0 means no timeout.
condition_mask - minimum event mask
Returns:
all current events