summaryrefslogtreecommitdiff
path: root/indra/llmessage/llsdmessage.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2009-05-27 21:17:22 +0000
committerNat Goodspeed <nat@lindenlab.com>2009-05-27 21:17:22 +0000
commitf910157c1662dedb9791efc1439ff09f1f3efbf8 (patch)
treeaaeff22de57e9080db219336dda81a346211aabd /indra/llmessage/llsdmessage.cpp
parent657f8e45faf77b4c53b0d178b83cf2071744ee90 (diff)
DEV-31979: Introduce LLReqID, a class to help individual event API listeners
implement the ["reqid"] convention. This convention dictates that a response LLSD from each such API should contain a ["reqid"] key whose value echoes the ["reqid"] value, if any, in the request LLSD. Add LLReqID support to LLAresListener's "rewriteURI" service, LLSDMessage, LLCapabilityListener and LLXMLRPCListener.
Diffstat (limited to 'indra/llmessage/llsdmessage.cpp')
-rw-r--r--indra/llmessage/llsdmessage.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/indra/llmessage/llsdmessage.cpp b/indra/llmessage/llsdmessage.cpp
index f663268466..ad6b8284aa 100644
--- a/indra/llmessage/llsdmessage.cpp
+++ b/indra/llmessage/llsdmessage.cpp
@@ -68,6 +68,7 @@ bool LLSDMessage::httpListener(const LLSD& request)
}
LLHTTPClient::post(url, payload,
new LLSDMessage::EventResponder(LLEventPumps::instance(),
+ request,
url, "POST", reply, error),
LLSD(), // headers
timeout);
@@ -81,7 +82,9 @@ void LLSDMessage::EventResponder::result(const LLSD& data)
// to the pump whose name is "".
if (! mReplyPump.empty())
{
- mPumps.obtain(mReplyPump).post(data);
+ LLSD response(data);
+ mReqID.stamp(response);
+ mPumps.obtain(mReplyPump).post(response);
}
else // default success handling
{
@@ -98,7 +101,7 @@ void LLSDMessage::EventResponder::error(U32 status, const std::string& reason, c
// explicit pump name.
if (! mErrorPump.empty())
{
- LLSD info;
+ LLSD info(mReqID.makeResponse());
info["target"] = mTarget;
info["message"] = mMessage;
info["status"] = LLSD::Integer(status);