import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import org.apache.sshd.client.SshClient;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfiguration;
import org.opendaylight.netconf.nettyutil.AbstractNetconfDispatcher;
private static final Logger LOG = LoggerFactory.getLogger(NetconfClientDispatcherImpl.class);
private final Timer timer;
+ private final SshClient sshClient;
public NetconfClientDispatcherImpl(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup,
- final Timer timer) {
+ final Timer timer, @Nullable final SshClient sshClient) {
super(bossGroup, workerGroup);
this.timer = timer;
+ this.sshClient = sshClient;
+ }
+
+ public NetconfClientDispatcherImpl(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup,
+ final Timer timer) {
+ this(bossGroup, workerGroup, timer, null);
}
protected Timer getTimer() {
LOG.debug("Creating SSH client with configuration: {}", currentConfiguration);
return super.createClient(currentConfiguration.getAddress(), currentConfiguration.getReconnectStrategy(),
(ch, sessionPromise) -> new SshClientChannelInitializer(currentConfiguration.getAuthHandler(),
- getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener())
- .initialize(ch, sessionPromise));
+ getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener(),
+ sshClient).initialize(ch, sessionPromise));
}
private Future<Void> createReconnectingSshClient(
final NetconfReconnectingClientConfiguration currentConfiguration) {
LOG.debug("Creating reconnecting SSH client with configuration: {}", currentConfiguration);
final SshClientChannelInitializer init = new SshClientChannelInitializer(currentConfiguration.getAuthHandler(),
- getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener());
+ getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener(), sshClient);
return super.createReconnectingClient(currentConfiguration.getAddress(), currentConfiguration
.getConnectStrategyFactory(), currentConfiguration.getReconnectStrategy(),