Class AbstractClientProxyConnector
java.lang.Object
org.eclipse.jgit.internal.transport.sshd.proxy.AbstractClientProxyConnector
- All Implemented Interfaces:
org.apache.sshd.client.session.ClientProxyConnector,StatefulProxyConnector
- Direct Known Subclasses:
HttpClientConnector,Socks5ClientConnector
Basic common functionality for a
StatefulProxyConnector.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longprivate booleanprivate longprivate final ObjectGuardsdoneandbufferedCommands.protected final InetSocketAddressThe proxy address.protected char[]The password to use for authentication at the proxy.protected StringThe user to authenticate at the proxy with.private longprotected final InetSocketAddressThe ultimate remote address to connect to.private AtomicReference<Runnable>Fields inherited from interface org.eclipse.jgit.internal.transport.sshd.proxy.StatefulProxyConnector
TIMEOUT_PROPERTY -
Constructor Summary
ConstructorsConstructorDescriptionAbstractClientProxyConnector(InetSocketAddress proxyAddress, InetSocketAddress remoteAddress, String proxyUser, char[] proxyPassword) Creates a newAbstractClientProxyConnector. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdjusts the timeout calculation to not account of elapsed time since the last time the timeout was gotten.protected voidClears the proxy password.protected longObtains the timeout for the whole rest of the proxy connection protocol.protected voidinit(org.apache.sshd.client.session.ClientSession session) Initializes this instance.voidrunWhenDone(Callable<Void> starter) Runscommandonce the proxy connection is established.protected voidsetDone(boolean success) Sets the "done" flag.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.sshd.client.session.ClientProxyConnector
sendClientProxyMetadataMethods inherited from interface org.eclipse.jgit.internal.transport.sshd.proxy.StatefulProxyConnector
messageReceived
-
Field Details
-
DEFAULT_PROXY_TIMEOUT_MILLIS
private static final long DEFAULT_PROXY_TIMEOUT_MILLIS -
lock
GuardsdoneandbufferedCommands. -
done
private boolean done -
bufferedCommands
-
unregister
-
remainingProxyProtocolTime
private long remainingProxyProtocolTime -
lastProxyOperationTime
private long lastProxyOperationTime -
remoteAddress
The ultimate remote address to connect to. -
proxyAddress
The proxy address. -
proxyUser
The user to authenticate at the proxy with. -
proxyPassword
protected char[] proxyPasswordThe password to use for authentication at the proxy.
-
-
Constructor Details
-
AbstractClientProxyConnector
public AbstractClientProxyConnector(@NonNull InetSocketAddress proxyAddress, @NonNull InetSocketAddress remoteAddress, String proxyUser, char[] proxyPassword) Creates a newAbstractClientProxyConnector.- Parameters:
proxyAddress- of the proxy server we're connecting toremoteAddress- of the target server to connect toproxyUser- to authenticate at the proxy with; may benullproxyPassword- to authenticate at the proxy with; may benull
-
-
Method Details
-
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
Sets the "done" flag.- Parameters:
success- whether the connector terminated successfully.- Throws:
Exception- if starting ssh fails
-
runWhenDone
Description copied from interface:StatefulProxyConnectorRunscommandonce the proxy connection is established. May be called multiple times; commands are run sequentially. If the proxy connection is already established,commandis executed directly synchronously.- Specified by:
runWhenDonein interfaceStatefulProxyConnector- Parameters:
starter- operation to run- Throws:
Exception- if the operation is run synchronously and throws an exception
-
clearPassword
protected void clearPassword()Clears the proxy password.
-