From e1ab7d8a30cc40cbd1d471c67def21508c82ff49 Mon Sep 17 00:00:00 2001 From: Kartic Krishnamurthy Date: Wed, 18 Jul 2007 01:28:59 +0000 Subject: svn merge -r63705:65463 svn+ssh://svn/svn/linden/branches/dpo-3-bug-fix NOTE: r63705 is *not* the earliest rev# for dpo-3-bug-fix. --- indra/llmessage/llservicebuilder.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'indra/llmessage/llservicebuilder.cpp') diff --git a/indra/llmessage/llservicebuilder.cpp b/indra/llmessage/llservicebuilder.cpp index 8c34a506de..806a888b2b 100644 --- a/indra/llmessage/llservicebuilder.cpp +++ b/indra/llmessage/llservicebuilder.cpp @@ -89,7 +89,7 @@ std::string LLServiceBuilder::buildServiceURI( const LLSD& option_map) { std::string service_url = buildServiceURI(service_name); - + // Find the Service Name if(!service_url.empty() && option_map.isMap()) { @@ -108,6 +108,23 @@ std::string LLServiceBuilder::buildServiceURI( find_pos, variable_name.length(), (*option_itr).second.asString()); + continue; + } + variable_name.assign("{%"); + variable_name.append((*option_itr).first); + variable_name.append("}"); + find_pos = service_url.find(variable_name); + if(find_pos != std::string::npos) + { + std::string query_str = LLURI::mapToQueryString( + (*option_itr).second); + if(!query_str.empty()) + { + service_url.replace( + find_pos, + variable_name.length(), + query_str); + } } } } -- cgit v1.2.3