summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-08-02 16:44:55 +0000
committerTed Ross <tross@apache.org>2010-08-02 16:44:55 +0000
commit0bb3b154e3357ba14bfd3b1c04617c0ad16000c2 (patch)
tree7524164bdd9ec4f2cbf1a5a9791bc3648e3033a2 /cpp
parent890c2c8a5ddabcbeff513ff925aee61ffb76bc39 (diff)
downloadqpid-python-0bb3b154e3357ba14bfd3b1c04617c0ad16000c2.tar.gz
Fixed bug in setting of the app-id header (it was set in the application-headers rather than
the message-properties). Made the broker agent more selective about when it broadcasts console-added messages. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@981592 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/agent/ManagementAgentImpl.cpp2
-rw-r--r--cpp/src/qpid/management/ManagementAgent.cpp20
2 files changed, 19 insertions, 3 deletions
diff --git a/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/cpp/src/qpid/agent/ManagementAgentImpl.cpp
index b7d5ad7d7b..50301f77c8 100644
--- a/cpp/src/qpid/agent/ManagementAgentImpl.cpp
+++ b/cpp/src/qpid/agent/ManagementAgentImpl.cpp
@@ -1208,7 +1208,6 @@ void ManagementAgentImpl::ConnectionThread::sendBuffer(const string& data,
for (i = headers.begin(); i != headers.end(); ++i) {
msg.getHeaders().setString(i->first, i->second.asString());
}
- msg.getHeaders().setString("app_id", "qmf2");
msg.setData(data);
sendMessage(msg, exchange, routingKey);
@@ -1233,6 +1232,7 @@ void ManagementAgentImpl::ConnectionThread::sendMessage(Message msg,
msg.getDeliveryProperties().setRoutingKey(routingKey);
msg.getMessageProperties().setReplyTo(ReplyTo("amq.direct", queueName.str()));
msg.getMessageProperties().getApplicationHeaders().setString("qmf.agent", agent.name_address);
+ msg.getMessageProperties().setAppId("qmf2");
try {
session.messageTransfer(arg::content=msg, arg::destination=exchange);
} catch(exception& e) {
diff --git a/cpp/src/qpid/management/ManagementAgent.cpp b/cpp/src/qpid/management/ManagementAgent.cpp
index 5602dda2c6..847f2b53ce 100644
--- a/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/cpp/src/qpid/management/ManagementAgent.cpp
@@ -428,10 +428,26 @@ void ManagementAgent::clientAdded (const string& routingKey)
{
sys::Mutex::ScopedLock lock(userLock);
- if (routingKey.find("console") != 0)
+ //
+ // If this routing key is not relevant to object updates, exit.
+ //
+ if ((routingKey.compare(0, 1, "#") != 0) &&
+ (routingKey.compare(0, 9, "console.#") != 0) &&
+ (routingKey.compare(0, 12, "console.obj.") != 0))
return;
+ //
+ // Mark local objects for full-update.
+ //
clientWasAdded = true;
+
+ //
+ // If the routing key is relevant for local objects only, don't involve
+ // any of the remote agents.
+ //
+ if (routingKey.compare(0, 39, "console.obj.*.*.org.apache.qpid.broker.") == 0)
+ return;
+
std::list<std::string> rkeys;
for (RemoteAgentMap::iterator aIter = remoteAgents.begin();
@@ -570,11 +586,11 @@ void ManagementAgent::sendBufferLH(const string& data,
props->setCorrelationId(cid);
}
props->setContentType(content_type);
+ props->setAppId("qmf2");
for (i = headers.begin(); i != headers.end(); ++i) {
msg->getOrInsertHeaders().setString(i->first, i->second.asString());
}
- msg->getOrInsertHeaders().setString("app_id", "qmf2");
DeliveryProperties* dp =
msg->getFrames().getHeaders()->get<DeliveryProperties>(true);