Class AbstractClientProxyConnector

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void adjustTimeout()
      Adjusts the timeout calculation to not account of elapsed time since the last time the timeout was gotten.
      protected void clearPassword()
      Clears the proxy password.
      protected long getTimeout()
      Obtains the timeout for the whole rest of the proxy connection protocol.
      protected void init​(org.apache.sshd.client.session.ClientSession session)
      Initializes this instance.
      void runWhenDone​(java.util.concurrent.Callable<java.lang.Void> starter)
      Runs command once the proxy connection is established.
      protected void setDone​(boolean success)
      Sets the "done" flag.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apache.sshd.client.session.ClientProxyConnector

        sendClientProxyMetadata
    • Field Detail

      • DEFAULT_PROXY_TIMEOUT_MILLIS

        private static final long DEFAULT_PROXY_TIMEOUT_MILLIS
      • done

        private boolean done
      • bufferedCommands

        private java.util.List<java.util.concurrent.Callable<java.lang.Void>> bufferedCommands
      • unregister

        private java.util.concurrent.atomic.AtomicReference<java.lang.Runnable> unregister
      • remainingProxyProtocolTime

        private long remainingProxyProtocolTime
      • lastProxyOperationTime

        private long lastProxyOperationTime
      • remoteAddress

        protected final java.net.InetSocketAddress remoteAddress
        The ultimate remote address to connect to.
      • proxyAddress

        protected final java.net.InetSocketAddress proxyAddress
        The proxy address.
      • proxyUser

        protected java.lang.String proxyUser
        The user to authenticate at the proxy with.
      • proxyPassword

        protected char[] proxyPassword
        The password to use for authentication at the proxy.
    • Constructor Detail

      • AbstractClientProxyConnector

        public AbstractClientProxyConnector​(@NonNull
                                            java.net.InetSocketAddress proxyAddress,
                                            @NonNull
                                            java.net.InetSocketAddress remoteAddress,
                                            java.lang.String proxyUser,
                                            char[] proxyPassword)
        Parameters:
        proxyAddress - of the proxy server we're connecting to
        remoteAddress - of the target server to connect to
        proxyUser - to authenticate at the proxy with; may be null
        proxyPassword - to authenticate at the proxy with; may be null
    • Method Detail

      • init

        protected void init​(org.apache.sshd.client.session.ClientSession session)
        Initializes this instance. Installs itself as proxy handler on the session.
        Parameters:
        session - to initialize for
      • getTimeout

        protected long getTimeout()
        Obtains the timeout for the whole rest of the proxy connection protocol.
        Returns:
        the timeout in milliseconds, always > 0L
      • adjustTimeout

        protected void adjustTimeout()
        Adjusts the timeout calculation to not account of elapsed time since the last time the timeout was gotten. Can be used for instance to ignore time spent in user dialogs be counted against the overall proxy connection protocol timeout.
      • setDone

        protected void setDone​(boolean success)
                        throws java.lang.Exception
        Sets the "done" flag.
        Parameters:
        success - whether the connector terminated successfully.
        Throws:
        java.lang.Exception - if starting ssh fails
      • runWhenDone

        public void runWhenDone​(java.util.concurrent.Callable<java.lang.Void> starter)
                         throws java.lang.Exception
        Description copied from interface: StatefulProxyConnector
        Runs command once the proxy connection is established. May be called multiple times; commands are run sequentially. If the proxy connection is already established, command is executed directly synchronously.
        Specified by:
        runWhenDone in interface StatefulProxyConnector
        Parameters:
        starter - operation to run
        Throws:
        java.lang.Exception - if the operation is run synchronously and throws an exception
      • clearPassword

        protected void clearPassword()
        Clears the proxy password.