diff options
Diffstat (limited to 'cpp/src/qpid/management/ManagementExchange.cpp')
| -rw-r--r-- | cpp/src/qpid/management/ManagementExchange.cpp | 17 |
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, |
