Package twisted :: Package conch :: Package ssh :: Module connection :: Class SSHConnection

[frames | no frames]

## Class SSHConnection

    SSHService --+
                 |
                SSHConnection

Method Summary
| `__init__(self)`
| `_cbChannelRequest(self, result, localChannel)`
| `_ebChannelRequest(self, result, localChannel)`
| ``adjustWindow`(self, channel, bytesToAdd)` Tell the other side that we will receive more data.
subclass of `SSHChannel`/`tuple` | ``getChannel`(self, channelType, windowSize, maxPacket, data)` The other side requested a channel of some sort.
`int`/`tuple` | ``gotGlobalRequest`(self, requestType, data)` We got a global request.
| ``openChannel`(self, channel, extra)` Open a new channel on this connection.
| ``sendClose`(self, channel)` Close a channel.
| ``sendData`(self, channel, data)` Send data to a channel.
| ``sendEOF`(self, channel)` Send an EOF (End of File) for a channel.
| ``sendExtendedData`(self, channel, dataType, data)` Send extended data to a channel.
| ``sendGlobalRequest`(self, request, data, wantReply)` Send a global request for this connection.
| ``sendRequest`(self, channel, requestType, data, wantReply)` Send a request to a channel.
| ``serviceStarted`(self)` called when the service is active on the transport.
| ``serviceStopped`(self)` called when the service is stopped, either by the connection ending or by another service being started
| `ssh_CHANNEL_CLOSE(self, packet)`
| `ssh_CHANNEL_DATA(self, packet)`
| `ssh_CHANNEL_EOF(self, packet)`
| `ssh_CHANNEL_EXTENDED_DATA(self, packet)`
| `ssh_CHANNEL_FAILURE(self, packet)`
| `ssh_CHANNEL_OPEN(self, packet)`
| `ssh_CHANNEL_OPEN_CONFIRMATION(self, packet)`
| `ssh_CHANNEL_OPEN_FAILURE(self, packet)`
| `ssh_CHANNEL_REQUEST(self, packet)`
| `ssh_CHANNEL_SUCCESS(self, packet)`
| `ssh_CHANNEL_WINDOW_ADJUST(self, packet)`
| `ssh_GLOBAL_REQUEST(self, packet)`
| `ssh_REQUEST_FAILURE(self, packet)`
| `ssh_REQUEST_SUCCESS(self, packet)`
Inherited from SSHService
| ``packetReceived`(self, messageType, packet)` called when we receieve a packet on the transport

Class Variable Summary
`str` | `name` = `'ssh-connection'`
`dict` | `protocolMessages` = `{96: 'MSG_CHANNEL_EOF', 97: 'MSG_CHAN...`
Inherited from SSHService
`NoneType` | `transport` = None

Method Details

### adjustWindow(self, channel, bytesToAdd)

Tell the other side that we will receive more data. This should not normally need to be called as it is managed automatically.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)
    `bytesToAdd`
    (type=`int`)

### getChannel(self, channelType, windowSize, maxPacket, data)

The other side requested a channel of some sort. channelType is the type of channel being requested, windowSize is the initial size of the remote window, maxPacket is the largest packet we should send, data is any other packet data (often nothing).

We return a subclass of SSHChannel

By default, this dispatches to a method 'channel_channelType' with any non-alphanumerics in the channelType replace with _'s. If it cannot find a suitable method, it returns an OPEN_UNKNOWN_CHANNEL_TYPE error. The method is called with arguments of windowSize, maxPacket, data.

  Parameters:
    `channelType`
    (type=`str`)
    `windowSize`
    (type=`int`)
    `maxPacket`
    (type=`int`)
    `data`
    (type=`str`)
  Returns:
    subclass of `SSHChannel`/`tuple`

### gotGlobalRequest(self, requestType, data)

We got a global request. pretty much, this is just used by the client to request that we forward a port from the server to the client. returns either:

- 1: request accepted
- 1, <data>: request accepted with request specific data
- 0: request denied

By default, this dispatches to a method 'global_requestType' with -'s in requestType replaced with _'s. The found method is passed data. If this method cannot be found, this method returns 0. Otherwise, it returns the return value of that method.

  Parameters:
    `requestType`
    (type=`str`)
    `data`
    (type=`str`)
  Returns:
    `int`/`tuple`

### openChannel(self, channel, extra='')

Open a new channel on this connection.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)
    `extra`
    (type=`str`)

### sendClose(self, channel)

Close a channel.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)

### sendData(self, channel, data)

Send data to a channel. This should not normally be used: instead use channel.write(data) as it manages the window automatically.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)
    `data`
    (type=`str`)

### sendEOF(self, channel)

Send an EOF (End of File) for a channel.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)

### sendExtendedData(self, channel, dataType, data)

Send extended data to a channel. This should not normally be used: instead use channel.writeExtendedData(data, dataType) as it manages the window automatically.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)
    `dataType`
    (type=`int`)
    `data`
    (type=`str`)

### sendGlobalRequest(self, request, data, wantReply=0)

Send a global request for this connection. Current this is only used for remote->local TCP forwarding.

  Parameters:
    `request`
    (type=`str`)
    `data`
    (type=`str`)
    `wantReply`
    (type=`bool` @rtype `Deferred`/`None`)

### sendRequest(self, channel, requestType, data, wantReply=0)

Send a request to a channel.

  Parameters:
    `channel`
    (type=subclass of `SSHChannel`)
    `requestType`
    (type=`str`)
    `data`
    (type=`str`)
    `wantReply`
    (type=`bool` @rtype `Deferred`/`None`)

### serviceStarted(self)

called when the service is active on the transport.

  Overrides:
    `twisted.conch.ssh.service.SSHService.serviceStarted` (inherited documentation)

### serviceStopped(self)

called when the service is stopped, either by the connection ending or by another service being started

  Overrides:
    `twisted.conch.ssh.service.SSHService.serviceStopped` (inherited documentation)

Class Variable Details

### name

  Type:
    `str`
  Value:

        'ssh-connection'

### protocolMessages

  Type:
    `dict`
  Value:

        {80: 'MSG_GLOBAL_REQUEST',
         81: 'MSG_REQUEST_SUCCESS',
         82: 'MSG_REQUEST_FAILURE',
         90: 'MSG_CHANNEL_OPEN',
         91: 'MSG_CHANNEL_OPEN_CONFIRMATION',
         92: 'MSG_CHANNEL_OPEN_FAILURE',
         93: 'MSG_CHANNEL_WINDOW_ADJUST',
         94: 'MSG_CHANNEL_DATA',
        ...

Generated by Epydoc 2.0 on Sat May 15 20:08:16 2004 | http://epydoc.sf.net