Interface Connection

  • All Known Implementing Classes:
    ConnectionImpl

    public interface Connection
    Connection layer of the SSH protocol. Refer to RFC 254.
    • Method Detail

      • attach

        void attach​(Channel chan)
        Attach a Channel to this connection. A channel must be attached to the connection if it is to receive any channel-specific data that is received.
        Parameters:
        chan - the channel
      • forget

        void forget​(Channel chan)
        Forget an attached Channel.
        Parameters:
        chan - the channel
      • get

        Channel get​(int id)
        Parameters:
        id - number of the channel to retrieve
        Returns:
        an attached Channel of specified channel number, or null if no such channel was attached
      • join

        void join()
           throws java.lang.InterruptedException
        Wait for the situation that no channels are attached (e.g., got closed).
        Throws:
        java.lang.InterruptedException - if the thread is interrupted
      • nextID

        int nextID()
        Returns:
        an available ID a Channel can rightfully claim.
      • sendGlobalRequest

        Promise<SSHPacket,​ConnectionException> sendGlobalRequest​(java.lang.String name,
                                                                       boolean wantReply,
                                                                       byte[] specifics)
                                                                throws TransportException
        Send an SSH global request.
        Parameters:
        name - request name
        wantReply - whether a reply is requested
        specifics - SSHPacket containing fields specific to the request
        Returns:
        a Promise for the reply data (in case wantReply is true) which allows waiting on the reply, or null if a reply is not requested.
        Throws:
        TransportException - if there is an error sending the request
      • sendOpenFailure

        void sendOpenFailure​(int recipient,
                             OpenFailException.Reason reason,
                             java.lang.String message)
                      throws TransportException
        Send a SSH_MSG_OPEN_FAILURE for specified Reason and message.
        Parameters:
        recipient - number of the recipient channel
        reason - a reason for the failure
        message - an explanatory message
        Throws:
        TransportException - if there is a transport-layer error
      • getMaxPacketSize

        int getMaxPacketSize()
        Returns:
        the maximum packet size for the local window this connection recommends to any Channel's that ask for it.
      • setMaxPacketSize

        void setMaxPacketSize​(int maxPacketSize)
        Set the maximum packet size for the local window this connection recommends to any Channel's that ask for it.
        Parameters:
        maxPacketSize - maximum packet size in bytes
      • getWindowSize

        long getWindowSize()
        Returns:
        the size for the local window this connection recommends to any Channel's that ask for it.
      • setWindowSize

        void setWindowSize​(long windowSize)
        Set the size for the local window this connection recommends to any Channel's that ask for it.
        Parameters:
        windowSize - window size in bytes
      • getTimeoutMs

        int getTimeoutMs()
        Returns:
        the timeout in milliseconds that this connection uses for blocking operations and recommends to any other classes that ask for it.
      • setTimeoutMs

        void setTimeoutMs​(int timeout)
        Set the timeout this connection uses for blocking operations and recommends to any other classes that ask for it.
        Parameters:
        timeout - timeout in milliseconds