diff options
| author | Ted Ross <tross@apache.org> | 2012-06-06 18:33:39 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2012-06-06 18:33:39 +0000 |
| commit | 5220de4c34059dcffcc74f6b86e54dd53ee77b95 (patch) | |
| tree | b2fefeac0f9e960580e2923975257d508ead14ba /cpp/src/qpid/broker/ConnectionHandler.cpp | |
| parent | 67b2147f3febdf93338f6b55b43f77369a98be78 (diff) | |
| download | qpid-python-5220de4c34059dcffcc74f6b86e54dd53ee77b95.tar.gz | |
QPID-4040 - Close federation links after lost heartbeats.
Applied patch from Andy Goldstein.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1347044 13f79535-47bb-0310-9956-ffa450edef68
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); } |
