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%2FNetconfClientSessionNegotiatorFactory.java;h=db6c024e5afe24e35d336ce2c5322340814289eb;hb=acd7a3cdef79a6b1fdcf0f68d3beab7422f4e9c7;hp=db0b953bddf4f7c730fcd271bb7e5e603bcc0eb1;hpb=a92d9d6a21a0f6ca8d2153795721f500eaf29ee9;p=controller.git diff --git a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java index db0b953bdd..db6c024e5a 100644 --- a/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java +++ b/opendaylight/netconf/netconf-client/src/main/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactory.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.netconf.client; +import com.google.common.base.Optional; import com.google.common.base.Preconditions; import io.netty.channel.Channel; import io.netty.util.Timer; @@ -27,8 +28,13 @@ public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorF private final Timer timer; - public NetconfClientSessionNegotiatorFactory(Timer timer) { + private final Optional additionalHeader; + private final long connectionTimeoutMillis; + + public NetconfClientSessionNegotiatorFactory(Timer timer, Optional additionalHeader, long connectionTimeoutMillis) { this.timer = timer; + this.additionalHeader = additionalHeader; + this.connectionTimeoutMillis = connectionTimeoutMillis; } private static NetconfMessage loadHelloMessageTemplate() { @@ -45,9 +51,13 @@ public class NetconfClientSessionNegotiatorFactory implements SessionNegotiatorF public SessionNegotiator getSessionNegotiator(SessionListenerFactory sessionListenerFactory, Channel channel, Promise promise) { // Hello message needs to be recreated every time - NetconfSessionPreferences proposal = new NetconfSessionPreferences(loadHelloMessageTemplate()); + NetconfMessage helloMessage = loadHelloMessageTemplate(); + if(this.additionalHeader.isPresent()) { + helloMessage = new NetconfMessage(helloMessage.getDocument(), additionalHeader.get()); + } + NetconfSessionPreferences proposal = new NetconfSessionPreferences(helloMessage); return new NetconfClientSessionNegotiator(proposal, promise, channel, timer, - sessionListenerFactory.getSessionListener()); + sessionListenerFactory.getSessionListener(), connectionTimeoutMillis); } }