summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/ConnectionHandler.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2012-06-06 18:33:39 +0000
committerTed Ross <tross@apache.org>2012-06-06 18:33:39 +0000
commit5220de4c34059dcffcc74f6b86e54dd53ee77b95 (patch)
treeb2fefeac0f9e960580e2923975257d508ead14ba /cpp/src/qpid/broker/ConnectionHandler.cpp
parent67b2147f3febdf93338f6b55b43f77369a98be78 (diff)
downloadqpid-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.cpp10
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);
}