summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementExchange.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/management/ManagementExchange.cpp')
-rw-r--r--cpp/src/qpid/management/ManagementExchange.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/cpp/src/qpid/management/ManagementExchange.cpp b/cpp/src/qpid/management/ManagementExchange.cpp
index b4824549ed..4ccf8e68c9 100644
--- a/cpp/src/qpid/management/ManagementExchange.cpp
+++ b/cpp/src/qpid/management/ManagementExchange.cpp
@@ -40,17 +40,16 @@ void ManagementExchange::route (Deliverable& msg,
const string& routingKey,
const FieldTable* args)
{
+ bool routeIt = true;
+
// Intercept management agent commands
- if ((routingKey.length () > 6 &&
- routingKey.substr (0, 6).compare ("agent.") == 0) ||
- (routingKey.length () == 5 &&
- routingKey.substr (0, 5).compare ("agent") == 0))
- {
- managementAgent->dispatchCommand (msg, routingKey, args);
- return;
- }
+ if ((routingKey.length() > 6 &&
+ routingKey.substr(0, 6).compare("agent.") == 0) ||
+ (routingKey == "broker"))
+ routeIt = managementAgent->dispatchCommand(msg, routingKey, args);
- TopicExchange::route (msg, routingKey, args);
+ if (routeIt)
+ TopicExchange::route(msg, routingKey, args);
}
bool ManagementExchange::bind (Queue::shared_ptr queue,