aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmessage/llservicebuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/llmessage/llservicebuilder.cpp')
-rw-r--r--linden/indra/llmessage/llservicebuilder.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/linden/indra/llmessage/llservicebuilder.cpp b/linden/indra/llmessage/llservicebuilder.cpp
index 91040c0..0b35a69 100644
--- a/linden/indra/llmessage/llservicebuilder.cpp
+++ b/linden/indra/llmessage/llservicebuilder.cpp
@@ -109,7 +109,7 @@ std::string LLServiceBuilder::buildServiceURI(
109 const LLSD& option_map) 109 const LLSD& option_map)
110{ 110{
111 std::string service_url = buildServiceURI(service_name); 111 std::string service_url = buildServiceURI(service_name);
112 112
113 // Find the Service Name 113 // Find the Service Name
114 if(!service_url.empty() && option_map.isMap()) 114 if(!service_url.empty() && option_map.isMap())
115 { 115 {
@@ -128,6 +128,23 @@ std::string LLServiceBuilder::buildServiceURI(
128 find_pos, 128 find_pos,
129 variable_name.length(), 129 variable_name.length(),
130 (*option_itr).second.asString()); 130 (*option_itr).second.asString());
131 continue;
132 }
133 variable_name.assign("{%");
134 variable_name.append((*option_itr).first);
135 variable_name.append("}");
136 find_pos = service_url.find(variable_name);
137 if(find_pos != std::string::npos)
138 {
139 std::string query_str = LLURI::mapToQueryString(
140 (*option_itr).second);
141 if(!query_str.empty())
142 {
143 service_url.replace(
144 find_pos,
145 variable_name.length(),
146 query_str);
147 }
131 } 148 }
132 } 149 }
133 } 150 }