summaryrefslogtreecommitdiff
path: root/indra/llmessage/llservicebuilder.cpp
diff options
context:
space:
mode:
authorKartic Krishnamurthy <drunkensufi@lindenlab.com>2007-07-18 01:28:59 +0000
committerKartic Krishnamurthy <drunkensufi@lindenlab.com>2007-07-18 01:28:59 +0000
commite1ab7d8a30cc40cbd1d471c67def21508c82ff49 (patch)
tree3f834cc8207ea481f6caf820738c8cbf5388bc9a /indra/llmessage/llservicebuilder.cpp
parent7964c6f7a5b622d698f7d471690b29122966b1b2 (diff)
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.
Diffstat (limited to 'indra/llmessage/llservicebuilder.cpp')
-rw-r--r--indra/llmessage/llservicebuilder.cpp19
1 files changed, 18 insertions, 1 deletions
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);
+ }
}
}
}