- private synchronized void handleSshSessionCreated(final ConnectFuture future, final ChannelHandlerContext ctx) {
- try {
- LOG.trace("SSH session created on channel: {}", ctx.channel());
-
- session = future.getSession();
- final AuthFuture authenticateFuture = authenticationHandler.authenticate(session);
- authenticateFuture.addListener(new SshFutureListener<AuthFuture>() {
- @Override
- public void operationComplete(final AuthFuture future) {
- if (future.isSuccess()) {
- handleSshAuthenticated(session, ctx);
- } else {
- // Exception does not have to be set in the future, add simple exception in such case
- final Throwable exception = future.getException() == null
- ? new IllegalStateException("Authentication failed") : future.getException();
- handleSshSetupFailure(ctx, exception);
- }
+ @Override
+ public synchronized void connect(final ChannelHandlerContext ctx, final SocketAddress remoteAddress,
+ final SocketAddress localAddress, final ChannelPromise promise) throws IOException {
+ LOG.debug("SSH session connecting on channel {}. promise: {}", ctx.channel(), promise);
+ connectPromise = requireNonNull(promise);
+
+ if (negotiationFuture != null) {
+ negotiationFutureListener = future -> {
+ if (future.isSuccess()) {
+ promise.setSuccess();