From ef3aad1e24050f6da497b1878ee1d8e9516d02ca Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 18 Jan 2012 22:08:05 +0000 Subject: 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@1233081 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp b/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp index 578598a146..5eedafc77b 100644 --- a/qpid/cpp/src/qpid/amqp_0_10/SessionHandler.cpp +++ b/qpid/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; -- cgit v1.2.1