public void startTransportProtocol ( SshTransport provider , Ssh2Context context , String localIdentification , String remoteIdentification , Ssh2Client client ) throws SshException { try { this . transportIn = new DataInputStream ( provider . getInputStream ( ) ) ; this . transportOut = provider . getOutputStream ( ) ; this . provider = provider ; this . localIdentification = localIdentification ; this . remoteIdentification = remoteIdentification ; this . transportContext = context ; this . incomingMessage = new byte [ transportContext . getMaximumPacketLength ( ) ] ; this . outgoingMessage = new ByteArrayWriter ( transportContext . getMaximumPacketLength ( ) ) ; this . client = client ; // Negotiate the protocol version currentState = TransportProtocol . NEGOTIATING_PROTOCOL ; // Perform key exchange sendKeyExchangeInit ( false ) ; if ( Log . isDebugEnabled ( ) ) { Log . debug ( this , "Waiting for transport protocol to complete initialization" ) ; } while ( processMessage ( readMessage ( ) ) && currentState != CONNECTED ) { ; } } catch ( IOException ex ) { throw new SshException ( ex , SshException . CONNECT_FAILED ) ; } if ( Log . isDebugEnabled ( ) ) { Log . debug ( this , "Transport protocol initialized" ) ; } }
Starts the protocol on the provider .