X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-client%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fclient%2FNetconfClientSessionNegotiator.java;h=4e2393171afd2090a103dbdb110ed4aea71f9dca;hb=87e068952fe9207ccccbcebdaac2de09743e2403;hp=0c5935b57162b44354a0db08a734886d18bd386a;hpb=027bc8f87341f432654c3aaa7771658c25d2ca7d;p=controller.git diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java index 0c5935b571..4e2393171a 100644 --- a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java +++ b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiator.java @@ -69,7 +69,7 @@ public class NetconfClientSessionNegotiator extends tryToInitiateExi(session, startExiMessage); // Exi is not supported, release session immediately } else { - logger.debug("Netconf session {} isn't capable using exi.", session); + logger.debug("Netconf session {} isn't capable of using exi.", session); negotiationSuccessful(session); } } @@ -80,16 +80,18 @@ public class NetconfClientSessionNegotiator extends * @param startExiMessage */ void tryToInitiateExi(final NetconfClientSession session, final NetconfStartExiMessage startExiMessage) { + channel.pipeline().addAfter(AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, + ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER, + new ExiConfirmationInboundHandler(session, startExiMessage)); + session.sendMessage(startExiMessage).addListener(new ChannelFutureListener() { @Override public void operationComplete(final ChannelFuture f) { if (!f.isSuccess()) { logger.warn("Failed to send start-exi message {} on session {}", startExiMessage, this, f.cause()); + channel.pipeline().remove(ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER); } else { logger.trace("Start-exi message {} sent to socket on session {}", startExiMessage, this); - channel.pipeline().addAfter( - AbstractChannelInitializer.NETCONF_MESSAGE_DECODER, ExiConfirmationInboundHandler.EXI_CONFIRMED_HANDLER, - new ExiConfirmationInboundHandler(session, startExiMessage)); } } });