diff options
Diffstat (limited to 'cpp/src/qpid/broker/ConnectionHandler.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/ConnectionHandler.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/ConnectionHandler.cpp b/cpp/src/qpid/broker/ConnectionHandler.cpp index 9594ea34ef..8db136a448 100644 --- a/cpp/src/qpid/broker/ConnectionHandler.cpp +++ b/cpp/src/qpid/broker/ConnectionHandler.cpp @@ -370,8 +370,14 @@ void ConnectionHandler::Handler::tune(uint16_t channelMax, maxFrameSize = std::min(maxFrameSize, maxFrameSizeProposed); connection.setFrameMax(maxFrameSize); - connection.setHeartbeat(heartbeatMax); - proxy.tuneOk(channelMax, maxFrameSize, heartbeatMax); + // this method is only ever called when this Connection + // is a federation link where this Broker is acting as + // a client to another Broker + uint16_t hb = std::min(connection.getBroker().getOptions().linkHeartbeatInterval, heartbeatMax); + connection.setHeartbeat(hb); + connection.startLinkHeartbeatTimeoutTask(); + + proxy.tuneOk(channelMax, maxFrameSize, hb); proxy.open("/", Array(), true); } |
