summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2012-01-18 22:08:05 +0000
committerAlan Conway <aconway@apache.org>2012-01-18 22:08:05 +0000
commit6654157b96dae2752ba0bdd9117849f9647b86c4 (patch)
tree7b5f607dec9bd38154aae565da527d40a4996ad3 /cpp/src
parent95d12bc60580be2acf85af1ec8cb13ed46ddc7a9 (diff)
downloadqpid-python-6654157b96dae2752ba0bdd9117849f9647b86c4.tar.gz
QPID-3603: Break infinite "detached" loop between federated brokers.
Don't reply to a "detached" in case of error. Doing so can create an infinite game of "detached tennis" between federated brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233081 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/amqp_0_10/SessionHandler.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/qpid/amqp_0_10/SessionHandler.cpp b/cpp/src/qpid/amqp_0_10/SessionHandler.cpp
index 578598a146..5eedafc77b 100644
--- a/cpp/src/qpid/amqp_0_10/SessionHandler.cpp
+++ b/cpp/src/qpid/amqp_0_10/SessionHandler.cpp
@@ -185,8 +185,10 @@ void SessionHandler::detach(const std::string& name) {
handleDetach();
}
-void SessionHandler::detached(const std::string& name, uint8_t code) {
- CHECK_NAME(name, "session.detached");
+void SessionHandler::detached(const std::string& /*name*/, uint8_t code) {
+ // Special case for detached: Don't check if we are
+ // attached. Checking can lead to an endless game of "detached
+ // tennis" on federated brokers.
awaitingDetached = false;
if (code != session::DETACH_CODE_NORMAL) {
sendReady = receiveReady = false;