diff options
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  | 
