summaryrefslogtreecommitdiff
path: root/cpp/src/qmf/Agent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qmf/Agent.cpp')
-rw-r--r--cpp/src/qmf/Agent.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/cpp/src/qmf/Agent.cpp b/cpp/src/qmf/Agent.cpp
index 1b7d03968e..8783cfa832 100644
--- a/cpp/src/qmf/Agent.cpp
+++ b/cpp/src/qmf/Agent.cpp
@@ -119,7 +119,9 @@ ConsoleEvent AgentImpl::query(const Query& query, Duration timeout)
context->cond.wait(context->lock,
qpid::sys::AbsTime(qpid::sys::now(),
qpid::sys::Duration(milliseconds * qpid::sys::TIME_MSEC)));
- if (context->response.isValid() && context->response.isFinal())
+ if (context->response.isValid() &&
+ ((context->response.getType() == CONSOLE_QUERY_RESPONSE && context->response.isFinal()) ||
+ (context->response.getType() == CONSOLE_EXCEPTION)))
result = context->response;
else {
auto_ptr<ConsoleEventImpl> impl(new ConsoleEventImpl(CONSOLE_EXCEPTION));
@@ -520,6 +522,8 @@ void AgentImpl::sendQuery(const Query& query, uint32_t correlator)
msg.setReplyTo(session.replyAddress);
msg.setCorrelationId(boost::lexical_cast<string>(correlator));
msg.setSubject(directSubject);
+ if (!session.authUser.empty())
+ msg.setUserId(session.authUser);
encode(QueryImplAccess::get(query).asMap(), msg);
if (sender.isValid())
sender.send(msg);
@@ -545,6 +549,8 @@ void AgentImpl::sendMethod(const string& method, const Variant::Map& args, const
msg.setReplyTo(session.replyAddress);
msg.setCorrelationId(boost::lexical_cast<string>(correlator));
msg.setSubject(directSubject);
+ if (!session.authUser.empty())
+ msg.setUserId(session.authUser);
encode(map, msg);
if (sender.isValid())
sender.send(msg);
@@ -586,6 +592,8 @@ void AgentImpl::sendSchemaRequest(const SchemaId& id)
msg.setReplyTo(session.replyAddress);
msg.setContent(content);
msg.setSubject(directSubject);
+ if (!session.authUser.empty())
+ msg.setUserId(session.authUser);
if (sender.isValid())
sender.send(msg);