diff options
author | Rider Linden <rider@lindenlab.com> | 2019-02-28 16:37:47 -0800 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2019-02-28 16:37:47 -0800 |
commit | e1a76999c3e8aad337d765fcd6eb50c8191409ea (patch) | |
tree | bc671ff3f6da473df49f2b834e94ee6150157256 /indra/llui | |
parent | d7ad30a2d4dfd83f93b0150464214f2df776eb9c (diff) | |
parent | 03db2ddc9c27cf842c6185826617b0da0d2b87f5 (diff) |
Merge
Diffstat (limited to 'indra/llui')
-rw-r--r-- | indra/llui/llnotificationslistener.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/llui/llnotificationslistener.cpp b/indra/llui/llnotificationslistener.cpp index b6a32a0e78..be26416cbb 100644 --- a/indra/llui/llnotificationslistener.cpp +++ b/indra/llui/llnotificationslistener.cpp @@ -90,9 +90,12 @@ void LLNotificationsListener::requestAdd(const LLSD& event_data) const { if(event_data.has("reply")) { + LLSD payload(event_data["payload"]); + // copy reqid, if provided, to link response with request + payload["reqid"] = event_data["reqid"]; mNotifications.add(event_data["name"], event_data["substitutions"], - event_data["payload"], + payload, boost::bind(&LLNotificationsListener::NotificationResponder, this, event_data["reply"].asString(), @@ -112,10 +115,12 @@ void LLNotificationsListener::NotificationResponder(const std::string& reply_pum const LLSD& notification, const LLSD& response) const { - LLSD reponse_event; - reponse_event["notification"] = notification; - reponse_event["response"] = response; - LLEventPumps::getInstance()->obtain(reply_pump).post(reponse_event); + LLSD response_event; + response_event["notification"] = notification; + response_event["response"] = response; + // surface reqid at top level of response for request/response protocol + response_event["reqid"] = notification["payload"]["reqid"]; + LLEventPumps::getInstance()->obtain(reply_pump).post(response_event); } void LLNotificationsListener::listChannels(const LLSD& params) const |